一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
安装配置ZooKeeper
ZooKeeper是一个开源分布式协调服务,其独特的Leader-Follower集群结构,很好的解决了分布式单点问题。目前主要用于诸如:统一命名服务、配置管理、锁服务、集群管理等场景。大数据应用中主要使用ZooKeeper的集群管理功能。
因为在项目中会使用到HBase,所以需要安装ZooKeeper。HBase是一个开源的、分布式的NoSQL数据库,它建立在Hadoop分布式文件系统(HDFS)之上。HBase具有高可靠性、高可扩展性、高性能等特点,它适合于存储和处理大规模数据。而ZooKeeper是一个分布式的协调服务,它能够提供分布式系统中的一致性和可靠性支持。在HBase中,ZooKeeper负责协调HBase集群中所有RegionServer的状态、负载均衡以及Master的选举等任务。因此,ZooKeeper在HBase中扮演了一个非常重要的角色,它确保了HBase集群的稳定性和可靠性。
任务主要内容为:ZooKeeper下载安装,环境变量的修改,配置ZooKeeper。
任务指导
1、安装ZooKeeper集群的主要步骤
同时在node1、node2、node3三个节点上安装ZooKeeper;
分别在node1、node2、node3三个节点上配置用户环境变量;
分别在node1、node2、node3三个节点上修改ZooKeeper的配置文件;
分别在node1、node2、node3三个节点上创建ZooKeeper的数据存储目录和日志存储目录;
分别在node1、node2、node3三个节点上创建的ZooKeeper的数据存储目录中创建myid文件;
分别在node1、node2、node3三个节点上启动ZooKeeper;
2、常见问题
如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888
该异常是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个Leader后,最后稳定 了。其他结点可能也出现类似问题,属于正常。
1.1. 关闭防火墙
使用root权限登陆后,输入关闭防火墙命令(在所有节点执行以下操作):
Centos7
systemctl status firewalldsystemctl stop firewalldsystemctl start firewalldsystemctl restart firewalldsystemctl disable firewalld如果不关闭防火墙,客户端使用API操作HDFS以及ZooKeeper,可能就会出现下面常见的两种异常:
API操作HDFS时会出现异常:java.net.NoRouteToHostException: No route to host
API操作ZK时会出现异常:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx
关闭防火墙。在Hadoop集群环境(linux系统)中最好关闭防火墙,不然会出现很多问题,例如namenode找不到datanode等。
1.2. 安装Zookeeper
- 进入目录
在node1节点上,进入/opt/software/目录(此目录是为实验提供的安装软件所在目录,如果没有请自行到官方网站下载):
cd /opt/software/首先在node1节点安装ZooKeeper,解压ZooKeeper安装包:
- 解压
tar -zxf /opt/software/zookeeper-3.4.13.tar.gz -C /opt/module- 配置用户环境变量
打开配置文件
vi /etc/profile增加如下内容:
export ZK_HOME=/opt/module/zookeeper-3.4.13export PATH=$PATH:$ZK_HOME/bin- 使修改的环境变量生效
[root@node1 software]# source /etc/profile- 查看
cd $ZK_HOME/conf/cat: /opt/module/zookeeper-3.4.13: Is a directory1.3. 配置ZooKeeper
1.3.1. 配置zoo.cfg
在node1节点上,修改ZooKeeper的配置文件
- 备份
cd $ZK_HOME/conf/mv zoo_sample.cfg zoo_sample.cfg_bkvi zoo.cfg- 修改cfg文件
如下内容:
1.3.2. 创建数据与日志目录
mkdir -p /opt/module/zookeeper-3.4.13/datamkdir -p /opt/module/zookeeper-3.4.13/data/logs1.3.3. 设置myid
在data目录中创建一个文件myid,输入内容为1
cd $ZK_HOMEecho "1" > data/myid修改ZooKeeper的日志输出路径
vi bin/zkEnv.sh修改(并非添加)内容如下:
参考:日志会以文件的形式进行保存,但是如果日志文件一直保存,如果不及时清理总会打爆我们服务器的磁盘
修改ZooKeeper的日志配置文件
vi conf/log4j.properties修改(并非添加)内容如下:
zookeeper.root.logger=INFO,ROLLINGFILE1.3.4. 其他节点
- 在node1中将zookeeper目录复制到其它节点
scp -rq /opt/module/zookeeper-3.4.13 node2:/opt/modulescp -rq /opt/module/zookeeper-3.4.13 node3:/opt/modulescp -rq /etc/profile node2:/etc/scp -rq /etc/profile node2:/etc/- 在node2中修改(并非添加)data目录中的myid文件
rm -rf /opt/module/zookeeper-3.4.13/data/myidecho "2" > /opt/module/zookeeper-3.4.13/data/myid#分别执行的话别忘记echo标识- 在node3中修改(并非添加)data目录中的myid文件
rm -rf /opt/module/zookeeper-3.4.13/data/myidecho "3" > /opt/module/zookeeper-3.4.13/data/myid#分别执行的话别忘记echo标识- 在node2,node3中都要执行
source /etc/profile1.4. 启动,测试Zookeeper
分别在node1、node2、node3节点上启动ZooKeeper服务
[root@node1 ~]# zkServer.sh start[root@node2 ~]# zkServer.sh start[root@node3 ~]# zkServer.sh start分别在node1、node2、node3节点上查看状态
[root@node1 ~]# zkServer.sh status[root@node2 ~]# zkServer.sh status[root@node3 ~]# zkServer.sh status如果要关闭ZooKeeper服务,可以分别在三个节点上使用关闭命令。这里不要执行关闭命令,后面安装Kafka和HBase会用到ZooKeeper集群。
zkServer.sh stopPrev
准备系统运行的先决条件
Next
安装配置Hadoop集群
Loading...