我已经在我的 Ubuntu 机器上安装了 Hadoop 单节点集群,并且能够运行 NameNode、datanode 等。现在我需要安装 HBase 和 Zookeeper。但我真的不知道它们是什么。任何人都可以给我关于这些工具的简要描述。
谢谢
我已经在我的 Ubuntu 机器上安装了 Hadoop 单节点集群,并且能够运行 NameNode、datanode 等。现在我需要安装 HBase 和 Zookeeper。但我真的不知道它们是什么。任何人都可以给我关于这些工具的简要描述。
谢谢
首先,我强烈建议您浏览这些项目的官方页面。去这里查看 HBase 和这里查看 Zookeeper。
HBase 是在现有 Hadoop 集群 (HDFS) 之上运行的 NoSQL 数据存储。它为您提供随机、实时读取/写入等功能,而 HDFS 作为 FS 所缺乏的。由于它是一个 NoSQL 数据存储,它不遵循 SQL 约定和术语。HBase 提供了一套很好的 API(包括 JAVA 和 Thrift)。除了这个 HBase 还提供与 MapReduce 框架的无缝集成。但是,除了 HBase 的所有这些优点之外,您还应该记住这一点,随机读写速度很快,但总是有额外的开销。因此,在做出任何决定之前,请三思而后行。
ZooKeeper 是分布式应用程序(如 HBase)的高性能协调服务。它在一个简单的界面中公开了常见的服务,如命名、配置管理、同步和组服务,因此您不必从头开始编写它们。您可以现成地使用它来实现共识、组管理、领导者选举和存在协议。您可以根据自己的特定需求在此基础上进行构建。
HBase 完全依赖 Zookeeper。HBase 为您提供了使用其内置 Zookeeper 的选项,该选项将在您启动 HBAse 时启动。但是,如果您在生产集群上工作,那就不好了。在这种情况下,拥有一个专用的 Zookeeper 集群并将其与您的 HBase 集群集成总是好的。
注意:你的 ZK Quorum 中应该总是有奇数个节点。
高温高压
概述:
Zookeeper:简而言之,zookeeper 是一个分布式应用(集群)配置和管理工具,它独立于 HBase 退出。从文档:
ZooKeeper是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行大量工作来修复不可避免的错误和竞争条件。由于实现这些服务的难度,应用程序最初通常会忽略它们,这使得它们在发生变化时变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。
HBase:HDFS 之上的 NoSQL 数据存储(可以使用简单的文件系统,但不保证数据的持久性)。HBase 包含两个主要服务:
HBase和Zookeeper之间的连接:
分布式 HBase 完全依赖 Zookeeper(用于集群配置和管理)。在 Apache HBase 中,ZooKeeper 在 Master 和 RegionServer 之间协调、通信和共享状态。HBase 的设计策略是仅将 ZooKeeper 用于瞬态数据(即用于协调和状态通信)。因此,如果 HBase 的 ZooKeeper 数据被删除,只有临时操作会受到影响——数据可以继续写入 HBase 或从 HBase 读取数据。
启动 HBase 后 - 您可以使用jps
命令验证它已启动的进程:
$ jps
该命令将列出机器上的所有 java 进程(HBase 本身是一个 Java 应用程序) - 可能的输出(在简单的独立 HBase 设置的情况下)必须是:
62019 Jps
61098 HMaster
61233 HRegionServer
61003 HQuorumPeer
从技术上讲:默认情况下,HBase 管理 zookeeper 本身,即在我们启动和停止 HBase 时启动和停止 zookeeper quorum(zookeeper 节点集群) - 验证设置查看文件conf/hbase-evn.sh
(在您的 hbase 目录中)必须有一行:
export HBASE_MANAGES_ZK=true
一旦设置完毕,我们需要做的就是在文档中设置以下指令conf/hbase-site.xml
:
<configuration>
...
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description> The port at which the clients will connect.
</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
<description>Property from ZooKeeper's config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
...
</configuration>