Hadoop分布式集群安装部署(Redhat 6.4 64位操作系统)
一、配置自动时钟同步
(管理节点:namenode)
1.查看是否安装了NTP:
# rpm -q ntp
ntp-4.2.4p8-2.el6.x86_64 // 这表示已安装了,如果没有安装,这是空白。
2.开启ntp的自启命令:
# chkconfig ntpd on
3.配置NTP的配置文件:
#vi /etc/ntp.conf
添加内容:
#表示同步的服务器(把现有的3个服务器注释掉)
server 192.168.222.100
保存退出,重启ntp服务。
service ntpd restart
查看状态:
# ntpq -p
出现以下信息表示配置成功。(注意:本机的ip为192.168.222.100)。
(计算节点:slave)
ntp服务自启设置:
# chkconfig ntpd on
配置文件内容为:
# 配置时间服务器为本地的时间服务器
server 192.168.222.100
保存退出。
3.重启ntp服务:
service ntpd restart
4.查看状态:
# ntpq -p
出现以下信息表示配置成功。
二、配置主机名
(管理节点)
使用 vi 编辑器进行编辑文件:
#vi /etc/sysconfig/network
配置信息如下,如果已经存在则不修改,将 HadoopMaster 节点的主机名改为 master,即下面代码的第 2 行所示。
NETWORKING=yes #启动网络
HOSTNAME=master #主机名
使修改信息生效命令:
# hostname master
检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:
# hostname
(计算节点)
使用 vi编辑主机名:
# vi /etc/sysconfig/network
配置信息如下,如果已经存在则不修改,将 Hadoopslave 节点的主机名改为 slave,即下面代码的第 2 行所示。
NETWORKING=yes #启动网络
HOSTNAME=slave #主机名
使修改信息生效命令:
# hostname slave
检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:
# hostname
三、配置网络环境
通过图形化界面进行配置网络。
在linux界面右上角网络链接图标上点击右键,然后选择“Edit Connections”
点击有线网络(可能名称不一样),然后选择“Edit”
选择“IPv4 Setting”,Method选择“Manual”,并配置如图信息,
然后点击“Apply”,点击“close”关闭对话框。打开命令行,重启网络,命令为:
# service network restart
Ip地址与配置的IP一样,则说明网络配置成功。
配置VMWare网络模式,虚拟机中点击“编辑”--->“虚拟网络编辑器”,删除其他网络模式,只保留NAT模式,如下图,
配置虚拟机网络模式,
选中要配置的虚拟机,然后点击右键--->设置--->网络适配器--->“自定义(U):特定虚拟网络”--->VMnet*(NAT)模式--->确定
验证网络,
通过XShell远程登录工具,进行登录该虚拟机,
输入用户名“root”和密码,登录成功,则说明网络配置完成。
计算节点slave的网络配置与管理节点master一样,只是将Ip地址配置为:192.168.222.101。
四、关闭防火墙
临时关闭防火墙
#service iptables stop
永久关闭防火墙:
# chkconfig iptables off
五、配置 hosts 列表
需要在 root 用户下,编辑主机名列表的命令:
# vi /etc/hosts
将下面两行添加到/etc/hosts 文件中:
这里 master 节点对应 IP 地址是 192.168.222.100,slave 对应的 IP 是 192.168.222.100,而自己在做配置时,需要将这两个 IP 地址改为你的 master 和 slave 对应的 IP 地址。
验证是否配置成功的命令是:
#ping master
#ping slave
如果出现下图的信息表示配置成功:
六、验证免密钥登陆
在master 节点上,
在终端生成密钥,命令如下(一路点击回车生成密钥)
#ssh-keygen -t rsa
生成的密钥在.ssh 目录下如下图所示:
复制公钥文件:
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
执行 ls -l 命令后会看到下图的文件列表:
将 authorized_keys 文件复制到 slave 节点,命令如下:
#scp ~/.ssh/authorized_keys zkpk@slave:~/
Slave节点:
在终端生成密钥,命令如下(一路点击回车生成密钥)
#ssh-keygen -t rsa
将 authorized_keys 文件移动到.ssh 目录
#mv authorized_keys ~/.ssh/
验证免密钥登陆
在 master 机器上执行下面的命令:
ssh slave
如果出现下图的内容表示免密钥配置成功:
七、安装 JDK
首先将JDK安装包上传到虚拟机上,然后更改权限
#chmod 777 jdk-7u25-linux-x64.tar.gz
解压缩软件包:
# tar -zxvf jdk-7u25-linux-x64.tar.gz
重命名jdk安装包:
# mv jdk1.7.0_25 jdk
配置环境变量:
# vi /etc/profile
验证是否安装成功:
八、Hadoop安装
更改权限:
#chmod 777 hadoop-2.5.2.tar.gz
解压安装包:
#tar -zxvf hadoop-2.5.2.tar.gz
重命名安装包:
# mv hadoop-2.5.2 hadoop
配置java运行环境:
# vi hadoop/etc/hadoop/hadoop-env.sh
找到
更该为:
配置环境变量 yarn-env.sh
# vi hadoop/etc/hadoop/yarn-env.sh
在文件的靠前的部分找到下面的一行代码:
将第二行代码修改为下面的代码(将#号去掉):
更改为:
配置核心组件 core-site.xml
#vi hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoopdata</value>
</property>
</configuration>
配置文件系统 hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
</property>
</configuration>
配置文件系统 yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
配置计算框架 mapred-site.xml
#cp hadoop/etc/hadoop/mapred-site.xml.template hadoop/etc/hadoop/mapred-site.xml
#vi hadoop/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在 master 节点配置 slaves 文件
# vi hadoop/etc/hadoop/slaves
复制到从节点
使用下面的命令将已经配置完成的 Hadoop 复制到从节点 Slave 上(大概2-3分钟):
#scp -r /home/software/hadoop root@slave:/home/software/
配置 Hadoop 启动的系统环境变量
# vi /etc/profile
使配置信息生效:
# source /etc/profile
创建数据目录
(两个节点上都要创建)
# mkdir /home/hadoopdata
# mkdir /home/hadoopdata/dfs
# mkdir /home/hadoopdata/dfs/data
# mkdir /home/hadoopdata/dfs/name
格式化文件系统:
# hdfs namenode -format
看到下图的打印信息表示格式化成功,如果出现 Exception/Error,则表示出问题:
启动 Hadoop
#/start-all.sh
查看进程是否启动:在 HadoopMaster 的终端执行 jps 命令,在打印结果中会看到 4 个进程,分别是 ResourceManager、Jps、 NameNode 和 SecondaryNameNode,如下图所示。如果出现了这 4 个进程表示主节点进程启动成功。
在 HadoopSlave 的终端执行 jps 命令,在打印结果中会看到 3 个进程,分别是 NodeManager、DataNode 和 Jps,如下图所示。如果出现了这 3 个进程表示从节点进程启动成功。
Web UI 查看集群是否成功启动
在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入http://192.168.222.100:50070/,检查namenode 和 datanode 是否正常。UI 页面如下图所示。
运行 PI 实例检查集群是否成功
进入 Hadoop 安装主目录,执行下面的命令:
# cd /home/software/hadoop/share/hadoop/mapreduce/
# hadoop jar hadoop-mapreduce-examples-2.5.2.jar pi 10 10
会看到如下的执行结果:
最后输出:
Estimated value of Pi is 3.20000000000000000000 ,如果以上的 3 个验证步骤都没有问题,说明集群正常启动。