大数据-zookeeper集群安装

一、安装前发现的问题:

1、安装前期发现jps权限不够

[root@master1 ~]# jps
-bash: /opt/workspace/jdk1.8/bin/jps: Permission denied

解决:

这时只需要添加一个权限即可

chmod +x /usr/local/jdk8/bin/jps

x是执行权限

2、中文乱码问题

 解决:编辑服务器文件

vim  etc/locale.conf

3、journalnode启动java权限问题

chmod +x /opt/workspace/jdk1.8/bin/java

 二、安装zookeeper

(1)下载源码并解压

地址http://mirror.bit.edu.cn/apache/zookeeper/

mkdir /opt/workspace/zookeeper
下载稳定版本,解压缩到/opt/workspace/zookeeper目录

[root@master1 ~]# cd /opt/workspace
[root@master1 zookeeper]#tar -zxvf zookeeper-3.4.12.tar.gz

(2)环境配置

修改文件 /etc/profile

export ZK_HOME=/opt/workspace/zookeeper/zookeeper-3.4.12
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${MAVEN_HOME}/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:${HIVE_HOME}/bin:${SPARK_HOME}/bin:${HBASE_HOME}/bin:$SQOOP_HOME/bin:${ZK_HOME}/bin:$PATH
   source /etc/profile

(3)修改配置文件
1.在集群的服务器上都创建这些目录
切换到/opt/workspace/zookeeper/目录,执行以下命令

mkdir zookeeper/data
mkdir zookeeper/datalog

并在/opt/workspace/zookeeper/data目录下创建myid文件

touch myid
将master1、master2、slave1、slave2、slave3的myid文件内容改为1,2,3,4,5

(4)修改zoo.cfg文件

复制zoo_sample.cfg文件并重命名为zoo.cfg,并添加如下配置:

[root@master1 conf]mv zoo_sample.cfg zoo.cnf
dataDir=/opt/workspace/zookeeper/data
dataLogDir=/opt/workspace/zookeeper/datalog

server.1=master1:2888:3888

server.2=master2:2888:3888
server.3=slave1:2888:3888
server.4=slave2:2888:3888
server.5=slave3:2888:3888

说明:client port,顾名思义,就是客户端连接zookeeper服务的端口。这是一个TCP port。dataLogDir里是放到的顺序日志(WAL)。而dataDir里放的是内存数据结构的snapshot,便于快速恢复。为了达到性能最大化,一般建议把dataDir和dataLogDir分到不同的磁盘上,这样就可以充分利用磁盘顺序写的特性。dataDir和dataLogDir需要自己创建,目录可以自己制定,对应即可。
1.tickTime:CS通信心跳数
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
3.syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
依旧将zookeeper传输到其他的机器上

(5)启动zookeeper
切换到/opt/workspace/zookeeper/zookeeper-3.4.12/bin目录下,执行

zkServer.sh start

注:成功配置zookeeper之后,需要在每台机器上启动zookeeper

在所有节点启动后,等待一段时间查看即可

[root@master1 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/workspace/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
[root@slave3 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/workspace/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader

问题:

1、zookeeper启动正常,查看状态出现错误

解决方法:

查看zookeeper.out文件

我的在zookeeper/zookeeper-3.4.12/bin/zookeeper.out

关闭防火墙

systemctl stop firewalld.service

 等待一会重新启动服务,问题解决,5台机器全部启动

2、DFSZKFailoverController进程启动失败

在搭建完成后,启动hadoop服务时,发现两个namenode都处于standby状态,仔细检查发现DFSZKFailoverController进程没有启动

首先去查找log日志

查看master1中的zkfc日志

发现错误

 解决:重新在master1和master2上格式化zookeeper

[root@master1 hadoop-2.9.1]# cd bin
[root@master1 bin]# hdfs zkfc -formatZK

在master1和master2上重新启动zookeeper

[root@master1 bin]# hadoop-daemon.sh start zkfc

查看启动的进程

[root@master1 bin]# hdfs haadmin -failover nn1 nn2
19/02/20 14:17:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Failover to NameNode at master2/159.226.48.203:9000 successful
[root@master1 bin]# hdfs haadmin -getServiceState nn1
19/02/20 14:18:12 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
standby
[root@master1 bin]# hdfs haadmin -getServiceState nn2
19/02/20 14:18:17 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
active

DFSZKFailoverController进程启动正常

参考:https://blog.csdn.net/sinat_25943197/article/details/81906060

posted @ 2019-02-19 21:54  Angel_jing  阅读(211)  评论(0编辑  收藏  举报