一,   配置信息

机器是64位,所以操作系统、软件都是64位的。

操作系统:CentOS6.2(64位);

Hadoop是hadoop-1.2.1-1.x86_64.rpm;

JDK是jdk-7u45-linux-x64.tar.gz;

以下所有操作以root身份执行。

二,   机器信息分布

1, Hadoop集群

集群由5台安装Linux环境的机器构建。电脑是联想 4220AN6 Tower,每台电脑具体配置: 英特尔 Core i3 530双核处理器,主板是英特尔 3450 芯片组,内存4G,硬盘500G。

集群中带宽是1000兆。

集群中网卡、交换机、网线均为1000兆。

其中一台机器是Master节点,即主节点,另外四台是Slave节点,即数据节点。这五台电脑彼此间通过路由器相连,从而实现相互通信以及数据传输。他们都可以通过路由器访问Internet。

2, 集群内电脑详细信息

集群内5台电脑机器名分别是master、slave1、slave2、slave3、slave4。每台电脑用root操作Hadoop,下面描述了集群内master节点和slave1节点的机器信息。

(1)   master服务器

机器

详细信息

机器名称

master

IP地址

172.23.7.160

最高用户名

root

最高用户密码

123456

(2)   slave1服务器

机器

详细信息

机器名称

slave1

IP地址

172.23.7.161

最高用户名

root

最高用户密码

123456

三,   CentOS安装配置

集群内每台电脑安装CentOS6.2操作系统。

四,   网络配置

1,  集群内电脑IP配置如下:

机器

IP地址

master

172.23.7.160

slave1

172.23.7.161

slave2

172.23.7.162

slave3

172.23.7.163

slave4

172.23.7.164

2,  配置防火墙

集群内每台电脑关闭防火墙,下面以master为例说明

(1)       输入setup,进入防火墙配置界面

(2)       选择Firewall  configuration,Run  Tool。点击“Run Tool”,下一步。

(3)       将Firewall后面中括号内的星号去掉,变成disable,点击OK下一步。

(4)       选中“yes”,下一步。

(5)       选择“Quit”退出即可。

3,  查看当前机器名称

用hostname命令显示机器名称

4,  修改当前机器名称

如果查看机器名不是我们想要的,需要修改机器名。通过对"/etc/sysconfig/network"文件修改其中"HOSTNAME"后面的值,改成我们规划的名称。这个"/etc/sysconfig/network"文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。"/etc/sysconfig/network"的设定项目如下:

用下面命令进行修改当前机器的主机名(备注:修改系统文件一般用root用户)

5,  修改IP地址

假定我们的机器连IP在当时安装机器时都没有配置好,那此时我们需要对"ifcfg-eth0"文件进行配置,该文件位于"/etc/sysconfig/network-scripts"文件夹下。

在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3,……。

这里面的文件是相当重要的,涉及到网络能否正常工作。设定形式:设定值=值设定项目项目如下:

用下面命令修改IP。

下面以master为例配置IP地址:

IPADDR IP后面写IP地址,172.23.7.160

GATEWAY 后面写网关,172.23.7.1

NETMASK后面写子网掩码,255.255.255.0

DNS1后面写DNS服务器,202.202.32.33

6,  配置hosts文件

 "/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应主机名和IP地址,用户在进行网络连接时,首先查找该文件,寻找对应主机名对应的IP地址。

需要在每台电脑上配置hosts文件,配置操作系统,下面以master节点为例介绍:

(1)     root 身份打开/etc /hosts 文件,命令:

(2)     在hosts中写上本集群内所有电脑IP地址和对应主机名

(3)     配置是否成功,在集群内任一电脑,ping其他电脑用户名,如果ping通了,则说明成功。比如在master上ping  slave1

如上图说明成功了。

五,   配置SSH

1、  在Hadoop集群中,节点A连接到节点B时,需要在A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到B。当A过 SSH连接B,B会生成一个随机数并用A公钥对随机数进行加密,并发送给A。A收到加密数之后再用私钥解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密 码。重要过程是将客户端A的公钥复制到B上。在Hadoop集群下,需要任一台电脑可以无密码登陆其他电脑,需要将每台电脑的公钥发送到集群内所有电脑上。

2、  在master上生成密码对流程如下:

(1)     生成密钥对:

a)跳转到/root/.ssh目录下:

c)在.ssh文件夹下生成密钥对

[root @master  .ssh]#  ssh-keygen -t  rsa

之后一直点击回车键默认。

此时,会在/root/.ssh下生成了id_rsa(私钥),id_rsa.pub(公钥);

3、  分别在集群其他电脑上执行第2步操作,都会生成密钥对id_rsa.pub和id_rsa,

4、  配置authorized_keys

将集群内所有电脑的id_rsa.pub都复制到authorized_keys上,再将authorized_keys存储到所有电脑上。

(1)在master电脑上,把生成的id_ras.pub内容复制到authorized _keys中;执行指令:

如果authorized_keys不存在,则生成authorized_keys,再将id_rsa.pub内容复制到authorized_keys中。

(2)将authorized_keys复制到slave1电脑上:

按照(1)步,将slave1生成密钥对添加到authorized_keys:

(3)依次操作将slave2,slave3,slave 4上的密钥对添加到authorized_keys上。

下一步,将最新authorized_keys复制到集群内所有的电脑上,和id_rsa.pub存储在同一目录下。

六,   安装JDk

软件准备:jdk-7u45-linux-x64.tar.gz,集群内所有电脑都需要安装JDK,我们可以在master上安装好JDK后,将安装文件复制到其他电脑相同目录下即可。将JDK统一安装在所有电脑的/usr/local目录下;下面以master电脑安装JDK为例介绍(以root安装):

注:如果是jdk是bin格式,需要赋值,chmod 755 jdk-7u45-linux-x64.bin,然后./jdk-7u45-linux-x64.bin安装jdk,会在同一目录下产生安装目录。

1、  查看默认的JDK命令:

[root@master  local]$  java  -version

提示现在的jdk版本是1.6.0_22,需要安装新版JDK。

2、  安装jdk,将jdk解压缩

[root @master  local]#  tar –zxvf  jdk-7u45-linux-x64.tar.gz

之后,在/usr/local目录下产生一个新的 jdk1.7. 0_45文件夹

3、  设置环境变量

打开配置文件profile,命令:

[root @master  local]#  vim  /etc/profile

在空白处添加如下信息:

JAVA_HOME=/usr/local/ jdk1.7. 0_45

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

4、  让系统配置立即生效,不用重启系统,终端输入命令:

[root @master  local]#  source  /etc/profile

5、  查看版本:

[root @master  local]#  java -version

显示我们安装的新版本是jdk1.7.0_45,说明JDK安装成功。

6、  将主节点master上安装好的jdk复制到其他电脑相同目录下。此处以复制到slave1为例。

a)         将jdk的解压缩文件复制到slave1电脑上

[root @master  local]#  scp -r  jdk1.7.0_45  root@slave1:/usr/local

a)         将主节点master上的JDk配置文件”/etc/profile”拷贝到其他子节点上

[root @master  local]#  scp  /etc/profile  slave1:/etc/profile

在slave1电脑上执行一下语句,使java配置立即生效。

[root @master  local]#  source  /etc/profile

b)         在子节点上查看jdk是否安装成功,结果显示jdk1.7.0_45,说明安装成功。

[root @slave1Desktop]#  java  –version

七,   安装Hadoop集群

1、  集群内所有电脑都需要安装hadoop,我们将hadoop统一安装在所有电脑的/usr/local目录下;下面以master电脑安装hadoop为例介绍(以root用户安装):

2、  输入指令“rpm –ivh hadoop-1.2.1-1.x86_64.rpm”安装hadoop:

3、      安装文件会在/etc下生成hadoop文件,可在此处配置hadoop配置文件,将hadoop运行指令放到/usr/sbin目录下,下面配置hadoop配置文件,总共需要配置5个。

(1)     配置core-site.xml,修改每个属性的value值,

core-site.xml配置HDFS和MapReduce的。

<!—core-site.xml-->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/tmp</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://172.23.7.160:9000</value>

</property>

(2)     设置完步骤(2)后,在/home/hadoop目录下创建一个名为tmp的文件夹

(3)     返回到/etc/hadoop目录下,继续配置文件,下面配置hdfs-site.xml

hdfs-site.xml配置HDFS的。

<!—hdfs-site.xml-->

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

注:副本个数,不配置默认是3此处写2.

(4)     配置mapred-site.xml

mapred-site.xml配置MapReduce的。

<!—mapred-site.xml-->

<property>

<name>mapred.job.tracker</name>

<value>172.23.7.160:9001</value>

</property>

(5)     配置masters文件,加入namenode的节点名,并删除前面的内容

172.23.7.160

注:此处填写主节点主机名或IP皆可。

(6)     配置slaves文件, 加入所有datanode的节点名

172.23.7.161

172.23.7.162

172.23.7.163

172.23.7.164

注:此处填写所有数据节点的主机名或IP地址

4、  在其他4台电脑上分别执行“步骤2“,然后将master节点,/etc/hadoop目录下的core-site.xml、mapred-site.xml、hdfs-site.xml、masters、slaves五个文件复制到其余4台电脑相应目录下。

5、  启动hadoop集群(主节点)

(1) 格式化文件系统:

注:在第一次启动hadoop集群时候,需要格式化文件系统,以后不需要此操作。

(3) 启动hadoop集群

此时提示你,没有权限执行此操作。start-all.sh指令存在于/usr/sbin目录下,需要赋予root用户权限,root用户可以对sbin文件夹进行任何操作。

chmod –R 777 /usr/sbin

6、    查看运行结果

(1)     在主节点master上用java自带的小工具jps查看进程

进程中必须包含NameNode和JobTracker这两个,不然说明安装失败。

(2)     在其他数据节点下用java自带的小工具jps查看进程

进程必须包含DataNode和TaskTracker两个,不然说明安装失败。

最新文章

  1. android Activity runOnUiThread() 方法的使用
  2. HDF5基本使用方法
  3. mvc学习(二)
  4. Gvim插件管理Vundle
  5. 08OC之Foundation框架
  6. Web存储(Web Storage)的浏览器支持情况
  7. Hadoop 2.6 MapReduce运行原理详解
  8. Java 连接SQLite数据库
  9. 【Java】Java运行cmd命令直接导出.sql文件
  10. .NET 轻量级 ORM 框架 - Dapper 介绍
  11. Delphi 全面控制Windows任务栏
  12. nodejs的安装和使用
  13. Android性能测试——Allocation Tracker(Device Monitor)
  14. DB2读取CLOB字段-was报错:操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
  15. SQL Server 分析函数和排名函数
  16. Validation failed for object=&#39;employee&#39;. Error count: 1问题解决
  17. Js 不支持函数的重载
  18. hibernate validator 动态返回国际化提示
  19. each的break
  20. Energy Modes能量管理模式

热门文章

  1. JAVA程序中使用正则表达式
  2. Rigidbody中 Angular Drag (角阻力):
  3. Spring Boot 简单入门
  4. Mybatis框架的输出映射类型
  5. 理解数据库中的undo日志、redo日志、检查点
  6. ThinkCMF框架使用 - 如何创建应用 -1
  7. sql拼接字符串
  8. Spring JMX之二:远程访问MBean
  9. 使用寄存器点亮LED等
  10. 禁止进入activity自动弹出键盘