《HBase管理指南》一1.7 HBase安装

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

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

1.7 HBase安装

完全分布式运行的HBase实例要在HDFS上运行一个或多个主节点(HMaster)和多个从节点(RegionServer)。它使用一个可靠的ZooKeeper仲裁团来协调HBase集群中的所有组件,包括主节点、从节点和客户端。

HMaster并非必须与HDFS NameNode运行在同一服务器上,但对小集群来说,为了便于管理通常会让它们运行在同一台服务器上。RegionServers通常被配置在HDFS的DataNode服务器上运行。在Datanode服务器上运行RegionServer还有数据局部化(data locality)的优势。在同一台服务器上运行DataNode可使服务器拥有一份RegionServer所需数据的完整拷贝。

本节将描述一个完全分布式HBase的安装。我们将在master1上安装HMaster,然后再安装三个区域服务器(slave1到slave3)。我们还要在client1上安装一个HBase客户端。

1.7.1 准备

首先,请确保在集群的所有服务器上都安装好了Java。

我们还是使用hadoop用户来作为所有HBase守护程序和文件的所有者。所有HBase文件和数据将被存储在/usr/local/hbase目录中。请提前在HBase集群的所有服务器上创建好这个目录。

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

要确保HDFS处于运行状态。你可以使用如下命令来访问HDFS,以确认其是否已正常启动。

hadoop@client1$ $HADOOP_HOME/bin/hadoop fs -ls /
我们不需要启动MapReduce,因为HBase通常不会使用MapReduce。

我们假设你正管理着自己的一套ZooKeeper,在这种情况下,你可以启动它,并确认是否正常运行。你可以通过向其客户端端口发送ruok命令的方式来确认它是否在正常运行。

hadoop@client1$ echo ruok | nc master1 2181

1.7.2 操作步骤

要安装一个完全分布式的HBase集群,我们需要先在主节点上下载并配置好HBase,然后将其同步到所有从节点和客户端上。

从HBase官方网站(http://www.apache.org/dyn/closer.cgi/hbase/)上,我们可以下载到HBase的最新稳定版本。

在编写本书时,其最新的稳定版本为0.92.1版。

1.下载HBase源码包,然后将其解压缩到我们为HBase准备的根目录中。另外,为了更便于安装,我们要设置一个HBASE_HOME环境变量。

hadoop@master1$ ln -s hbase-0.92.1 current
hadoop@master1$ export HBASE_HOME=/usr/local/hbase/current

2.我们将使用/usr/local/hbase/var作为HBase在本地文件系统中的临时目录。如果你已经在安装独立运行的HBase时创建了该目录,那么请先删除它。

hadoop@master1$ mkdir -p /usr/local/hbase/var

3.在HBase环境设置文件(hbase-env.sh)中设置JAVA_HOME,使HBase可以知道Java的安装位置。

hadoop@master1$ vi $HBASE_HOME/conf/hbase-env.sh
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/usr/local/jdk1.6

4.设置HBase使用独立的ZooKeeper仲裁团。

hadoop@master1$ vi $HBASE_HOME/conf/hbase-env.sh
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=false

5.在HBase配置文件(hbase-site.xml)中添加下列这些参数设置。

hadoop@master1$ vi $HBASE_HOME/conf/hbase-site.xml
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master1:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/usr/local/hbase/var</value>
  </property>
  <property>
    <name>hbase.ZooKeeper.quorum</name>
    <value>master1</value>
  </property>
</configuration>

6.配置集群的从节点。

hadoop@master1$ vi $HBASE_HOME/conf/regionservers
slave1
slave2
slave3

7.将HDFS配置文件(hdfs-site.xml)链接至HBase的配置文件夹(conf)中,使HBase可以查看Hadoop集群上HDFS客户端的配置。

hadoop@master1$ ln -s $HADOOP_HOME/conf/hdfs-site.xml $HBASE_HOME/conf/ hdfs-site.xml

8.从Hadoop和ZooKeeper的安装目录中将hadoop-core、Zookeeper及其相关的JAR包复制到$HBASE_HOME/lib/目录中。

hadoop@master1$ rm -i $HBASE_HOME/lib/hadoop-core-*.jar
hadoop@master1$ rm -i $HBASE_HOME/lib/ZooKeeper-*.jar

hadoop@master1$ cp -i $HADOOP_HOME/hadoop-core-*.jar $HBASE_HOME/lib/
hadoop@master1$ cp -i $HADOOP_HOME/lib/commons-configuration-1.6.jar $HBASE _HOME/lib/
hadoop@master1$ cp -i $ZK_HOME/ZooKeeper-*.jar $HBASE_HOME/lib/

9.将/usr/local/hbase目录下的所有HBase文件从主节点同步到各客户端和从节点的同名目录中。

10.在主节点上启动HBase集群。

hadoop@master1$ $HBASE_HOME/bin/start-hbase.sh

11.在客户端节点上连接该HBase集群。

hadoop@client1$ $HBASE_HOME/bin/hbase shell

你也可以通过浏览器来访问HBase的Web用户界面。请确保你的主节点服务器上已经打开了60010端口。如图1-6所示,HBase Web界面的URL是http://master1:60010/master.jsp


6

12.在主节点上关闭HBase集群。

hadoop@master1$ $HBASE_HOME/bin/stop-hbase.sh

1.7.3 运行原理

在配置HBase集群时,我们通过指定hbase.rootdir属性将/hbase目录设定为了它在HDFS上的根目录。在HBase第一次启动时,它会自动创建该目录。你可以客户端机器上看到HBase在HDFS上创建的那些文件。

hadoop@client1$ $HADOOP_HOME/bin/hadoop fs -ls /hbase

我们希望我们的HBase能够运行在分布式模式下,所以我们在hbase-site.xml中将 hbase.cluster.distributed属性设为true。

通过在HBase-env.sh指定HBASE_MANAGES_ZK=false,我们还设定了该集群要使用一个独立的ZooKeeper仲裁团。所使用的ZooKeeper仲裁团由hbase.ZooKeeper.quorum属性来指定。你也可以使用集群模式的ZooKeeper,这时需要在该属性中列出Zookeeper仲裁团的所有服务器(比如zoo1、zoo2、zoo3)。

所有区域服务器都要在$HBASE_HOME/conf/regionservers中登记。在该配置文件中,每台区域服务器各占一行。在启动集群时,HBase会以SSH方式登录到该配置文件所记录的每台区域服务器上,然后启动该服务器上的HRegionServer守护进程。

由于hdfs-site.xml已被链接到了$HBASE_HOME/conf目录下,所以HBase可以访问hdfs-site.xml中的所有HDFS客户端的配置信息,比如dfs.replication设置。

HBase带有一些预构建好的hadoop-core和ZooKeeper的JAR文件。但与我们安装的Hadoop和ZooKeeper中的对应JAR包相比,这些预构建JAR包可能已经过时了。为了避免出现一些意外问题,要确保HBase使用的.jar文件与Hadoop和ZooKeeper所使用的对应文件版本相同。

相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
分布式计算 Hadoop Shell
93 hbase安装
93 hbase安装
50 0
|
8月前
|
SQL 分布式计算 Hadoop
Hadoop集群hbase的安装
Hadoop集群hbase的安装
143 0
|
1月前
|
存储 Java Linux
Linux安装HBase的详细教程及常用方法
Linux安装HBase的详细教程及常用方法
98 1
|
4月前
|
Shell 分布式数据库 Apache
HBase 安装
HBase 安装
43 0
|
4月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
82 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
7月前
|
Shell 分布式数据库 Hbase
Hbase shell管理操作
Hbase shell管理操作
53 0
|
8月前
|
监控 大数据 分布式数据库
|
8月前
|
存储 分布式计算 Hadoop
Hadoop之Hbase安装和配置
Hadoop之Hbase安装和配置
745 0
|
9月前
|
存储 分布式计算 Java
云计算与大数据实验七 HBase的安装与基本操作
云计算与大数据实验七 HBase的安装与基本操作
493 0
|
11月前
|
分布式计算 Hadoop Java
Hbase集群安装与常见问题解决
Hbase集群安装与常见问题解决
280 0