zookeeper端口(zookeeper端口号修改)
本篇文章给大家谈谈zookeeper端口,以及zookeeper端口号修改对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、消息队列之zookeeper
- 2、Hadoop, HBase, Hive, ZooKeeper默认端口说明
- 3、zookeeper-8080端口关闭
- 4、zookeeper集群搭建方式
- 5、怎么更改zookeeper的端口号
- 6、12步教你安装JDK和zookeeper
消息队列之zookeeper
分布式协调技术----zookeeper
分布式协调技术是用来解决分布式环境中多个进程间的同步控制,使他们能有序的访问某种临界资源,防止造成“脏数据”的后果,分布式并不是一个简单的调度算法就能轻易解决的,这是一种误解。如果进程全部是在一台机器上确实郑敏亮这么久好办,但是出于分布式的环境下该怎么解决呢?
给大家分析一下这个图,图中的三台机器,每个程序个跑一个应用程序,通过网络图将此连接起来,构成一个系统为用户提供服务,对用户来说这是个透明的架构的系统,我们可以把这个系统称之为分布式系统。
在分析一下这个分布式系统是如何对进程进行调度,假设在server1上挂载了一个资源,三个分布式的进程都要来竞争这个资源,但是又不希望他们同时访问,此时就需要一个“协调器”,让他们有序获取资源,“协调器”则被称为锁。比如“进程-1”说明程序在使用该资源时会先获取锁,“进程1”获取锁就会对资源独占,使用完将锁释放,让其他进程来获得锁。这个锁则是分布式拿橘锁,也是分布式协调技术。
分布式做的比较好的就是Google的Chubby和Apache的Zookeeper,Chubby是非开源的,后来雅虎模仿Chubby开发出了Zookeeper,也实现了类似的分布式功能,并把zookeeper作为开源程序捐给了Apache。Zookeeper用来构建我们的系统,不仅Bug少而且节约成本。
Zookeeper的优点是一种高可用、高性能且一直的开源协调工具。并且提供了“分布式锁服务”,功能强大,可以配置维护、组服务、分布式通知及分布式消息队列等。在性能方面它采用了Zab协议,数据结构用的Znode,在数据结构上定义了原语,通知机制用的Watcher机制,有严格的序列访问控制,不会因为一个节点的错误而崩溃。
(1)给Zookeeper起了俩主节点,主节点-A master-00001,主节点-B master-00002,启动后都像zookeeper注册一个节点,主节点-A变成了主节点,主节点-B变成了备用节点,对俩Master进程进行调度。
(2)主节点-A挂了,它注册的节点被自动删除,感知节点发起选举,经过选举后主节点-B变成了主节点,替代了主节点-A。
(3)Master恢复,它会在向zookeeper注册一个节点master-00003,再次选举后主节点-B依旧是主节点,喊宽主节点A变成了备用节点。
安装配置步骤:
试验机器:192.168.10.10 hostname:zk1
192.168.10.11 hostname:zk2
192.168.10.12 hostname:zk3
1.安装jdk
[^_^] ~# tar xf jdk-8u131-linux-x64.tar.gz -C /usr/local/
[^_^] ~# mkdir /usr/local/java
[^_^] java# mv jdk1.8.0_171 /usr/local/java
[^_^] ~# cat /etc/profile.d/java.sh
JAVA_HOME=/usr/local/java/jdk1.8.0_131
JRE_HOME=/usr/local/java/jdk1.8.0_131/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASS_PATH
[^_^] ~# source /etc/profile.d/java.sh
验证:java -version
2.安装zookeeper
[^_^] ~# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.36.10 zk1
192.168.36.11 zk2
192.168.36.12 zk3
[^_^] ~# cat /etc/profile.d/zk.sh
#Set Zookeeper Environment
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.11
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
[^_^] ~# source /etc/profile.d/zk.sh
[^_^] ~#cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
[^_^] ~#mkdir -p /usr/local/zookeeper/data/log
[^_^] ~#echo "1" /usr/local/zookeeper/data/myid #三台zookeeper的myid是不一样的
[^_^] ~# egrep -v "^$|#" /usr/local/zookeeper-3.4.11/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
dataLogDir=/tmp/zookeeper/log
clientPort=2181 #服务端口
server.1=zk1:2888:3888 #2888是follower连leader的端口,3888是选leader端口
server.2=zk2:2888:3888
server.3=zk3:2888:3888
[^_^] ~# cd /usr/local/zookeeper-3.4.11/bin/
[^_^] bin# ./zkServer.sh start
[^_^] bin#jps #查看是否启动成功
1155 Jps
1093 QuorumPeerMain #QuorumPeerMain是zookeeper进程
[^_^] bin# ./zkServer.sh status #查节点状态
[^_^] bin#zkCli.sh -server zk1:2181,zk2:2181,zk3.:2181 #可以创建zk集群
[img]Hadoop, HBase, Hive, ZooKeeper默认端口说明
组件 |Daemon |端口 |配置 |说明
--|
HDFS |DataNode |50010 |dfs.datanode.address |datanode服务端口,用于数据传输
| |50075 |dfs.datanode.http.address |http服务的端口
| |50475 |dfs.datanode.https.address |https服务的端口
| |50020 |dfs.datanode.ipc.address |ipc服毁州务的端口
|NameNode |50070 |dfs.namenode.http-address |http服务的端口
| |50470 |dfs.namenode.https-address |https服务的端口
| |8020 |fs.defaultFS |接收Client连接的RPC端口,用于获取文件系统metadata信息。
|journalnode |8485 |dfs.journalnode.rpc-address |RPC服务
| |8480 |dfs.journalnode.http-address |HTTP服冲返务
|ZKFC |8019 |dfs.ha.zkfc.port |ZooKeeper FailoverController,用于NN HA
YARN |ResourceManager |8032 |yarn.resourcemanager.address |RM的applications manager(ASM)端口
| |8030 |yarn.resourcemanager.scheduler.address |scheduler组件的IPC端口
| |8031 |yarn.resourcemanager.resource-tracker.address |IPC
| |8033 |yarn.resourcemanager.admin.address |IPC
| |8088 |yarn.resourcemanager.webapp.address |http服务端口
|NodeManager |8040 |yarn.nodemanager.localizer.address |localizer IPC
| |8042 |yarn.nodemanager.webapp.address |http服务端口
| |8041 |yarn.nodemanager.address |NM中container manager的端口
|JobHistory Server |10020 |mapreduce.jobhistory.address |IPC
| |19888 |mapreduce.jobhistory.webapp.address |http服务端口
HBase |Master |60000 |hbase.master.port |IPC
| |60010 |hbase.master.info.port |http服务端口
|RegionServer |60020 |hbase.regionserver.port |IPC
| |60030 |hbase.regionserver.info.port |http服务端口
|HQuorumPeer |2181 |hbase.zookeeper.property.clientPort |HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
| |2888 |hbase.zookeeper.peerport |HBase-managed ZK mode,使用独立的ZooKeeper集群则散余饥不会启用该端口。
| |3888 |hbase.zookeeper.leaderport |HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
Hive |Metastore |9083 |/etc/default/hive-metastore中export PORT=port来更新默认端口 |
|HiveServer |10000 |/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=port来更新默认端口 |
ZooKeeper |Server |2181 |/etc/zookeeper/conf/zoo.cfg中clientPort=port |对客户端提供服务的端口
| |2888 |/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 |follower用来连接到leader,只在leader上监听该端口。
| |3888 |/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 |用于leader选举的。只在electionAlg是1,2或3(默认)时需要。
所有端口协议均基于TCP。
而特定的Daemon又有特定的URL路径特定相应信息。
更多说明
zookeeper-8080端口关闭
! zookeeper的内嵌管理控制台是由jetty启动的,默认为http端口为8080;存在一定的信息泄露及安全隐帆渗患,如无必要建议禁用。
在bin/zkServer.sh文件中,nohup下加一条参数关闭服务 "-Dzookeeper.admin.enableServer=false" 配雹 重新培轿帆启动zk 8080端口就没了
zookeeper集群搭建方式
本次搭建版本是:zookeeper-3.4.14.tar.gz(以下在每台服务器都需要部署一遍)
1,将zookeeper-3.4.14.tar.gz 拷贝到服务器(本次集群是3台)指定文件夹位置。
解压 tar -zxvf zookeeper-3.4.14.tar.gz 让后修改名称 mv zookeeper-3.4.14 zookeeper
2,进入到zookeeper目录。
3,然后在/etc/profile 增加zookeeper环境变量
4,进入到conf目录下面。修改zoo_sample.cfg 文件名
执行命令:mv zoo_sample.cfg zoo.cfg
5,编辑zoo.cfg文件
执行命令:vim zoo.cfg
1》修改dataDir 为zookeeper下面的data(该文件需要自己创建)
2》clientPort 默认是2181 (此处有端口占用,所有我这边改成2182)
3》在文件最后面加入集群(岩唯此处三台集群为什么这样加,暂时枝哗没有研究)
server.0=ip1:2888:3888
server.1=ip2:2888:3888
server.2=ip3:2888:3888
6,在5中dataDir的目录下面新建myid文件,文件内容是当前zk的节点
7,启动每台服务器的zk服务节点,在bin目录下执行(添加环境变量的话可以在任意位置执行)
执行命令:./zkServer.sh start(./zkServer.sh stop是停止)
启动成功后 查看是否启动起来:
执行命令:ps aux | grep 'zookeeper' 或者 jps
8,查看三台机器主从身份(leader 主 follower从)
至此zk集群搭建成功。
kafka集群搭建方式:粗搭培
怎么更改zookeeper的端口号
zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,也会占碰局用8080 端口。
通过查看zookeeper的官方文档,发现有3种解决途径:
(1).删除jetty。
(2)修改端口。
修改方法的方法有两种,一种是在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号.一种是在zoo.cfg中增加admin.serverPort=没有被占用的端口号
(3)停用这个服务,在启动脚本中增加并袭"-Dzookeeper.admin.enableServer=false"
推荐第二种。以上答案来自林氏绝吵兄120技术中心。
12步教你安装JDK和zookeeper
安装zookeeper首先要安装JDK,Linux有自带的OPENJDK,要卸载然后重新安装。
1. java -version 查看JDK版本
2. rpm -qa | grep java 查找有哪些java相关的包
3. rpm -e --nodeps tzdata-java-2015e-1.e16.noarch 卸载,--nodeps 就是no depends的意思,忽略相关依赖强制卸载
4. mkdir /export/server 创建zookeeper和 JDK安装的目录
5.
mv jdk1.8.0_65.tar.gz /export/server 把jdk安装包移动到/export/server文件夹
cd /export/server 进入该文件夹, ls查看可以看到安装包
tar -zxvf jdk1.8.0_65.tar.gz 把JDK上传到linux系统中,然后执行tar解压操作
6. vi /etc/profile 编辑/etc目录下的profile文件,也就是配置环境变量的配置文件。
7. 打开文件后,按大写的G直接跳到文件的最后一行,然后按 i 进入编辑文件状闹弯态,在末尾添加这三行配置信息
export JAVA_HOME=/export/server/jdk.1.8.0_65 配置一个JAVA_HOME的变量,值是jdk安装的目录,这个JAVA_HOME在下面两行会用到
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
编辑完毕,按ESC退出文件编辑状态,然后输入 指令 :wq (冒号+wq) 回车退出并保存该文件。
8. source /etc/profile 刷新profile文件到系统内存。
9. 在任意目录下 输入 java -v 查看JDK版本
以上JDK安装完毕,接下来安装zookeeper。
10. 和上传JDK一样,把zookeeper-3.4.10.tar.gz文件放到/export/server目录下,并进行解压。(忘记了就去看第5步)
tar -zxvf zookeeper-3.4.10.tar.gz
解压之后要进行相关的配置(软件安装无非就是解压+配置)
这里主要有两个重要要改的地方:1.zookeeper服务启动后数据文件保存在哪里? 2. zookeeper通常是会集群化,也就是启动好几台zookeeper同时提供服务的,因此在每台zookeeper服务的配置文件里面都要配置上其它zookeeper服务的ip和端口。 第二点不懂的话直接看配置文件就好了。
11. 首先实现第一点,创建zookeeper数据保存目录
mkdir /export/data/zkdata 创建zkdata文件夹,用于存在zookeeper数据.(这条如果报错了,说明你应该先执行mkdir /export/data/创建data目录)
12. 接下来进行配置
cd zookeeper/conf/ 配置文件放在该目录下,ll可以查看有哪些文件,如图
其中有个zoo_sample.cfg 文件,这个文件是自带的一个模板,就是告诉你配置文件要照着这个样子去抄。。。
然后有个重要的东西就是:zookeeper启动的时候,默认是会读取该文件路径下配置文件zoo.cfg的,但是这里默认是i没有这个文件的。所以我们直接复制一个zoo_sample.cfg 重命名为zoo.cfg就OK了。但液春闷是要进去做自己的相关配置改动。 复制文件命令是:
cp zoo_sample.cfg zoo.cfg
13. vi zoo.cfg 开始编辑配置文件了,打开可以看见一堆你可能看不懂的东西,但是不重要因为大多数都是注释掉的东西。新手就别管那么多了。
这里我们主要要修改的是两个东西,哪两个? 前面黑体字有说过了:数森歼据存放目录,集群中各个zookeeper服务的ip port。
同样的,按 i 进入编辑模式,找到dataDir=/tmp。。。这一行。 这一行就是设置数据存放的目录。 把它改成我们自己新建的目录:
dataDir=/export/data/zkdata/ 这样第一点就配置完了。
实际上到这里一台zookeeper服务已经安装完毕了,但是说过了,zookeeper是集群,所以得多搞几个服务器。我这里用了三台虚拟机,复制三台。ip分别是192.168.209.128 / 192.168.209.129 / 192.168.209.130,这三台同样的安装JDK 和zookeeper。 重复前面的操作就行,也可以直接复制虚拟机。
同样的在zoo.cfg里面,大写的G到最后一行。在末尾加上这三行配置:
server.1=192.168.209.128:2888:3888 #三台服务对应server 1 2 3 ,对应三个ip。 后面两个端口分别是 心跳端口2888 和选举端口。
server.2=192.168.209.129:2888:3888
server.3=192.168.209.130:2888:3888
然后保存退出就OK了。
13. 最后一步: 就是给三台zookeeper服务设置id。在哪里设置呢?
就是在zookeeper保存文件的目录下创建一个/export/data/zkdata/myid 文件。 文件名不能乱写,就得是是这个,选举的时候很关键的。
我们有三台zookeeper server,每台的myid文件数字 不一样,你得进入三台服务器分别编辑这个文件。
第一台服务器,vi myid 编辑该文件,写入一个数字 1
第二台服务器,vi myid 编辑该文件,写入一个数字 2
第三台服务器,vi myid 编辑该文件,写入一个数字 3
14. 最后你启动一下zookeeper试试安装成功了没 。
/export/server/zookeeper/bin/zkServer.sh start 启动zookeeper的指令。可以看到日志打印出来的是默认Using zoo.cfg这个配置文件。三台服务你都要启动,zookeeper会根据你配置的三个ip port去发送心跳,自动建立集群。 并且根据myid去选举哪个server是leader,哪个是follower。
【这里呢就安装完毕了! 动手操作也就14步是不是很简单。但是搞清楚原理才是最主要的。】
关于zookeeper端口和zookeeper端口号修改的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。