【时间】2014年11月19日
【平台】Centos 6.5
【工具】
【软件】jdk-7u67-linux-x64.rpm
zookeeper-3.4.6.tar.gz
【步骤】
1. 准备条件
(1)集群规划
主机类型 | IP地址 | 域名 |
zookeeper1 | 192.168.50.21 | zookeeper1.hadoop.com |
zookeeper2 | 192.168.50.22 | zookeeper2.hadoop.com |
zookeeper3 | 192.168.50.23 | zookeeper3.hadoop.com |
(2)以root身份登录操作系统
(3)在集群中的每台主机上执行如下命令,设置主机名。
hostname *.hadoop.com
编辑文件/etc/sysconfig/network如下
HOSTNAME=*.hadoop.com
(4)修改文件/etc/hosts如下
192.168.86.21 zookeeper1.hadoop.com
192.168.86.22 zookeeper2.hadoop.com
192.168.86.23 zookeeper3.hadoop.com
执行如下命令,将hosts文件复制到集群中每台主机上
scp /etc/hosts 192.168.50.*:/etc/hosts
(5)安装jdk
rpm -ivh jdk-7u67-linux-x64.rpm
(6)关闭iptables
service iptables stop
chkconfig iptables off
(7)关闭selinux。修改文件/etc/selinux/config,然后重启操作系统
SELINUX=disabled
2. 安装
(1)解压
tar -zxf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6
(2)示例如下
(3)根据实际应用场景安装部署
1)单机部署——适用于开发测试
配置:conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
启动:
bin/zkServer.sh start
查看:
停止:
连接到Zookeeper:
bin/zkCli.sh -server 127.0.0.1:2181 适用于Java开发
2)伪集群部署(单机多进程)——适用于开发测试
配置:conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
autopurge.purgeInterval=12
autopurge.snapRetainCount=3
server.1=192.168.50.254:2887:3887
server.2=192.168.50.254:2888:3888
server.3=192.168.50.254:2889:3889
复制conf/zoo.cfg为三份:conf/zoo1.cfg、conf/zoo2.cfg、conf/zoo3.cfg
修改zoo1.cfg
dataDir=/var/lib/zookeeper/node1
clientPort=2181
修改zoo2.cfg
dataDir=/var/lib/zookeeper/node2
clientPort=2182
修改zoo3.cfg
dataDir=/var/lib/zookeeper/node3
clientPort=2183
执行如下命令:
mkdir /var/lib/zookeeper/node1 && echo 1 > /var/lib/zookeeper/node1/myid
mkdir /var/lib/zookeeper/node2 && echo 1 > /var/lib/zookeeper/node2/myid
mkdir /var/lib/zookeeper/node3 && echo 1 > /var/lib/zookeeper/node3/myid
启动:
bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg
查看:
停止:
连接到Zookeeper:
bin/zkCli.sh -server 127.0.0.1:2181
bin/zkCli.sh -server 127.0.0.1:2182
bin/zkCli.sh -server 127.0.0.1:2183
示例如下:(输入quit退出)
3)集群部署——适用于生产环境
配置:conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
autopurge.purgeInterval=12
autopurge.snapRetainCount=3
server.1=zookeeper1.hadoop.com:2888:3888
server.2=zookeeper2.hadoop.com:2888:3888
server.3=zookeeper3.hadoop.com:2888:3888
执行如下命令,把zoo.cfg复制到集群中的每台主机上
scp <本地主机配置文件> 192.168.50.*:<目标主机配置文件路径>
优化:设置Java heap,以避免发生内存交换(swap)
echo -e "\nJVMFLAGS=-Xmx512m" >> bin/zkEnv.sh
scp bin/zkEnv.sh 192.168.50.*:<目标主机配置文件路径>
启动:在集群中的每台主机上执行如下命令
bin/zkServer.sh start
查看:
bin/zkServer.sh status
停止:
bin/zkServer.sh stop
连接:
bin/zkCli.sh -server zookeeper1:2181
bin/zkCli.sh -server zookeeper2:2181
bin/zkCli.sh -server zookeeper3:2181
3. 配置。将以下文件修改完毕后,用scp命令复制到集群中的所有主机上
(1)修改文件/etc/spark/conf/spark-env.sh
export STANDALONE_SPARK_MASTER_HOST= master.hadoop.com
(2)修改文件/etc/spark/conf/spark-defaults.conf
spark.master spark://master.hadoop.com:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master.hadoop.com:8020/user/spark/eventlog
spark.yarn.historyServer.address http://master.hadoop.com:18081
spark.executor.memory 2g
spark.logConf true
(3)复制配置文件到集群所有主机
scp /etc/spark/conf/* 192.168.50.10:/etc/spark/conf/*
【参考】
1)Zookeeper官方网站 http://zookeeper.apache.org