查看“Zookeeper install”的源代码
←
Zookeeper install
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
=pre= /home/evan/dkm/bigdata http://192.168.1.204:3000/root/yak/src/master/web/piping/doc zookeeper 介绍 https://zh.wikipedia.org/wiki/Apache_ZooKeeper download http://mirrors.hust.edu.cn/apache/zookeeper/ https://www.zhihu.com/question/35139415 Zookeeper在哪些系统中使用,又是怎么用的 <pre> #最老土的jdk ins tar xvf /soft/jdk-7u79-linux-x64.tar.gz -C /soft vim /etc/profile #java export JAVA_HOME=/soft/jdk1.7.0_79/ export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:/$JAVA_HOME/bin:$HADOOP_HOME/bin source /etc/profile </pre> <pre> #前端机器 10.135.68.219 dkm-yak-front-01 #kafka 10.135.68.219 dkm-yak-kafka-01 #zk 10.135.68.219 dkm-yak-zk-01 前端机器: java 1.8 jdk-8u121-linux-x64.rpm 加入仓库吧 apache-flume-1.7.0-bin.tar.gz http://mirrors.hust.edu.cn/apache/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz log机器: java1.8 apache-flume-1.7.0-bin.tar.gz kafka_2.12-0.10.2.0.tgz http://mirror.bit.edu.cn/apache/kafka/0.10.2.0/kafka_2.10-0.10.2.0.tgz zookeeper-3.4.9.tar.gz http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz git clone https://github.com/liutpmars/node-zk-browser.git wget https://github.com/edenhill/librdkafka/archive/v0.9.4.tar.gz -O librdkafka-0.9.4.tar.gz wget https://github.com/arnaud-lb/php-rdkafka/archive/3.0.1.tar.gz -O php-rdkafka-3.0.1.tar.gz</pre> =1. intall jdk and ZooKeeper server= 角色:数据机搭建环境: == install ZooKeeper == 分布式服务框架 Zookeeper -- 管理分布式环境中的数据 ZooKeeper(动物园管理员),顾名思义,是用来管理Hadoop(大象)、Hive(蜜蜂)、Pig(小猪)的管理员,同时Apache Hbase、Apache Solr、LinkedIn Sensei等众多项目中都采用了ZooKeeper。 ZooKeeper曾是Hadoop的正式子项目,后发展成为Apache顶级项目,与Hadoop密切相关但却没有任何依赖。它是一个针对大型应用提供高可用的数据管理、应用程序协调服务的分布式服务框架,基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,提供的功能包括:配置维护、统一命名服务、状态同步服务、集群管理等。 Apache ZooKeeper是Apache软件基金会的一个软件项目,他为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。[需要解释] ZooKeeper曾经是Hadoop的一个子项目,但现在是一个独立的顶级项目。 ZooKeeper的架构通过冗余服务实现高可用性(英语:High-availability cluster)。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥有一个共享的配置服务。更新是全序的 ===1)zookeeper单台机器集群:=== http://zookeeper.apache.org/doc/r3.4.9/zookeeperAdmin.html#sc_zkMulitServerSetup ====1. ins ==== <pre> tar xvf zookeeper-3.4.9.tar.gz && mv zookeeper-3.4.9 /data/apps/zookeeper/ cd /data/apps/zookeeper/src/c ./configure --prefix=/data/apps/zookeeper/ make -j3 && make install</pre> ====2.zookeeper的环境变量的配置:==== <pre> #为了今后操作方便,我们需要对Zookeeper的环境变量进行配置,方法如下: #在/etc/profile文件中加入如下的内容: #set zookeeper environment echo 'export ZOOKEEPER_HOME=/data/apps/zookeeper/ export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf' >>/etc/profile source /etc/profile</pre> ==== config==== <pre> #here20180810 mkdir -p /data/apps/zookeeper/data; mkdir -p /data/logs/zookeeper/ cd /data/apps/zookeeper/conf cp zoo_sample.cfg zoo.cfg # echo '#general config tickTime=2000 dataDir=/data/apps/zookeeper/data dataLogDir=/data/logs/zookeeper/ clientPort=2181 maxClientCnxns=60 # minSessionTimeout=1000 # maxSessionTimeout=10000 # autopurge.snapRetainCount=3 # autopurge.purgeInterval=1 #集群模式下需要配置 initLimit=5 syncLimit=2 #地址:与leader通讯port:选举port server.1=host1:2888:3888 ' >zoo.cfg </pre> <pre> ###下面这个是手工不交互改变 #sed -i 's!/dataDir=/tmp/zookeeper!dataDir=data/apps/zookeeper/data!' /data/apps/zookeeper/conf/zoo.cfg mkdir -p /datat/logs/zookeeper/ #sed -i '12 a dataLogDir=/data/logs/zookeeper/' /data/apps/zookeeper/conf/zoo.cfg #2888,3888 are election port #sed -i '29 a server.1=zookeeper:2888:38888' /data/apps/zookeeper/conf/zoo.cfg</pre> ==== run ==== 启动: 其实选择第一个就行了 默认会找zoo.cfg才对 /data/apps/zookeeper/bin/zkServer.sh start /data/apps/zookeeper/bin/zkServer.sh start /data/apps/zookeeper/conf/zoo.cfg & 测试: /data/apps/zookeeper/bin/zkCli.sh -server host:port #/data/apps/zookeeper/bin/zkCli.sh -server dkm-yak-zk-01:2181 ls /zookeeper jps ===2)集群模式=== zk集群一般都是奇数台。 3 5 7 这样的。 为了获得可靠的 ZooKeeper 服务,用户应该在一个集群上部署 ZooKeeper 。只要集群上大多数的ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可用的。另外,最好使用奇数台机器。 如果 zookeeper拥有 5 台机器,那么它就能处理 2 台机器的故障了。 之后的操作和单机模式的安装类似,我们同样需要对 JAVA 环境进行设置,下载最新的 ZooKeeper 稳定版本并配置相应的环境变量。不同之处在于每台机器上 conf/zoo.cfg 配置文件的参数设置,参考下面的配置: ====host修改hosts文件(三台主机)==== ===== 手工===== <pre> cat zoo.cfg tickTime=2000 clientPort=2181 initLimit=5 syncLimit=2 dataDir=/data/apps/zookeeper/data dataLogDir=/data/logs/zookeeper/ server.1=192.168.0.201:2888:3888 server.2=192.168.0.202:2888:3888 server.3=192.168.0.203:2888:3888 #下面这种 上次居然问题,不知是不是格式问题 #server.1=zoo1:2888:3888 #server.2=zoo2:2888:3888 #server.3=zoo3:2888:3888</pre> =====非交互方式===== <pre> sed -i 's!/dataDir=/tmp/zookeeper!dataDir=data/apps/zookeeper/data!' /data/apps/zookeeper/conf/zoo.cfg mkdir -p /datat/logs/zookeeper/ #无效 #sed -i '12 a dataLogDir=/data/logs/zookeeper/' /data/apps/zookeeper/conf/zoo.cfg sed -i 's!dataDir=/tmp/zookeeper!dataDir=/data/apps/zookeeper/data!' /data/apps/zookeeper/conf/zoo.cfg #2888,3888 are election port #sed -i '29 a server.1=zookeeper:2888:38888' /data/apps/zookeeper/conf/zoo.cfg sed -i 's!initLimit=10!initLimit=5!' /data/apps/zookeeper/conf/zoo.cfg sed -i 's!syncLimit=5!syncLimit=2!' /data/apps/zookeeper/conf/zoo.cfg echo 'server.1=192.168.0.201:2888:3888 server.2=192.168.0.202:2888:3888 server.3=192.168.0.203:2888:3888' >> zoo.cfg<pre> initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过5个心跳的时间(也就是 tickTime)长度后 Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒 syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒 “ server.id=host:port:port. ”指示了不同的 ZooKeeper 服务器的自身标识,作为集群的一部分的机器应该知道 ensemble(全体) 中的其它机器。用户可以从“ server.id=host:port:port. ”中读取相关的信息。 在服务器的 data( dataDir 参数所指定的目录)目录下创建一个文件名为 myid 的文件,这个文件中仅含有一行的内容,指定的是自身的 id 值。比如,服务器“ 1 ”应该在 myid 文件中写入“ 1 ”。这个 id 值必须是 ensemble 中唯一的,且大小在 1 到 255 之间。这一行配置中,第一个端口( port )是从( follower )机器连接到主( leader )机器的端口,第二个端口是用来进行 leader 选举的端口。在这个例子中,每台机器使用三个端口,分别是: clientPort ,2181 ; port , 2888 ; port , 3888 。 我们在拥有三台机器的 Hadoop 集群上测试使用 ZooKeeper 服务,下面代码清单 B 是我们根据自身情况所设置的 ZooKeeper 配置文档: 代码清单 B : zoo.cfg # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. dataDir=/root/hadoop-0.20.2/zookeeper-3.3.1/snapshot/d1 # the port at which the clients will connect clientPort=2181 server.1=IP1:2887:3887 server.2=IP2:2888:3888 server.3=IP3:2889:3889 清单中的 IP 分别对应的配置分布式 ZooKeeper 的 IP 地址。当然,也可以通过机器名访问 zookeeper ,但是需要在ubuntu 的 hosts 环境中进行设置。读者可以查阅 Ubuntu 以及 Linux 的相关资料进行设置。 #2018年新添加 myid配置 三台电脑上分别在ZooKeeper的data目录(/data/apps/zookeeper/data/)创建myid文件, 由前面添加的配置文件 内容可知(server.1=zoo1:2888:3888),内容分别为1、2、3 echo 1 >/data/apps/zookeeper/data/myid </pre> ==启动== <pre>启动: 其实选择第一个就行了 默认会找zoo.cfg才对 /data/apps/zookeeper/bin/zkServer.sh start /data/apps/zookeeper/bin/zkServer.sh start /data/apps/zookeeper/conf/zoo.cfg & jps 其中,QuorumPeerMain是zookeeper进程,启动正常 查看三者状态 使用bin/zkServer.sh status查看三者状态: [root@localhost zookeeper]# /data/apps/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /data/apps/zookeeper/bin/../conf/zoo.cfg Mode: leader [root@localhost conf]# /data/apps/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /data/apps/zookeeper/bin/../conf/zoo.cfg Mode: follower [root@localhost conf]# /data/apps/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /data/apps/zookeeper/bin/../conf/zoo.cfg Mode: follower </pre> =trouble shooting= <pre> [root@localhost conf]# /data/apps/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /data/apps/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running. tail /etc/hosts 192.168.0.201 master zoo1 192.168.0.202 slave1 zoo2 192.168.0.203 slave2 zoo3 cat zoo.cfg #server.1=zoo1:2888:3888 #server.2=zoo2:2888:3888 #server.3=zoo3:2888:3888 改为 下面便好了 server.1=192.168.0.201:2888:3888 server.2=192.168.0.202:2888:3888 server.3=192.168.0.203:2888:3888 api 脚本监控一下 CPU PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3253 root 20 0 6302m 1.3g 13m S 105.0 4.0 2776:22 java [root@jiekou ~]# ps -ef |grep 3253 root 3253 1 9 Jul20 ? 1-22:16:58 /usr/java/jdk1.7.0_75/bin/java -Djava.util.logging.config.file=/home/appserver/tomcat4/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx1024m -Djava.library.path=/usr/local/tcnative/lib -Djava.endorsed.dirs=/home/appserver/tomcat4/endorsed -classpath /home/appserver/tomcat4/bin/bootstrap.jar:/home/appserver/tomcat4/bin/tomcat-juli.jar -Dcatalina.base=/home/appserver/tomcat4 -Dcatalina.home=/home/appserver/tomcat4 -Djava.io.tmpdir=/home/appserver/tomcat4/temp org.apache.catalina.startup.Bootstrap start root 28571 28467 0 13:29 pts/1 00:00:00 grep 3253</pre> ===安装zookeeper php扩展 === <pre> https://pecl.php.net/package/zookeeper https://github.com/php-zookeeper/php-zookeeper wget -c https://pecl.php.net/get/zookeeper # zookeeper-0.3.2.tgz #tar -zxvf zookeeper-0.2.2.tgz tar -xvf zookeeper cd zookeeper-0.3.2/ phpize ./configure --with-php-config=/data/apps/php/bin/php-config --with-libzookeeper-dir=/data/apps/zookeeper/ # #(ps:请正确的指定php-config的目录) make -j3 && make install /data/apps/php/lib/php/extensions/no-debug-non-zts-20131226/ #配置 然后编辑php.ini,加入pcntl配置 这里刚才用了 > 我考 小心呀 echo "extension=zookeeper.so" >> /data/apps/php/etc/php.ini #echo "extension=zookeeper.so" >> /usr/local/lib/php.ini 修改php文件,重启fast-cgi [root@server pcntl]# /data/apps/php/bin/php -m | grep zookeeper</pre> 安装web管理工具:http://www.oschina.net/p/zkdash https://wiki.linuxchina.net/index.php?title=Zkdash%E5%AE%89%E8%A3%85%E4%B8%8E%E8%BF%90%E8%A1%8C ===常见配置 === maxClientCnxns 这个操作将限制连接到 ZooKeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。此配置选项可以用来阻止某些类别的 Dos 攻击。将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制 minSessionTimeout 和 maxSessionTimeout 最小的会话超时时间以及最大的会话超时时间。其中,最小的会话超时时间默认情况下为 2 倍的 tickTme 时间,最大的会话超时时间默认情况下为 20 倍的会话超时时间。在启动时,系统会显示相应信息,见下图 2 所示,默认会话超时时间 集群配置 initLimit 此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。 syncLimit 此配置表示, leader 与 follower 之间发送消息,请求和应答时间长度。如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃。 ZooKeeper系列之四:ZooKeeper的配置 http://blog.csdn.net/shenlan211314/article/details/6185176 ==ZooKeeper系列之五:ZooKeeper的运行== 1)单机模式 用户可以通过下面的命令来启动 ZooKeeper 服务: zkServer.sh start 这个命令默认情况下执行 ZooKeeper 的 conf 文件夹下的 zoo.cfg 配置文件 2)集群模式 集群模式下需要用户在每台 ZooKeeper 机器上运行第一部分的命令,这里不再赘述。 ZooKeeper系列之五:ZooKeeper的运行 http://blog.csdn.net/shenlan211314/article/details/6185178 ==ZooKeeper系列之六:ZooKeeper四字命令== ZooKeeper系列之六:ZooKeeper四字命令 http://blog.csdn.net/shenlan211314/article/details/6187029 ==ZooKeeper系列之七:ZooKeeper命令行工具== /data/apps/zookeeper/bin/zkCli.sh -server host:port #/data/apps/zookeeper/bin/zkCli.sh -server dkm-yak-zk-01:2181 ZooKeeper系列之七:ZooKeeper命令行工具 http://blog.csdn.net/shenlan211314/article/details/6187034 ==ZooKeeper系列之八:ZooKeeper的简单操作 == ZooKeeper系列之八:ZooKeeper的简单操作 http://blog.csdn.net/shenlan211314/article/details/6187035 ==ZooKeeper系列之九:ZooKeeper API简介及编程== ZooKeeper系列之九:ZooKeeper API简介及编程 http://blog.csdn.net/shenlan211314/article/details/6187037 ==ZooKeeper系列之十:ZooKeeper的一致性保证及Leader选举== ZooKeeper系列之十:ZooKeeper的一致性保证及Leader选举 http://blog.csdn.net/shenlan211314/article/details/6187040 === 参考 === http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html 【Zookeeper全系列】Zookeeper应用介绍与安装部署等等 https://my.oschina.net/xianggao/blog/531204 good 分布式服务框架 Zookeeper -- 管理分布式环境中的数据 https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ ZooKeeper系列教程 http://blog.csdn.net/shatelang/article/details/7596007 centos下安装ZooKeeper http://www.cnblogs.com/ilovexiao/p/3946547.html http://blog.csdn.net/cruise_h/article/details/19046357 ZooKeeper介绍及典型使用场景 http://blog.csdn.net/liuxinghao/article/details/42747625 =see also= [http://www.cnblogs.com/linjiqin/p/5861599.html ZooKeeper集群搭建(good)] 实时数据处理环境搭建flume+kafka+storm:1.zookeeper 安装配置 http://www.bbsmax.com/A/A2dmYwWAde/ good ZooKeeper安装与配置 http://www.cnblogs.com/linjiqin/archive/2013/03/16/2962597.html ZooKeeper-3.3.4集群安装配置 http://blog.csdn.net/shirdrn/article/details/7183503 [https://www.cnblogs.com/felixzh/p/5869212.html Zookeeper的功能以及工作原理] [https://www.w3cschool.cn/zookeeper/ Zookeeper教程] [https://blog.csdn.net/gnail_oug/article/details/46957955 hadoop-1.2.1安装方法详解] [https://taoistwar.gitbooks.io/spark-operationand-maintenance-management/content/spark_relate_software/zookeeper_install.html ZooKeeper安装配置] [https://www.cnblogs.com/zhangjianbin/p/6285596.html Zookeeper 安装和配置] http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration [https://blog.csdn.net/lan12334321234/article/details/70049945 Zookeeper安装学习(zoo.cfg配置详解)] [https://blog.csdn.net/xiewendong93/article/details/50500471 Zookeep启动异常:Error contacting service. It is probably not running.] [http://blog.51cto.com/d109wuwei/1749154 zookeeper环境搭建中的几个坑] [https://blog.csdn.net/weiyongle1996/article/details/73733228 zookeeper异常 Error contacting service. It is probably not running.以及java.net.ConnectException: 拒绝连接] =other= <pre> evan@evanpc:~/test$ awk '{print $NF}' log |tail 0.114 0.020 0.102 0.003 0.003 0.003 0.013 0.074 0.014 0.020 打印最后一行的最后一个字段 { field = $NF } END { print field } Linux Shell 内置命令 http://scottming.com/2017/01/06/analysts_CLI_toolbox_01/</pre> [[category:ops]]
返回至
Zookeeper install
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息