我写了一个启动zookeeper的脚本d.sh。启动时提示成功了不了,但实际上没有成功
脚本:
脚本很简单内容如下:
[root@crxy1 local]# more d.sh
#!/bin/sh
echo "start zkServer..."
for i in 1 2 3
do
ssh crxy$i "/usr/local/zookeeper/bin/zkServer.sh start"
done
#!/bin/sh
echo "start zkServer..."
for i in 1 2 3
do
ssh crxy$i "/usr/local/zookeeper/bin/zkServer.sh start"
done
jps查看进程
[root@crxy1 local]# jps
3347 Jps
3347 Jps
没有QuorumPeerMain 进程,实际没有启动成功
如果手工执行,/usr/local/zookeeper/bin/zkServer.sh start
会真正成功启动,jps有QuorumPeerMain进程:
这是个怎么回事呢?
------------------------------------------------
原因:
首先需要知道 交互式shell和非交互式shell、登录shell和非登录shell是有区别的
在登录shell里,环境信息需要读取/etc/profile和~ /.bash_profile, ~/.bash_login, and ~/.profile按顺序最先的一个,并执行其中的命令。除非被 --noprofile选项禁止了;
在非登录shell里,环境信息只读取 /etc/bash.bashrc和~/.bashrc
在非登录shell里,环境信息只读取 /etc/bash.bashrc和~/.bashrc
手工执行是属于登陆shell,脚本执行数据非登陆shell,而我的linux环境配置中只对/etc/profile进行了jdk1.7等环境的配置,所以脚本执行/usr/local/zookeeper/bin/zkServer.sh start 启动zookeeper失败了
解决方法(下面3个方法任选1):
1、脚本代码中添加“source /etc/profile;” 改为:ssh crxy$i "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start"
2、把profile的配置信息echo到.bashrc中 echo 'source /etc/profile' >> ~/.bashrc
3、在/zookeeper/bin/zkEnv.sh的中开始位置添加 export JAVA_HOME=/usr/local/jdk1.7.0_45(就像hadoop中对hadoop-env.sh的配置一样)
解决了这个问题,就以方便的通过脚本实现hadoop集群的启动与关闭了,避免了繁琐的手工操作^-^
感谢:
特别感谢超人学院的吴超老师,要不是老师斩钉截铁的跟我说“如果还是这个观点的话,那肯定还是找不到问题所在”,我可能会简单的错误认为那是zookeeper的bug
特别感谢就业班中的 @【3】胡涛 @【2】金苏华 @【3】唐斌 @【3】王晓东 等同学的热心帮助
相关推荐
这个压缩包“shell脚本监控zookeeper集群节点异常发送邮件通知.rar”提供了一个解决方案,当Zookeeper集群中的节点出现异常时,能够自动向管理员发送邮件通知,以确保系统的稳定运行和快速响应问题。 首先,我们...
搭建ZooKeeper集群 ZooKeeper是一种基于Java的高性能协调服务,专门为分布式应用程序设计,提供了高可用性、可扩展性和高性能等特点...搭建ZooKeeper集群需要遵循正确的步骤和配置文件,确保集群的高可用性和稳定性。
此附件是快速搭建zookeeper集群的脚本,方便灵活,减少了自己一大堆复杂的操作,像运行服务一样执行几条start,stop等命令即可轻松完成集群搭建。
- **启动Zookeeper集群**:在每个节点上,配置`zoo.cfg`文件,设置dataDir指向存储快照和事务日志的目录,server.x配置项表示节点ID(x为1,2,3...),并指定其他节点的IP和端口。例如: ``` dataDir=/path/to/...
### Linux下Zookeeper集群...通过以上步骤,可以在Linux环境下成功安装并配置Zookeeper集群。这不仅有助于提高分布式系统的稳定性和性能,还能够简化开发人员的工作流程,使得分布式应用程序的构建变得更加简单和高效。
2. **主题创建策略**:在Zookeeper中管理主题,可以使用`bin/kafka-topics.sh`脚本,指定--zookeeper参数来与Zookeeper集群通信。 3. **副本分配**:Kafka的Replication Factor决定了每个Topic的副本数量,这需要与...
搭建Zookeeper集群时,我们需要配置`zoo.cfg`文件,包括设置dataDir(存储每个节点的事务日志和快照)、clientPort(客户端连接的端口)以及server.配置(定义集群中的节点)。同时,为了实现选举机制,每个节点还...
首先,我们需要配置Zookeeper集群。每个Zookeeper节点都需要一个配置文件`zoo.cfg`,主要包括以下关键设置: - `dataDir`: 指定存储Zookeeper数据的目录,包括事务日志和快照。 - `clientPort`: 客户端连接...
ZooKeeper集群的安装、配置、高可用测试 ZooKeeper是Apache软件基金会的一个开源项目,提供了一个分布式应用程序的协调服务。它可以提供可靠的分布式配置管理、命名服务、分布式同步和提供组服务等功能。下面是...
zookeeper一键式安装shell脚本,无需手动搭建集群环境,脚本运行即可自动配置
【CentOS+Jdk+Jboss+dubbo+zookeeper集群配置教程】 在进行大规模分布式系统开发时,集成多种组件是常见的需求。本教程将详细介绍如何在CentOS操作系统上配置Jdk、Jboss应用服务器、dubbo服务治理框架以及zookeeper...
**Zookeeper集群监控工具——Taokeeper** Zookeeper作为一个分布式协调服务,被广泛应用于大数据、分布式计算和微服务等场景中。它提供了诸如命名服务、配置管理、分布式锁和组服务等功能,确保了分布式系统的一致...
整个过程分为三个主要部分:Java环境(JDK)的安装、Zookeeper集群的配置以及Storm集群的具体安装。 #### 二、安装前准备 在开始任何安装之前,请确保已经做好以下准备工作: - **硬件准备**:至少三台物理或虚拟机...
本文不讲zookeeper集群原理,只谈部署步骤。 默认读者已对zookeeper有最基本的认知,纯粹作为部署笔记,方便回忆。 另外本文是基于Windows部署的,Linux的步骤是基本相同的(只是启动脚本位置不同)。
文章目录1. zookeeper下载2. 解压3. 重命名4.... 集群脚本制作 1. zookeeper下载 wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz 2. 解压 tar z
在实际部署中,可能还需要考虑多台Zookeeper服务器的集群配置,确保即使单个Zookeeper节点故障,整个系统仍然能够正常工作。此外,为了增强系统的健壮性,Shell脚本本身也需要设计成容错的,例如,处理网络抖动、...
hadoop 高可用启动脚本,运行启动zookeeper集群和hadoop ha集群
### Linux系统下安装Zookeeper集群知识点详解 #### 一、概述 本文档旨在详细介绍如何在Linux环境下搭建Zookeeper集群,并确保其稳定运行。Zookeeper是一个高性能的协调服务,用于维护配置信息、命名、提供分布式...
Apache ZooKeeper是一个分布式的、开放源码的协调服务,对于分布式应用来说,它提供了诸如命名服务、配置管理、集群同步、领导者选举等关键功能。 Zookeeper的安装通常涉及多个步骤,包括下载源码、解压、配置、...