1、环境说明
系统环境:
系统环境:CentOS6.7
Hadoop版本:CDH5.5
JDK运行版本:1.7.0_67
集群各节点组件分配:
2、准备工作
安装 Hadoop 集群前先做好下面的准备工作,在修改配置文件的时候,建议在一个节点上修改,然后同步到其他节点。因为要同步配置文件和在多个节点启动服务,建议配置 ssh 无密码登陆。
2.1配置hosts
CDH 要求使用 IPv4,IPv6 不支持,禁用IPv6方法:
# vim /etc/sysctl.conf
#disable ipv6
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
使其生效:
# sysctl -p
最后确认是否已禁用:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
设置hostname,以bd-ops-test-74为例
hostname bd-ops-test-74
并使其永久生效
# vim /etc/sysconfig/network
修改HOSTNAME=bd-ops-test-74
修改hosts表
在每个节点上都应有一份hosts表,在之后的配置中,对应节点名称使用hostname
# vim /etc/hosts
172.16.57.74 bd-ops-test-74
172.16.57.75 bd-ops-test-75
172.16.57.76 bd-ops-test-76
172.16.57.77 bd-ops-test-77
2.2关闭防火墙以及selinux
# setenforce 0
# vim /etc/sysconfig/selinux #修改SELINUX=disabled
#清空iptables
# iptables -F
2.3时钟同步
搭建时钟同步服务器
这里选择 74 节点为时钟同步服务器,其他节点为客户端同步时间到该节点。安装ntp:
# yum install ntp -y
修改 74 上的配置文件 /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict 172.16.57.0 mask 255.255.255.0 nomodify notrap
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.ntp.org iburst
server 3.centos.pool.ntp.org iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
启动 ntp:
#设置开机启动
# chkconfig ntpd on
# service ntpd start
ntpq用来监视ntpd操作,使用标准的NTP模式6控制消息模式,并与NTP服务器通信。
ntpq -p 查询网络中的NTP服务器,同时显示客户端和每个服务器的关系。
#ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*dns1.synet.edu. 202.118.1.47 2 u 57 64 377 41.912 -3.877 4.628
客户端的配置
在76和77节点上执行下面操作:
# ntpdate bd-ops-test-74
Ntpd启动的时候通常需要一段时间大概5分钟进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,报错"no server suitable for synchronization found"。启动时候需要等待5分钟。
过一会儿我们就可以看到同步成功了:
#ntpdate bd-ops-test-74
24 Aug 22:32:14 ntpdate[14024]: step time server 172.16.57.74 offset -77.582859 sec
2.4安装JDK
此过程不再赘述,本例中jdk安装目录为/opt/programs/jdk1.7.0_67
2.5设置本地yum源
从官方下载cdh5.5压缩仓库包,传送门:
解压后配置本地仓库使用。
3、安装Zookeeper
Zookeeper 至少需要3个节点,并且节点数要求是基数,这里在75、76、77上安装 Zookeeper。
3.1安装
在需要安装的节点上执行:
# yum install zookeeper* -y
3.2修改配置文件
设置 zookeeper 配置 /etc/zookeeper/conf/zoo.cfg
maxClientCnxns=50
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/zkdata
clientPort=2181
dataLogDir=/opt/zookeeper/zkdatalog
server.1=172.16.57.75:2888:3888
server.2=172.16.57.76:2888:3888
server.3=172.16.57.77:2888:3888
指定jdk路径/etc/zookeeper/conf/Java.env
export JAVA_HOME=/opt/programs/jdk1.7.0_67/
3.3同步配置文件
将配置文件同步到其他节点:
# scp -r /etc/zookeeper/conf root@bd-ops-test-76:/etc/zookeeper/
# scp -r /etc/zookeeper/conf root@bd-ops-test-77:/etc/zookeeper/
3.4初始化并启动服务
在每个节点上初始化并启动 zookeeper,注意 myid 的值需要和 zoo.cfg 中的编号一致。
在 75 节点运行:
# service zookeeper-server init --myid=1
# service zookeeper-server start
在 76 节点运行:
# service zookeeper-server init --myid=2
# service zookeeper-server start
在 77 节点运行:
# service zookeeper-server init --myid=3
# service zookeeper-server start
3.5测试
通过下面命令测试是否启动成功:
# zookeeper-client -server bd-ops-test-74:2181
4、安装和配置HDFS(HA模式)
根据文章开头的节点规划,
在74,75上安装 hadoop-hdfs-namenode,
# yum install hadoop-hdfs-namenode -y
在74,75,76,77上安装hadoop-hdfs-datanode
# yum install hadoop-hdfs-datanode -y
4.1配置hadoop相关环境变量
创建 /etc/hadoop/conf/hadoop-env.sh,主要指定的是jdk、hadoop等相关安装目录