Hadoop(CDH4发行版)集群部署(三)

2014-11-24 10:35:25 · 作者: · 浏览: 2
用于namenode 的auto fail over功能。
1.安装
1
yum install zookeeper zookeeper-server
2.修改配置文件/etc/zookeeper/conf/zoo.cfg
01
maxClientCnxns=50
02
# The number of milliseconds of each tick
03
tickTime=2000
04
# The number of ticks that the initial
05
# synchronization phase can take
06
initLimit=10
07
# The number of ticks that can pass between
08
# sending a request and getting an acknowledgement
09
syncLimit=5
10
# the directory where the snapshot is stored.
11
dataDir=/var/lib/zookeeper
12
# the port at which the clients will connect
13
clientPort=2181
14
#这里指定zookeeper集群内的所有机器,此配置集群内机器都是一样的
15
server.1=dn100.dg.hadoop.cn :2888:3888
16
server.2=dn101.dg.hadoop.cn:2888:3888
3.指定当前机器的id,并开启服务
1
#譬如当前机器是192.168.1.100(dn100.dg.hadoop.cn),它是server.1,id是1,SO:
2
echo "1" > /var/lib/zookeeper/myid
3
chown -R zookeeper.zookeeper /var/lib/zookeeper/
4
service zookeeper-server init
5
/etc/init.d/zookeeper-server start
6
chkconfig zookeeper-server on
7
#如此类推,部署192.168.1.101
五、datanode & nodemanager 服务器部署
1.登录datanode机器,创建脚本目录,从主服务器把脚本同步过来
1
/etc/init.d/iptables stop
2
mkdir –p /opt/hadoop_scripts
3
rsync –avz 192.168.1.1::hadoop_s /opt/hadoop_scripts
2.修改hostname,执行部署脚本 CreateDatanode.sh
1
sh /opt/hadoop_scripts/deploy/AddHostname.sh
2
sh /opt/hadoop_scripts/deploy/CreateDatanode.sh
集群初始化
到这里,hadoop集群的环境已部署完毕,现在开始初始化集群
一、namenode的HA高可用初始化
1.在namenode主服务器(192.168.1.1)执行zookeeper的failover功能格式化
1
sudo –u hdfs hdfs zkfc –formatZK
2.把zookeeper集群服务启动(192.168.1.100 192.168.1.101 )
1
/etc/init.d/zookeeper-server start
3.把namenode主备服务器的zkfc服务起来(192.168.1.1 192.168.1.2)
1
/etc/init.d/hadoop-hdfs-zkfc start
4.在namenode主服务器(192.168.1.1)格式化hdfs
1
#确保是用hdfs用户格式化
2
sudo -u hdfs hadoop namenode –format
5.第一次搭建namenode高可用,需要把name.dir下面的数据复制到namenode备服务器(此坑花了好多时间)
a.在主服务器(192.168.1.1)执行
1
tar -zcvPf /tmp/namedir.tar.gz /data/hadoop/dfs/name/
2
nc -l 9999 < /tmp/namedir.tar.gz
b.在备服务器(192.168.1.2)执行
1
wget 192.168.1.1:9999 -O /tmp/namedir.tar.gz
2
tar -zxvPf /tmp/namedir.tar.gz
6.主从服务都启动
1
/etc/init.d/hadoop-hdfs-namenode start
2
/etc/init.d/hadoop-yarn-resourcemanager start
7.查看hdfs的web界面
1
http://192.168.1.1:9080
2
http://192.168.1.2:9080
3
#如果在web界面看到两个namenode都是backup状态,那就是auto fail over配置不成功
4
#查看zkfc日志(/var/log/hadoop-hdfs/hadoop-hdfs-zkfc-nn.dg.s.kingsoft.net.log)
5
#查看zookeeper集群的日志(/var/log/zookeeper/zookeeper.log)
8.现在可以尝试关闭namenode主服务,看是否能主从切换
二、hdfs集群开启
到这里,所有hadoop部署已完成,现在开始把集群启动,验证效果
1.把所有datanode服务器启动
1
#还记得之前搭建的saltstack管理工具不,现在开始发挥它的作用,登录saltstack master(192.168.1.1)执行
2
salt -v "dn*" cmd.run "/etc/init.d/hadoop-hdfs-datanode start"
2.查看hdfs web界面,看是否都成为live nodes
3.如果没有问题,现在可以尝试hdfs操作
01
#创建一个tmp目录
02
sudo -u hdfs hdfs dfs -mkdir /tmp
03
#创建一个10G大小的空文件,计算它的 MD5值,并放入hdfs
04
dd if=/dev/zero of=/data/test_10G_file bs=1G count=10
05
md5sum /data/test_10G_file
06
sudo -u hdfs hdfs dfs -put /data/test_10G_file /tmp
07
sudo -u hdfs hdfs dfs -ls /tmp
08