完全分布式集群(一)集群基础环境及zookeeper-3.4.10安装部署

本系列博文将记录在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

 

转载于:https://my.oschina.net/peakfang/blog/2236935

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值