本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 。
1 节点环境介绍:
1.1 环境介绍:
- 服务器:三台阿里云ECS服务器:master, slave1, slave2
- 操作系统:CentOS 7.3
- Hadoop:hadoop-2.7.3.tar.gz
- Java: jdk-8u77-linux-x64.tar.gz
- ZooKeeper: zookeeper-3.4.14.tar.gz
1.2 各节点角色分配
- master: NameNode、SecondaryNameNode、QuorumPeerMain
- slave1: DataNode、QuorumPeerMain
- slave2: DataNode、QuorumPeerMain
2 ZooKeeper 下载
下载 zookeeper-3.4.14.tar.gz 并在合适的位置解压缩,笔者这里解压缩的路径为:
/usr/local/
将解压得到的目录改名为 zookeeper 。
cd /usr/local mv zookeeper-3.4.14 zookeeper
3 添加 ZooKeeper 环境变量
在"/etc/profile"中添加内容:
1 export ZOOKEEPER_HOME=/usr/local/zookeeper 2 export PATH=$PATH:$ZOOKEEPER_HOME/bin
重新加载环境:
source /etc/profile
4 修改 Zookeeper 配置信息
4.1 修改 Zookeeper 默认配置
编辑文件:
1 cd $ZOOKEEPER_HOME/conf/ 2 cp zoo_sample.cfg zoo.cfg 3 vim zoo.cfg
配置可参考如下代码:
1 # The number of milliseconds of each tick 通信心跳时间 2 tickTime=2000 3 # The number of ticks that the initial 4 # synchronization phase can take 初始通信时限 5 initLimit=5 6 # The number of ticks that can pass between 7 # sending a request and getting an acknowledgement 同步通信时限 8 syncLimit=2 9 # the directory where the snapshot is stored. 10 # do not use /tmp for storage, /tmp here is just 11 # example sakes. 数据文件目录 12 dataDir=/usr/local/zookeeper/tmp 13 # the port at which the clients will connect 客户端连接端口 14 clientPort=2181 15 #服务器名称与地址:集群信息(服务器编号、服务器地址、LF 通信端口、选举端口) 16 server.1=master:2888:3888 17 server.2=slave1:2888:3888 18 server.3=slave2:2888:3888
4.2 为节点配置编号
在 /usr/local/zookeeper 下创建目录 tmp,然后在 tmp 下创建文件 myid 并编辑。
1 cd $ZOOKEEPER_HOME 2 mkdir tmp 3 cd tmp 4 vim myid
添加内容:
1
5 分发 zookeeper 和 profile 给 slave1, slave2(建议将 zookeeper压缩后分发)
1 scp -r /usr/local/zookeeper slave1:/usr/local 2 scp -r /usr/local/zookeeper slave2:/usr/local
1 scp /etc/profile slave1:/etc 2 scp /etc/profile slave2:/etc
分发后分别在各节点重新加载环境。
将 slave1 和 slave2 的内容分别改为 2 和 3 。
6 启动 zookeeper
分别在三个节点执行以下命令
zkServer.sh start
然后使用 jps 确定 QuorumPeerMain 进程是否启动
启动完成后可使用以下命令查看各节点的 zookeeper mode。
注:如只启动了一个节点的 zookeeper 则会出现以下错误,因为最少需要一个 leader 和 一个 follower 。
7 Zookeeper shell 使用
zkCli.sh
8 搭建完成
接下来就可以和 Hbase 一起使用了。
阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)