1.4 HBase 安装与部署 1.4 HBase 安装与部署 1.4.1 部署模式简介 HBase 支持三种部署模式,根据实际需求选择合适的模式: 单机模式 (Standalone Mode): 所有 HBase 守护进程(HMaster, HRegionServer, ZooKeeper)运行在同一个 JVM 实例中。这种模式适用于开发、测试以及学习 HBase。不需要 Hadoop 环境。 伪分布式模式 (Pseudo-Distributed Mode): 所有 HBase 守护进程运行在同一个机器上,但每个守护进程运行在独立的 JVM 实例中。需要 Hadoop 环境,但所有 Hadoop 守护进程也运行在同一台机器上。适用于开发、测试以及对 HBase 的基本功能进行探索。
HBase 支持三种部署模式,根据实际需求选择合适的模式:
单机模式 (Standalone Mode): 所有 HBase 守护进程(HMaster, HRegionServer, ZooKeeper)运行在同一个 JVM 实例中。这种模式适用于开发、测试以及学习 HBase。不需要 Hadoop 环境。
伪分布式模式 (Pseudo-Distributed Mode): 所有 HBase 守护进程运行在同一个机器上,但每个守护进程运行在独立的 JVM 实例中。需要 Hadoop 环境,但所有 Hadoop 守护进程也运行在同一台机器上。适用于开发、测试以及对 HBase 的基本功能进行探索。
完全分布式模式 (Fully-Distributed Mode): HBase 守护进程运行在集群中的不同机器上。需要一个完整的 Hadoop 集群环境。适用于生产环境,能够提供高可用性和可扩展性。
单机模式是最简单的 HBase 部署方式。
1. 前提条件:
2. 下载 HBase:
从 Apache HBase 官方网站下载最新稳定版本的 HBase。
wget https://downloads.apache.org/hbase/2.5.4/hbase-2.5.4-bin.tar.gz tar -zxvf hbase-2.5.4-bin.tar.gz cd hbase-2.5.4
3. 配置 HBase:
编辑 conf/hbase-site.xml 文件,添加以下配置:
<configuration> <property> <name>hbase.rootdir</name> <value>file:///tmp/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/tmp/zookeeper</value> </property> </configuration>
hbase.rootdir: HBase 数据存储的根目录。 这里使用本地文件系统,因此前缀是 file:///。 在生产环境中,应使用 HDFS。
hbase.zookeeper.property.dataDir: ZooKeeper 数据存储目录。
4. 启动 HBase:
./bin/start-hbase.sh
5. 验证 HBase:
通过 HBase Shell 验证 HBase 是否成功启动:
./bin/hbase shell
如果成功进入 HBase Shell,则表示 HBase 已成功启动。
6. 停止 HBase:
./bin/stop-hbase.sh
Graph TD 图示:
伪分布式模式需要 Hadoop 环境。
1. 前提条件:
Java Development Kit (JDK) 1.8 或更高版本
Hadoop 2.7 或更高版本
2. 安装和配置 Hadoop:
按照 Hadoop 官方文档安装和配置 Hadoop。 确保 Hadoop 可以正常启动和运行。 配置包括 core-site.xml, hdfs-site.xml, mapred-site.xml, 和 yarn-site.xml。
3. 下载 HBase:
从 Apache HBase 官方网站下载最新稳定版本的 HBase。
wget https://downloads.apache.org/hbase/2.5.4/hbase-2.5.4-bin.tar.gz tar -zxvf hbase-2.5.4-bin.tar.gz cd hbase-2.5.4
4. 配置 HBase:
编辑 conf/hbase-site.xml 文件,添加以下配置:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/tmp/zookeeper</value> </property> </configuration>
hbase.rootdir: HBase 数据存储的根目录。 这里使用 HDFS,因此前缀是 hdfs://。 localhost:9000 是 Hadoop NameNode 的地址。
hbase.cluster.distributed: 设置为 true 表示 HBase 运行在分布式模式。
hbase.zookeeper.quorum: ZooKeeper 集群的地址。 在伪分布式模式下,ZooKeeper 运行在同一台机器上。
hbase.zookeeper.property.dataDir: ZooKeeper 数据存储目录。
编辑 conf/hbase-env.sh 文件,设置 JAVA_HOME 和 HBASE_MANAGES_ZK:
export JAVA_HOME=/path/to/your/jdk export HBASE_MANAGES_ZK=false
JAVA_HOME: JDK 的安装目录。
HBASE_MANAGES_ZK: 设置为 false 表示 HBase 不管理 ZooKeeper,需要单独启动 ZooKeeper。 如果设置为 true,HBase 会自动启动一个 ZooKeeper 实例,但仅适用于单机和伪分布式模式。
5. 启动 Hadoop:
start-dfs.sh start-yarn.sh
6. 启动 ZooKeeper:
如果 HBASE_MANAGES_ZK 设置为 false,需要单独启动 ZooKeeper。
zkServer.sh start
7. 启动 HBase:
./bin/start-hbase.sh
8. 验证 HBase:
通过 HBase Shell 验证 HBase 是否成功启动:
./bin/hbase shell
如果成功进入 HBase Shell,则表示 HBase 已成功启动。
9. 停止 HBase:
./bin/stop-hbase.sh
10. 停止 ZooKeeper:
zkServer.sh stop
11. 停止 Hadoop:
stop-yarn.sh stop-dfs.sh
Graph TD 图示:
完全分布式模式需要在多台机器上安装和配置 Hadoop 和 HBase。
1. 前提条件:
Java Development Kit (JDK) 1.8 或更高版本
Hadoop 2.7 或更高版本
至少三台机器 (一台 NameNode, 一台 ResourceManager, 至少一台 DataNode/NodeManager 和 HRegionServer)
SSH 免密码登录
2. 安装和配置 Hadoop:
按照 Hadoop 官方文档在集群中的所有机器上安装和配置 Hadoop。 配置包括 core-site.xml, hdfs-site.xml, mapred-site.xml, 和 yarn-site.xml。 确保 Hadoop 可以正常启动和运行。
3. 下载 HBase:
从 Apache HBase 官方网站下载最新稳定版本的 HBase。 将 HBase 安装包解压到集群中的所有机器的相同目录下。
wget https://downloads.apache.org/hbase/2.5.4/hbase-2.5.4-bin.tar.gz tar -zxvf hbase-2.5.4-bin.tar.gz cd hbase-2.5.4
4. 配置 HBase:
编辑 conf/hbase-site.xml 文件,添加以下配置:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://namenode:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>zk1,zk2,zk3</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/path/to/zookeeper/data</value> </property> <property> <name>hbase.master.info.port</name> <value>16010</value> </property> </configuration>
hbase.rootdir: HBase 数据存储的根目录。 这里使用 HDFS,因此前缀是 hdfs://。 namenode:9000 是 Hadoop NameNode 的地址。
hbase.cluster.distributed: 设置为 true 表示 HBase 运行在分布式模式。
hbase.zookeeper.quorum: ZooKeeper 集群的地址。 zk1,zk2,zk3 是 ZooKeeper 集群中所有 ZooKeeper 节点的 hostname 或 IP 地址。
hbase.zookeeper.property.dataDir: ZooKeeper 数据存储目录。
hbase.master.info.port: HBase Master 的 Web UI 端口。
编辑 conf/hbase-env.sh 文件,设置 JAVA_HOME 和 HBASE_MANAGES_ZK:
export JAVA_HOME=/path/to/your/jdk export HBASE_MANAGES_ZK=false
JAVA_HOME: JDK 的安装目录。
HBASE_MANAGES_ZK: 设置为 false 表示 HBase 不管理 ZooKeeper,需要单独启动 ZooKeeper。
编辑 conf/regionservers 文件,列出所有 HRegionServer 节点的 hostname 或 IP 地址。 每行一个地址。
regionserver1 regionserver2 regionserver3
5. 配置 ZooKeeper:
在 ZooKeeper 集群中的所有机器上安装和配置 ZooKeeper。
6. 启动 Hadoop:
在 NameNode 节点上启动 HDFS:
start-dfs.sh
在 ResourceManager 节点上启动 YARN:
start-yarn.sh
7. 启动 ZooKeeper:
在 ZooKeeper 集群中的所有机器上启动 ZooKeeper:
zkServer.sh start
8. 启动 HBase:
在 Master 节点上启动 HBase:
./bin/start-hbase.sh
9. 验证 HBase:
通过 HBase Shell 验证 HBase 是否成功启动:
./bin/hbase shell
如果成功进入 HBase Shell,则表示 HBase 已成功启动。 可以通过 HBase Web UI (http://master_node:16010) 监控 HBase 集群的状态。
10. 停止 HBase:
./bin/stop-hbase.sh
11. 停止 ZooKeeper:
在 ZooKeeper 集群中的所有机器上停止 ZooKeeper:
zkServer.sh stop
12. 停止 Hadoop:
在 ResourceManager 节点上停止 YARN:
stop-yarn.sh
在 NameNode 节点上停止 HDFS:
stop-dfs.sh
Graph TD 图示:
HBase 启动失败: 检查日志文件,查看错误信息。 常见原因包括:
JDK 版本不兼容
Hadoop 配置错误
ZooKeeper 配置错误
防火墙阻止了端口访问
内存不足
HBase Shell 连接失败: 检查 HBase 是否成功启动,以及 ZooKeeper 连接是否正常。
HRegionServer 无法启动: 检查 regionservers 文件是否配置正确,以及 HRegionServer 节点是否可以访问 NameNode 和 ZooKeeper。
本章节详细介绍了 HBase 的三种部署模式,并提供了相应的安装和配置步骤。 根据实际需求选择合适的部署模式,并仔细检查配置信息,可以成功搭建 HBase 环境。 在实际部署过程中,可能会遇到各种问题,需要仔细阅读日志文件,并根据错误信息进行排查。