ClouderaManager要求CDH中的依赖服务使用相同的ZooKeeper服务。如果配置从属CDH服务以使用不同的ZooKeeper服务,ClouderaManager将报告以下错误:
com.cloudera.cmf.command.CmdExecException:java.lang.RuntimeException:java.lang.IllegalStateException:违反假设:getAllDependencies返回了多个相同类型的不同服务在SeqFlowCmd.java第120行在com.cloudera.cmf.command.flow.SeqFlowCmd中运行()
不依赖的CDH服务可以使用不同的ZooKeeper服务。例如,Kafka不依赖于ZooKeeper以外的任何服务。您可能为Kafka提供一个ZooKeeper服务,为其余CDH服务提供一个ZooKeeper服务。
最低要求角色:完全管理员
添加ZooKeeper服务时,“添加服务”向导会自动初始化数据目录。
将Zookeeper服务器添加到现有集合时,需要滚动重新启动所有zookeeper才能允许所有zookeeper服务器具有相同的配置
如果退出“添加服务”向导或未成功完成,则可以按照以下步骤初始化向导之外的目录:转到ZooKeeper服务。选择Actions>Initialize。再次单击“初始化”以确认。注意:如果未初始化数据目录,则无法启动ZooKeeper服务器。在生产环境中,您应该将ZooKeeper部署为具有奇数个服务器的集合。只要集合中的大多数服务器可用,ZooKeeper服务就可用。建议的最小集合大小是三个ZooKeeper服务器,Cloudera建议每个服务器在单独的计算机上运行。此外,如果可能,ZooKeeper服务器进程应该有自己的专用磁盘存储。
最低要求角色:完全管理员
在ClouderaManager中,更新数据目录和事务日志目录设置。停止一个ZooKeeper角色。将内容移动到新磁盘位置(根据需要修改安装)。确保权限和所有权正确无误。启动ZooKeeper角色。对任何剩余的ZooKeeper角色重复步骤2-4。最低要求角色:完全管理员
转到ZooKeeper实例。停止旧主机上的ZooKeeper角色。确认ZooKeeper服务已选择其中一个剩余主机作为ZooKeeper状态页面上的领导者。请参阅确认ZooKeeper服务的选举状态。在ZooKeeperInstances页面上,从旧主机中删除ZooKeeper角色。在新主机上添加新的ZooKeeper角色。启动新的ZooKeeper角色。在ZooKeeper状态页面上确认有一个领导者,所有其他主机都是粉丝。重启其他ZooKeeper角色。重新启动任何相关服务,例如HBase,具有HDFS高可用性的HDFS故障转移控制器,具有高可用性的YARN或Mapreducev1或其他服务。执行故障转移以使一个HDFSNameNode处于活动状态。请参阅使用ClouderaManager手动故障转移到备用NameNode。最低要求角色:完全管理员
有关从命令行管理ZooKeeper的信息,请参阅ZooKeeper入门指南。
替换非托管群集上的ZooKeeper角色
最低要求角色:完全管理员
这些说明假设您从命令行使用ZooKeeper。有关更多信息,请参阅ZooKeeper入门指南。
停止旧主机上的ZooKeeper角色。确认ZooKeeperQuorum已选出领导者。请参阅确认ZooKeeper服务的选举状态。在新服务器上添加新的ZooKeeper角色。确定DATADIR来自的位置zoo.cfg文件。默认为在/var/lib中/饲养员。从中识别ZooKeeper服务器的ID号我的身份配置中的文件:cat/var/lib/zookeeper/myid在所有ZooKeeper主机上,编辑zoo.cfg文件,因此服务器ID引用新服务器主机名。例如:server.1=zk1.example.org:3181:4181server.2=zk2.example.org:3181:4181server.4=zk4.example.org:3181:4181重启ZooKeeper主机。确认ZooKeeperQuorum已选出领导者,其他主持人是粉丝。请参阅确认ZooKeeper服务的选举状态。重新启动任何相关服务,例如HBase,具有HDFS高可用性的HDFS故障转移控制器,或具有高可用性的YARN或Mapreducev1。执行故障转移以使一个HDFSNameNode处于活动状态。请参阅使用命令行手动故障转移到备用NameNode。确认ZooKeeper服务的选举状态
确定ZooKeeper主机的选举状态要求您已安装telnet或nc(netcat),从具有对ZooKeeper主机的网络访问权限的主机运行。默认的ZooKeeper客户端端口为2181.对每个ZooKeeper主机运行以下命令:echo“stat”|ncserver.example.org2181|grep模式例如,关注者主机将返回消息:
模式:追随者如果您愿意,可以使用telnet。$telnetserver.example.org2181样本输出类似于以下内容。尝试10.1.2.154......已连接到server.example.org。逃脱角色是'^]'。统计Zookeeper版本:3.4.5-cdh5.4.4--1,建于07/06/201523:54GMT...延迟最小值/平均值/最大值:0/1/40收到:631发送:677连接:7杰出:0Zxid:0x30000011a模式:追随者<----节点数:40外部主机关闭连接。