zookeeper端口(zookeeper端口号修改)

本篇文章给大家谈谈zookeeper端口,以及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端口号修改的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表