Hadoop 中zoo_Hadoop学习之路(9)Zookeeper安装教程

2023-10-13 07:10

本文主要是介绍Hadoop 中zoo_Hadoop学习之路(9)Zookeeper安装教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1、环境准备
    • 1.1下载zooKeeper
    • 1.3安装zooKeeper
    • 1.4配置zooKeeper环境变量
    • 1.5 修改zookeeper集群配置文件
    • 1.6 创建myid文件
    • 1.7 修改myid目录权限
  • 2、复制zookeeper
  • 3、修改node2和node3节点zookeeper的相关目录权限
  • 4、修改node2和node3的myid文件内容
  • 5、配置node2和node3的zookeeper环境变量
    • 5.1 使得node2和node3的环境变量生效
  • 6.启动zookeeper集群
    • 6.1 启动zookeeper集群
    • 6.2 查看zookeeper集群状态
    • 6.3 zooKeeper安装遇到问题

1、环境准备

1.1下载zooKeeper

   查阅hadoop2.7.3的文档我们可以看到hadoop2.7.3在搭建高可用的时候使用的是zookeeper-3.4.2版本,所以我们也按照hadoop官网的提示,接下来我们安装zookeeper-3.4.2版本.进入官网下载ZooKeeper3.4.2版本
   官网地址:https://zookeeper.apache.org/

37787e79606eb855f5cb3e9459126eac.png


点击Download

45ef2c6e141027339429ad883275c464.png
fedff914e2000e7ce871da559eb09834.png
471a648cc399e08d53a4df1fd1a8670e.png

1.3安装zooKeeper

#1.把zookeeper的压缩安装包解压到/opt/bigdata/目录下[root@node1 ~]# tar -xzvf zookeeper-3.4.2.tar.gz -C /opt/bigdata/ #输入完命令后回车#2.切换到bigdata目录下[root@node1 ~]# cd /opt/bigdata/#3.按照安装hadoop的方式,将zookeeper的安装目录的所属组修改为hadoop:hadoop#修改zookeeper安装目录的所属用户和组为hadoop:hadoop[root@node1 bigdata]# chown -R hadoop:hadoop zookeeper-3.4.2/#4.修改zookeeper安装目录的读写权限[root@node1 bigdata]# chmod -R 755 zookeeper-3.4.2/

1.4配置zooKeeper环境变量

#1.切换到hadoop用户目录下[root@node1 bigdata]# su - hadoopLast login: Thu Jul 18 16:07:39 CST 2019 on pts/0[hadoop@node1 ~]$ cd /opt/bigdata/zookeeper-3.4.2/[hadoop@node1 zookeeper-3.4.2]$ cd ..[hadoop@node1 bigdata]$ cd ~#2.修改hadoop用户下的环境变量配置文件[hadoop@node1 ~]$ vi .bash_profile# Get the aliases and functions# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsJAVA_HOME=/usr/java/jdk1.8.0_211-amd64HADOOP_HOME=/opt/bigdata/hadoop-2.7.3SPARK_HOME=/opt/spark-2.4.3-bin-hadoop2.7M2_HOME=/opt/apache-maven-3.0.5#3.新增zookeeper的环境变量ZOOKEEPER_HOMEZOOKEEPER_HOME=/opt/bigdata/zookeeper-3.4.2/PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$M2_HOME/bin#4.将zookeeper的环境变量ZOOKEEPER_HOME加入到path中PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin:$ZOOKEEPER_HOME/binexport JAVA_HOMEexport HADOOP_HOMEexport M2_HOMEexport SPARK_HOMEexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop#5.导出zookeeper环境变量export ZOOKEEPER_HOME#6.保存修改内容:wq! #记得回车#7.使得环境变量生效[hadoop@node1 ~]$ source .bash_profile#8.输入zk然后按键盘左侧的Tab键[hadoop@node1 ~]$ zk#有如下的提示,表名zookeeper的配置完成zkCleanup.sh   zkCli.cmd    zkCli.sh    zkEnv.cmd     zkEnv.sh     zkServer.cmd     zkServer.sh[hadoop@node1 ~]$ zk

1.5 修改zookeeper集群配置文件

   将目录切换到zookeeper的安装目录下的conf目录下复制zoo_sample.cfg文件为zoo.cfg

[hadoop@node1 ~]$ cd /opt/bigdata/zookeeper-3.4.2/conf/[hadoop@node1 conf]$ lltotal 12-rwxr-xr-x 1 hadoop hadoop 535 Dec 22 2011 configuration.xsl-rwxr-xr-x 1 hadoop hadoop 2161 Dec 22 2011 log4j.properties-rwxr-xr-x 1 hadoop hadoop 808 Dec 22 2011 zoo_sample.cfg#1.复制zoo_sample.cfg模板配置文件为正式的配置文件zoo.cfg[hadoop@node1 conf]$ cp zoo_sample.cfg zoo.cfg[hadoop@node1 conf]$ lltotal 16-rwxr-xr-x 1 hadoop hadoop 535 Dec 22 2011 configuration.xsl-rwxr-xr-x 1 hadoop hadoop 2161 Dec 22 2011 log4j.properties-rwxr-xr-x 1 hadoop hadoop 808 Jul 19 11:20 zoo.cfg-rwxr-xr-x 1 hadoop hadoop 808 Dec 22 2011 zoo_sample.cfg[hadoop@node1 conf]$

   修改dataDir的值为 dataDir=/var/lib/zookeeper,在文件的末尾添加如下配置:

server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888

修改完配置文件记得保存

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just# example sakes.dataDir=/var/lib/zookeeper# the port at which the clients will connectclientPort=2181# the maximum number of client connections.# increase this if you need to handle more clients#maxClientCnxns=60## Be sure to read the maintenance section of the# administrator guide before turning on autopurge.开课吧kaikeba.com精选领域名师,只为人才赋能 61.6 创建myid文件在节点node1,node2,node3对应的/var/lib/zookeeper目录下(dataDir配置的目录/var/lib/zookeeper)创建myid文件,几个文件内容依次为1,2,3如下图我们切换到root用户,在/var/lib目录下创建zookeeper目录,因为hadoop用户对/var/lib目录没有写权限,所以我们在创建zookeeper目录时需要切换到root用户(拥有最大权限)## http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance## The number of snapshots to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to "0" to disable auto purge feature#autopurge.purgeInterval=1server.1=node1:2888:3888server.2=node2:2888:3888server.3=node3:2888:3888#修改完配置文件记得保存

1.6 创建myid文件

在节点node1,node2,node3对应的/var/lib/zookeeper目录下(dataDir配置的录/var/lib/zookeeper)创建myid文件,几个文件内容依次为1,2,3。切换到root用户,在/var/lib目录下创建zookeeper目录,因为hadoop用户对/var/lib目录没有写权限,所以我们在创建zookeeper目录时需要切换到

root用户(拥有最大权限)[hadoop@node1 conf]$ vi zoo.cfg#1.切换到root用户[hadoop@node1 conf]$ su - rootPassword:Last login: Fri Jul 19 10:53:59 CST 2019 from 192.168.200.1 on pts/0#2.创建zookeeper目录[root@node1 ~]# mkdir -p /var/lib/zookeeper#3.进入到/var/lib/zookeeper/目录[root@node1 ~]# cd /var/lib/zookeeper/You have new mail in /var/spool/mail/root#4.创建myid配置文件[root@node1 zookeeper]# touch myid#5.编辑myid文件,输入1,我们目前编辑的是node1的节点的myid文件,node2的myid内容为2,node3的myid内容为3[root@node1 zookeeper]# vi myidYou have new mail in /var/spool/mail/root#6.查看一下myid文件内容为1[root@node1 zookeeper]# cat myid1You have new mail in /var/spool/mail/root

1.7 修改myid目录权限

#1.配置完成后记得修改zookeeper目录的所属组和读写权限[root@node1 zookeeper]# cd ..You have new mail in /var/spool/mail/root#2.修改zookeeper目录所属组[root@node1 lib]# chown -R hadoop:hadoop zookeeper/#3.修改zookeeper目录的读写权限为755[root@node1 lib]# chmod -R 755 zookeeper/[root@node1 lib]#

2、复制zookeeper

#1.复制/var/lib目录下的zookeeper目录到node2和node3的/var/lib目录下[root@node1 lib]# scp -r zookeeper node2:$PWD[root@node1 lib]# scp -r zookeeper node3:$PWD#2.复制zookeeper安装目录到node2和node3的安装目录下/opt/bigdata目录下[root@node1 lib]# scp -r /opt/bigdata/zookeeper-3.4.2/ node2:/opt/bigdata/[root@node1 lib]# scp -r /opt/bigdata/zookeeper-3.4.2/ node3:/opt/bigdata/

3、修改node2和node3节点zookeeper的相关目录权限

修改node2节点zookeeper 相关目录权限

#1.修改zookeeper的myid配置目录所属组和读写权限[root@node2 lib]# cd ~[root@node2 ~]# chown -R hadoop:hadoop /var/lib/zookeeper[root@node2 ~]# chmod -R 755 /var/lib/zookeeper#2.修改zookeeper安装目录所属组和读写权限[root@node2 ~]# chown -R hadoop:hadoop /opt/bigdata/zookeeper-3.4.2/You have new mail in /var/spool/mail/root[root@node2 ~]# chmod -R 755 /opt/bigdata/zookeeper-3.4.2/[root@node2 ~]#

修改node3节点zookeeper 相关目录权限

#1.修改zookeeper的myid配置目录所属组和读写权限[root@node3 bigdata]# cd ~You have new mail in /var/spool/mail/root[root@node3 ~]# chown -R hadoop:hadoop /var/lib/zookeeper[root@node3 ~]# chmod -R 755 /var/lib/zookeeper#2.修改zookeeper安装目录所属组和读写权限[root@node3 ~]# chown -R hadoop:hadoop /opt/bigdata/zookeeper-3.4.2/You have new mail in /var/spool/mail/root[root@node3 ~]# chmod -R 755 /opt/bigdata/zookeeper-3.4.2/[root@node3 ~]#

4、修改node2和node3的myid文件内容

修改node2节点zookeeper 的myid内容为2:

[root@node2 ~]# vi /var/lib/zookeeper/myidYou have new mail in /var/spool/mail/root[root@node2 ~]# cat /var/lib/zookeeper/myid2[root@node2 ~]#

修改node3节点zookeeper 的myid内容为3

[root@node3 ~]# vi /var/lib/zookeeper/myidYou have new mail in /var/spool/mail/root[root@node3 ~]# cat /var/lib/zookeeper/myid3[root@node3 ~]#

5、配置node2和node3的zookeeper环境变量

我们在node1节点上直接将hadoop用户的环境变量配置文件远程复制到node2和node3的hadoop用户家目录下

#1.如果当前登录用户是root用户,需要切换到hadoop用户下,如果当前用户是hadoop用户,请将目录切换到hadoop用户的家目录下,在进行环境变量文件的远程复制.[root@node1 lib]# su - hadoopLast login: Fri Jul 19 11:08:44 CST 2019 on pts/0[hadoop@node1 ~]$ scp .bash_profile node2:$PWD.bash_profile 100% 68164.8KB/s 00:00[hadoop@node1 ~]$ scp .bash_profile node3:$PWD.bash_profile 100% 681156.8KB/s 00:00[hadoop@node1 ~]$

5.1 使得node2和node3的环境变量生效

使得node2的hadoop的环境变量生效

#注意:切换到hadoop用户下#1.使得环境变量生效[hadoop@node2 ~]$ source .bash_profile#2.输入zk然后按键盘左侧的Tab键[hadoop@node2 ~]$ zk#3.有如下命令和shell脚本的提示,说明zookeeper的环境变量配置成功.zkCleanup.sh  zkCli.sh   zkEnv.sh   zkServer.shzkCli.cmd    zkEnv.cmd    zkServer.cmd[hadoop@node2 ~]$ zk

使得node3的hadoop的环境变量生效

#注意:切换到hadoop用户下[root@node3 bigdata]# su - hadoopLast login: Thu Jul 18 15:37:50 CST 2019 on :0#1.使得环境变量生效[hadoop@node3 ~]$ source .bash_profile#2.输入zk然后按键盘左侧的Tab键[hadoop@node3 ~]$ zk#3.有如下命令和shell脚本的提示,说明zookeeper的环境变量配置成功.zkCleanup.sh   zkCli.sh   zkEnv.sh    zkServer.shzkCli.cmd zkEnv.cmd zkServer.cmd[hadoop@node3 ~]$ zk

6.启动zookeeper集群

6.1 启动zookeeper集群

启动zookeeper集群需要手动分别依次在三台机器上启动,启动前需要在三台机器上都将用户切换为hadoop用户.
node1上启动zookeeper

[hadoop@node1 ~]$ zkServer.sh startJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[hadoop@node1 ~]$

node2上启动zookeeper

[hadoop@node2 ~]$ zkServer.sh startJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[hadoop@node2 ~]$

node3上启动zookeeper

[hadoop@node3 ~]$ zkServer.sh startJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[hadoop@node3 ~]$

6.2 查看zookeeper集群状态

使用zkServer.sh status命令在三个节点分别执行查看状态
在node1上查看

[hadoop@node1 bin]$ zkServer.sh statusJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgMode: follower[hadoop@node1 bin]$

在node2上查看

[hadoop@node2 bin]$ zkServer.sh statusJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgMode: follower[hadoop@node2 bin]$

在node3上查看

[hadoop@node3 bin]$ zkServer.sh statusJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgMode: leader[hadoop@node3 bin]$

至此我们zookeeper集群安装完成.

6.3 zooKeeper安装遇到问题

由于按照hadoop2.7.3版本官方文档中使用zookeeper-3.4.2版本,但是zookeeper-3.4.2版本比较低,我们在启动zookeeper后,可以使用jps命令或者ps -ef|grep zookeeper命令查看zookeeper主进程的状态,但是我们发现是正常的,如果我们使用zkServer.sh status命令查看zookeeper的状态却显示是异常的,不管启动多少次都会得到同样的结果。

[hadoop@node1 bin]$ zkServer.sh statusJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgError contacting service. It is probably not running.[hadoop@node2 bin]$ zkServer.sh statusJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgError contacting service. It is probably not running.[hadoop@node3 bin]$ zkServer.sh statusJMX enabled by defaultUsing config: /opt/bigdata/zookeeper-3.4.2/bin/../conf/zoo.cfgError contacting service. It is probably not running.

分析主要有以下两个原因造成:
1.centos7上没有安装nc工具.
2.zookeeper启动脚本中的nc命令在不同的linux版本中使用了无效的参数导致获取状态异常或者获取的状态为
空状态导致的。解决方法:
1.使用yum 在三个节点上分别安装nc工具

yum install nc -y

2.修改zookeeper安装目录下的bin目录下的zkServer.sh脚本文件内容

e617395da2e6f1a078cafc9f4980874c.png


修改完成后我们在使用zkServer.sh status就能看到zookeeper的状态了

这篇关于Hadoop 中zoo_Hadoop学习之路(9)Zookeeper安装教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201577

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数