《HBase管理指南》一1.5 ZooKeeper安装

简介:
+关注继续查看

本节书摘来异步社区《HBase管理指南》一书中的第1章,第1.5节,作者: 蒋燚峰 译者: 苏南,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 ZooKeeper安装

分布式的HBase需要运行一个ZooKeeper集群。HBase集群的所有节点和客户端都必须能够访问该ZooKeeper仲裁团。

此节将描述如何建立一个ZooKeeper集群。我们将仅为我们的HBase集群建立一个单机运行的ZooKeeper节点,但是如果是在生产环境中,就应该建立一个至少含有三个节点ZooKeeper仲裁团。此外,还要确保运行节点的个数是奇数。

我们将在本节的“1.5.4 补充说明”一节中讨论集群式ZooKeeper的安装。

1.5.1 准备

首先,要确保在你的ZooKeeper服务器上已经安装好了Java。

我们将使用hadoop用户来作为所有ZooKeeper守护进程和文件的所有者。所有ZooKeeper文件和数据将被存储在/usr/local/ZooKeeper目录下,你需要预先创建好该目录。我们的ZooKeeper也将安装在master1上。

我们将在client1上安装一个ZooKeeper客户端。因此,在client1上也要安装Java并准备好hadoop用户和目录。

1.5.2 操作步骤

安装一个单机运行的ZooKeeper的步骤如下。

1.从ZooKeeper的官方网站(http://ZooKeeper.apache.org/releases.html#download)下载ZooKeeper的最新稳定版本。

2.下载其安装压缩包并将其解压缩到我们为ZooKeeper准备的根目录中。为了更便于安装,我们要设置一个ZK_HOME环境变量。在写作本书时,ZooKeeper的最新稳定版是3.4.3版。

hadoop@master1$ ln -s ZooKeeper-3.4.3 current
hadoop@master1$ export ZK_HOME=/usr/local/ZooKeeper/current

3.为ZooKeeper创建几个目录,用来存储的快照和事务日志。

hadoop@master1$ mkdir -p /usr/local/ZooKeeper/data
hadoop@master1$ mkdir -p /usr/local/ZooKeeper/datalog

4.创建$ZK_HOME/CONF/java.env文件,并在其中输入下列的Java设置。

hadoop@master1$ vi $ZK_HOME/conf/java.env
JAVA_HOME=/usr/local/jdk1.6
export PATH=$JAVA_HOME/bin:$PATH

5.复制ZooKeeper样本配置文件并进行如下一些修改,以设置ZooKeeper存储数据的位置。

hadoop@master1$ cp $ZK_HOME/conf/zoo_sample.cfg $ZK_HOME/conf/zoo.cfg

hadoop@master1$ vi $ZK_HOME/conf/zoo.cfg
dataDir=/usr/local/ZooKeeper/var/data
dataLogDir=/usr/local/ZooKeeper/var/datalog

6.将/usr/local/ZooKeeper下的所有文件从主节点同步到客户端上。在此初始安装时,不要同步${dataDir}和${dataLogDir}目录。

7.在主节点上执行如下命令启动ZooKeeper。

hadoop@master1$ $ZK_HOME/bin/zkServer.sh start

8.连接到正在运行的ZooKeeper上,执行如下一些命令来验证安装是否正确。

hadoop@client1$ $ZK_HOME/bin/zkCli.sh -server master1:2181

[zk: master1:2181(CONNECTED) 0] ls /
[ZooKeeper]
[zk: master1:2181(CONNECTED) 1] quit

9.在主节点上执行如下命令关闭ZooKeeper。

hadoop@master1$ $ZK_HOME/bin/zkServer.sh stop

1.5.3 运行原理

在本节中,我们安装了一个基本的单机运行的ZooKeeper实例。正如你看到的那样,安装非常简单,你所需要做的只是告诉ZooKeeper在哪里可以找到Java和在哪里保存自己的数据。

在第4步中,我们创建了一个名为java.env的文件,然后在该文件中记录了一些Java设置。你必须使用这个文件名,因为ZooKeeper(默认情况下)要从这个文件中读取Java设置。

ZooKeeper的配置文件名为zoo.cfg。你可以从ZooKeeper附带的示例文件复制出一个配置文件来。对于基本安装来说,那些默认设置就很适用。因为ZooKeeper在集群系统中一直起着核心作用,所以必须对其正确设置才能获得最佳的性能。

若要连接一个正在运行的ZooKeeper仲裁团,必须使用它的命令行工具,并且指定要连接的ZooKeeper服务器和端口。默认的客户端口是2181。如果使用默认端口,那么就不需要指定端口号。

我们把所有的ZooKeeper数据称为Znode。Znode在构造上就像一个文件系统的层次结构。ZooKeeper提供了一些命令,可以通过它的命令行工具访问或更新Znode。在命令行工具中键入help可以获得进一步的帮助信息。

1.5.4 补充说明

HBase将ZooKeeper作为自己的协调服务来使用,因此ZooKeeper服务必须非常可靠。在生产环境中,你必须运行一个至少含三个节点的ZooKeeper集群。此外,还要确保运行节点的个数是奇数。

安装一个集群式ZooKeeper的过程与本节前面所示的过程基本相同。你可以先按照前面的步骤来安装好集群中的每一个节点。然后再在每个节点的zoo.cfg文件中添加如下一些设置,这样每一个节点就可以知道仲裁团中其他的每个节点了。

hadoop@node{1,2,3}$ vi $ZK_HOME/conf/zoo.cfg
   server.1=node1:2888:3888
   server.2=node2:2888:3888
   server.3=node3:2888:3888

另外,你还需要在${DATADIR}目录下放置一个myid文件。该myid文件由一行文本组成,内容是该节点的ID。因此,在node1节点的myid文件中,除了包含一行内容为1的文本以外,没有其他内容。

提示

请注意,所有的ZooKeeper节点的时钟必须是同步的。你可以使用NTP(Network Time Protocol,网络时间协议)来同步时钟。

分别在该集群的每个节点上启动ZooKeeper。然后,你就可以使用下面这条命令从客户端连接到ZooKeeper集群上了。

$ zkCli.sh -server node1,node2,node3

在ZooKeeper集群中,只要有一半以上的节点能够正常运行,ZooKeeper就能正常工作。这意味着:在3个节点的集群中,只有一台服务器可以宕机。

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
26天前
|
监控 大数据 分布式数据库
|
1月前
|
存储 分布式计算 Hadoop
Hadoop之Hbase安装和配置
Hadoop之Hbase安装和配置
60 0
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop集群hbase的安装
Hadoop集群hbase的安装
40 0
|
2月前
|
存储 分布式计算 Java
云计算与大数据实验七 HBase的安装与基本操作
云计算与大数据实验七 HBase的安装与基本操作
80 0
|
4月前
|
分布式计算 Hadoop Java
Hbase集群安装与常见问题解决
Hbase集群安装与常见问题解决
118 0
|
8月前
|
NoSQL 大数据 分布式数据库
【HBase】(1)-HBase的安装
【HBase】(1)-HBase的安装
97 0
【HBase】(1)-HBase的安装
|
8月前
|
Linux 分布式数据库 Apache
VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装 下
VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装 下
188 0
VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装 下
|
8月前
|
分布式计算 Hadoop Java
VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装 上
VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装 上
132 0
VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装 上
|
8月前
|
SQL 分布式计算 监控
HBase 快速入门(安装和命令操作)
HBase 快速入门(安装和命令操作)
|
11月前
|
分布式计算 算法 网络协议
Hadoop安装Hbase启动失败报错解决方法
Hadoop安装Hbase启动失败报错解决方法
501 0
Hadoop安装Hbase启动失败报错解决方法
推荐文章
更多