完全分布式集群(一)集群基础环境及zookeeper-3.4.10安装部署
时间: 2018-10-09来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>>
本系列博文将记录在3台CentOS7环境下搭建完全分布式数据分析平台环境。
基础环境配置
环境信息

设置机器名
设置服务器的机器名,3台都设依次分别设置为node222,node224,node225,root用户操作,示例如node222。 hostnamectl set-hostname node222
修改各服务器的/etc/hosts文件,追加3台服务器的IP和hostname信息,3台服务器信息一致,root用户操作。 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.0.222 node222 192.168.0.224 node224 192.168.0.225 node225
切一次用户测试配置是否设置生效,同时测试通过hostname互ping是否正常。 su - root ping node222
关闭防火墙
CentOS7默认防火墙服务是firewalld,3台服务器都要执行,root用户操作,如果安装了iptables服务也要关闭。 systemctl stop firewalld.service systemctl disable firewalld.service systemctl stop iptables.service systemctl disable iptables.service
关闭SElinux
修改/etc/selinux/config文件,将SELINUX设置为disabled,3台服务器均需安装,root用户操作。 # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
安装JDK8
JDK8或最新版本可在oracle官方网站下载,本次采用jdk-8u66-linux-x64.gz,下载后通过FTP工具上传至服务器,解压,配置环境变量即可。3台服务器均需安装,root用户操作。 gtar -xzf /home/hadoop/jdk-8u66-linux-x64.gz -C /usr/local/ ls /usr/local/jdk1.8.0_66/ # 编辑/etc/profile文件添加如下内容 export JAVA_HOME=/usr/local/jdk1.8.0_66/ export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH vi /etc/profile # 使配置生效 source /etc/profile # 测试JDK环境 java -version java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
以上各步骤操作完成后,重启各服务器,再次检查各配置项是否生效,如一切正常,即完成初始服务器环境配置。
安装zookeeper集群
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
以下记录zookeeper-3.4.10版本的3节点完全分布式集群环境安装部署过程。
下载zookeeper-3.4.10.tar.gz,通过FTP工具上传至一台服务器并解压,一台服务器上操作,root用户操作。 tar -zxf /rpmpackages/hbase/zookeeper-3.4.10.tar.gz -C /usr/local/
创建数据和日志目录 mkdir -p /usr/local/zookeeper-3.4.10/zkdata mkdir -p /usr/local/zookeeper-3.4.10/zklogs
复制模板生成配置文件,修改以下配置项 cp /usr/local/zookeeper-3.4.10/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.10/conf/zoo.cfg vi /usr/local/zookeeper-3.4.10/conf/zoo.cfg # 修改的内容 tickTime=2000 initLimit=5 syncLimit=2 dataDir=/usr/local/zookeeper-3.4.10/zkdata clientPort=2181 #最好用机器名 server.1=node222:2888:3888 server.2=node224:2888:3888 server.3=node225:2888:3888
相关配置参数说明:
#tickTime:
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳,单位是毫秒。
#initLimit:
配置zookeeper集群中follower与leader初始化连接时能容忍的tickTime个数,那么容忍的时长就等于initLimit*tickTime
#syncLimit:
配置 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是syncLimit*tickTime
#dataDir:
快照日志的存储路径
#dataLogDir:
事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
#clientPort:
这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,这个标识要写到快照目录下面myid文件里
#node222为集群里的hostname,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
编辑bin/zkEnv.sh设置日志目录 if [ "x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="/usr/local/zookeeper-3.4.10/zklogs" fi
拷贝zookeeper安装文件至其他节点 scp -r /usr/local/zookeeper-3.4.10 root@node224:/usr/local/ scp -r /usr/local/zookeeper-3.4.10 root@node225:/usr/local/
给集群的每台服务器分别创建自己的myid文件,文件内的号码要与配置文件中的配置一致 [root@node222 zookeeper-3.4.10]# echo "1" > zkdata/myid [root@node224 zookeeper-3.4.10]# echo "2" > zkdata/myid [root@node225 zookeeper-3.4.10]# echo "3" > zkdata/myid
配置zookeeper的环境变量,3台服务均要配置。 vi /etc/profile # 追加如下内容 export ZK_HOME=/usr/local/zookeeper-3.4.10 export PATH=$ZK_HOME/bin:ZK_HOME/sbin:ZK_HOME/lib:$PATH # 使配置生效 source /etc/profile
启动节点上的zookeeper服务 /usr/local/zookeeper-3.4.10/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
检查各节点的zookeeper服务状态,正常应该有一个leader,两个follower。 # leader节点状态 /usr/local/zookeeper-3.4.10/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg Mode: leader # follower节点状态 /usr/local/zookeeper-3.4.10/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg Mode: follower
集群中如果有三个节点,关闭两个节点后,第三个节点的状态会出现异常。启动一个节点(两个节点)状态又可以恢复;主节点关闭后,会选举新的主节点,原主节点启动后会作为从节点。
客户端shell操作
zookeeper可通过zkCli.sh客户端工具连接,进行简单的shell操作。 /usr/local/zookeeper-3.4.10/bin/zkCli.sh -server node224:2181 Connecting to node224:2181 ...... WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: node224:2181(CONNECTED) 0] [zk: node224:2181(CONNECTED) 0] ls / [zookeeper] [zk: node224:2181(CONNECTED) 1] ls /zookeeper [quota] [zk: node224:2181(CONNECTED) 2] ls /zookeeper/quota [] [zk: node224:2181(CONNECTED) 3] create /zk_test my_data Created /zk_test [zk: node224:2181(CONNECTED) 4] ls / [zookeeper, zk_test] [zk: node224:2181(CONNECTED) 5] ls /zk_test [] [zk: node224:2181(CONNECTED) 6] get /zk_test

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行