安装文件上传工具:
yum install lrzsz
成功安装后有如下的提示:
Complete!
[root@server01 apps]# yum install lrzsz
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.zju.edu.cn
* extras: mirrors.sohu.com
* updates: mirrors.sohu.com
Setting up Install Process
Package lrzsz-0.12.20-27.1.el6.i686 already installed and latest version
Nothing to do
[root@server01 apps]#
如果要上传文件,则直接输入:rz
可以直接选中文件,也可以直接拖动文件
1.首先,复制2台机器,总共即为3台。具体命令为:
------------------------------------------------------------------------
克隆流程:
CentOS->右键->manager->clone->从当前克隆或者选择快照->Create a full clone->取名->完成。
克隆原理:克隆之后,所有的东西都复制,网卡也一起复制过去。那么eth0会变成eth1.
也即克隆之后的CentOS1会将eth0给停掉,进而重新分配一个网卡eth1.
为了方便使用,我们将eth1改回至eth0:
解决克隆后eth0不见的问题
--------------------------------------------------------------这事实上是day01的杂记的内容------------------
直接修改 /etc/sysconfig/network-script/ifcfg-eth0 用户修改ip
删掉UUID HWADDR
修改IPADDR

配置静态地址(也可不配)

保存vi的配置,还可以用快捷键:在一般模式下,按住SHIFT,连按两下ZZ。也可以保存退出。
然后:
rm -rf  /etc/udev/rules.d/70-persistent-net.rules
当然,也可以不删除这个文件,而是将其中的eth1的物理地址复制给eth0,然后删掉eth1的配置。

然后 reboot
-------------------------------------------------------------------------
全局窗口打开方式(即批量操作过程):查看-交互窗口
--------------------------------------------------------------------------
2.然后,为每一台服务器安装jdk(zookeeper是java程序,必须先有jdk环境)
##########安装jdk的过程:
**解压安装包
tar -zxvf jdk-7u45-linux-x64.tar.gz -C apps/
**然后修改环境变量
vi /etc/profile
在文件最后添加
export JAVA_HOME=/root/apps/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin
保存退出

**然后重新加载环境变量
source /etc/profile

**查看当前的PATH路径**
$PATH
-bash: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory
3.接着,可以通过“发送交互到所有回话”的方式(即批量方式),为每一台服务器安装zookeeper。
tar -zxvf zookeeper-3.4.5.tar.gz
删除一些无关文件:
rm -rf src/ *.xml *.txt
rm -rf docs dist-maven/
---------------------
然后,对zookeeper进行配置
cd conf
zoo_sample.cfg 是样本文件,不生效的,需要将其拷贝出来,生成zoo.cfg
cp zoo_sample.cfg zoo.cfg
对zoo.cfg进行修改
将dataDir=/tmp/zookeeper 修改为dataDir=/apps/zkdata (这个路径是自由定义的,但是不要放在tmp目录下,因为这是临时文件)
2181是端口问题,事实上还有其他的别的端口,这要在防火墙中进行配置,非常麻烦,正确的处理方法是把它关了,在正式环境中也是把它关了(一贯的做法),
因为zookeeper是内部网络进行处理的,不会向外暴露。
关闭防火墙:service iptables stop
最关键的是,写一下这台机器里有几台机器:
在zoo.cfg最后添加:(server后面的数字是自己写的,192.168.137.129是ip地址,也可以用主机名)
server.1=192.168.137.129:2888:3888
server.2=192.168.137.130:2888:3888
server.3=192.168.137.131:2888:3888
(1,2,3称为myid,需要记录到数据文件夹dataDir中)
首先创建文件夹:
mkdir /apps/zkdata
进入目录:
cd /apps/zkdata
写文件进去,文件名称就叫myid:echo 1 > myid
在其它的机器中分别写:echo 2 > myid
echo 3 > myid
---------------然后关防火墙:service iptables stop
然后批量操作,启动zookeeper:
cd /apps
-------------------------------------------------------------------------
出现的问题:
[root@server01 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /apps/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
就是通过命令jsp查询明明发现zookeeper已经在启动,可是./zkServer.sh status却显示Error contacting service. It is probably not running.
这里有这么几个原因:
1)zookeeper是集群的概念,务必保证2台或2台以上的机器正常启动,才有主从的概念(leader或者是follower)。
另外jps这个命令是"可以列出本机所有Java进程的pid",因为zookeeper是java程序,所以通过jps命令来查看。
正常启动的话会显示:
[root@server02 bin]# jps
3076 Jps
2979 QuorumPeerMain
2)如果确定已经至少是2台机器成功启动,仍然出现这种结果,则按照以下的方式可以解决。
a)关闭防火墙:service iptables stop
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
b)修改ip地址映射表 vi /etc/hosts,这里需要修改3台机器中的hosts文件。

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.129 server01
192.168.137.130 server02
192.168.137.131 server03
c)修改zookeeper的配置文件(3台服务器均要配置)
进入/zookeeper-3.4.5/conf,将zoo_sample.cfg替换为zoo.cfg
然后vi zoo.cfg,对zoo.cfg中的内容进行修改。第一个是dataDir要修改,dataDir=/apps/zkdata
另一个是在文件的末尾添加:
server.1=server01:2888:3888
server.2=server02:2888:3888
server.3=server03:2888:3888

# 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.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#dataDir=/tmp/zookeeper
dataDir=/apps/zkdata
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# 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=1
server.1=server01:2888:3888
server.2=server02:2888:3888
server.3=server03:2888:3888
d)然后根据配置文件总的数据目录dataDir在相应的路径上建立文件夹
mkdir /apps/zkdata
进入文件夹: cd zkdata
依次在三台服务器中写入3个文件myid
在server01中的zkdta中:echo 1 > myid
在server02中的zkdta中:echo 2 > myid
在server03中的zkdta中:echo 3 > myid
e)写完之后,可以启动zookeeper服务
进入bin目录:
cd /apps/zookeeper-3.4.5/bin
可以批量启动:./zkServer.sh start
查看启动后的状态: ./zkServer.sh status
这时3台机器的结果如下:
----------------------第一台机器----------------------------------------

[root@server01 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /apps/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower
----------------------第二台机器----------------------------------------
[root@server02 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /apps/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: leader
----------------------第三台机器----------------------------------------
[root@server03 bin]# ./zkServer.sh status
JMX enabled by default
Using config: /apps/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower
-------------------------------------
由此可见:有leader和follower这种主从之分了。
f)服务已经启动之后,再次切换到zkdata目录下看看文件:
[root@server03 apps]# cd zkdata
[root@server03 zkdata]# ll
total 12
-rw-r--r--. 1 root root 2 Aug 4 23:55 myid
drwxr-xr-x. 2 root root 4096 Aug 5 01:52 version-2
-rw-r--r--. 1 root root 4 Aug 5 01:52 zookeeper_server.pid
----------
这时候已经发现zkdata下面已经不是myid这一个文件了,多了2个。
很多人说./zkServer.sh status 之后会显示Error contacting service. It is probably not running.(这是最大的问题)
然后又重新去配置hosts,之类之类。总是得不到结果。原因在于zkdata下的文件已经发生了变化。这就是所谓的脏数据
所以正确的做法,把机器reboot一下。然后把zkdata下的文件全部删除:rm -rf /* 然后再echo 1 > myid 等等。
这样一定能得到结果了。另外,单独启动一台仍然得不到结果,至少要两台以上才有leader和follower的区别了。

zookeeper-3.4.5安装&3台机器安装之后 ./zkServer.sh status 之后会显示“Error contacting service. It is probably not running.”的解决办法的更多相关文章

  1. Zookeeper群起脚本启动失败及查看状态出现:Error contacting service. It is probably not running

    1.问题: 群起脚本启动后查看jps没有出现:QuorumPeerMain Zookeeper正常启动但是群起脚本查状态出现:Error contacting service. It is proba ...

  2. 安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error contacting service. It is probably not running

    安装zookeeper-3.3.2的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下: JMX enabled by defaultUsing config: ...

  3. 启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running

    转自:http://www.cnblogs.com/xiaohua92/p/5460515.html#undefined 安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error c ...

  4. zookeeper 启动失败 BindException: Address already in use 或者Error contacting service. It is probably not running

    平台:centos-6.3-i386 jdk-7u51 storm 0.9.1 python 2.6.6   hadoop 1.2.1 今天上午装storm的时候遇到这个问题,好郁闷.把网上介绍的方法 ...

  5. zookeeper 集群简单搭建,以及Error contacting service,It is probably not running问题解决

    第一步:现在http://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.9/ 下载一个gz包,然后解压.当然,zookeeper 需要在java 的环境 ...

  6. Zookeeper之Error contacting service. It is probably not running.

    安装ZooKeeper时,无论是修改zoo.cfg:还是myid,都检查了几遍都没有错误.但是开启Zookeeper服务时出现: Error contacting service. It is pro ...

  7. zookeeper启动报错:Error contacting service. It is probably not running

    Error contacting service. It is probably not running. 今天启动zookeeper集群时,正常启动,但是查看状态时发现,Error contacti ...

  8. zookeeper查看启动状态报错:Error contacting service. It is probably not running.

    问题描述 我有三台虚拟机master.slave1.slave2.每台虚拟机启动zkServer.sh时都没有报错,然后紧接着查看zkServer.sh的状态,这时候出现了错误:Error conta ...

  9. ZooKeeper 集群搭建 Error contacting service. It is probably not running.

    搭建环境:Centos 7 虚拟机 3台 按照此教程搭建:https://www.ilanni.com/?p=11393 之后出现错误:Error contacting service. It is ...

随机推荐

  1. PHP完成一个日历

    今天我们就用php中的数组合date 做一个日历. 先让我们回顾一下PHP里面的date . 1.时间戳:表示从计算机元年/UNIX纪年(0时区 1970/1/1 00:00:00)到当前事件的秒数. ...

  2. PHP中递归最详解释.

    说到递归函数想必会有很多同学感到晕晕的,很难绕,容易绕错,那下面就让我来为大家详解一下. 首先,什么是递归函数呢? 1.所谓递归:指的是在函数内部,调用函数自身的操作.2.递归分两布:递(从最外层函数 ...

  3. SDS 链表

    sds定义 struct sdshdr{ int len int free char buf[] } sds和c语言类似,仍然把字符串的末尾加上一个'.0',但是不会计入总长度,也就是不会对len造成 ...

  4. MYSQL数据类型和where条件判断

    MySQL中常见的数据类型 一.字符型 ① CHAR(N):固定N个字符长度的字符串,如果长度不够自动空格补齐; N的范围 0~255 ② VARCHAR(N): 存储可变长度的字符串,最常用 ③ T ...

  5. iOS 实现简单的毛玻璃效果

    最近在整理导航栏的渐隐渐现效果,整理过程中偶然学会了图片的毛玻璃效果实现,很简单,不多说了,先上图看看效果对比, 这是原图, 这是加了效果后的,创建图片的代码就不上了,下面看下添加效果的代码: // ...

  6. PHP容器--Pimple运行流程浅析

    需要具备的知识点 闭包 闭包和匿名函数在PHP5.3.0中引入的. 闭包是指:创建时封装周围状态的函数.即使闭包所处的环境不存在了,闭包中封装的状态依然存在. 理论上,闭包和匿名函数是不同的概念.但是 ...

  7. 静态变量和Session

    静态变量: Application级别的,不同客户端访问同一个变量. Session:对于每个访问的客户端是独立的,都有一个唯一的SessionID.也就是说,不同客户端下,都可以有一个Session ...

  8. 一键将Web应用发布到云-Azure Web App

    我们现在越来越多的传统应用,逐步向云端迁移,原先私有云的部署模式,逐步向云端PaaS IaaS转变.例如: 我们在云端Azure中申请VM虚拟机,将我们的Web应用部署到VM的IIS中,同时做云服务的 ...

  9. 在suse上折腾iptables

    需求背景:有台服务器希望屏蔽掉某IP对它的SSH连接. 临时客串下DevOps,下面的做法可能在专业运维的同学里不太专业,还请指教. 该服务器的操作系统是SuSE Linux,服务器上是安装了ipta ...

  10. Vuejs——v-on

    版权声明:出处http://blog.csdn.net/qq20004604   目录(?)[+]   资料来于官方文档: http://cn.vuejs.org/guide/events.html ...