第1关:伪分布式环境搭建

任务描述
相关知识
配置与启动伪分布式HBase
在HDFS中验证
编程要求
测试说明
任务描述
本关任务:安装伪分布式HBase。

相关知识
上次实训中我们已经完成了单机版HBase的安装,单机版意味着我们的HBase数据仍然是存放在本地,而没有存放在Hadoop集群中,本关我们来学习如何配置一个伪分布式的HBase环境,伪分布式意味着HBase仍然在单个主机上运行,但每个HBase的守护程序(HMaster、HRegionServer和Zookeeper)作为单独的进程运行;在伪分布式的环境下,我们会将HBase的数据存储在HDFS中,而不是存放在本地了,接下来我们就来一起搭建环境吧。

实验环境:

hadoop2.7;
JDK8;
HBase2.1.1;
hadoop已安装;
JDK已安装,环境变量已配置;
HBase压缩包已下载,存放在/opt目录下。

在搭建环境之前我们首先来了解一下HBase分布式环境的整体架构:

我们来简单认识一下与HBase的相关组件:

Zookeeper:

Zookeeper能为HBase提供协同服务,是HBase的一个重要组件,Zookeeper能实时的监控HBase的健康状态,并作出相应处理。

HMaster:

HMaster是HBase的主服务,他负责监控集群中所有的HRegionServer,并对表和Region进行管理操作,比如创建表,修改表,移除表等等。

HRegion:

HRegion是对表进行划分的基本单元,一个表在刚刚创建时只有一个Region,但是随着记录的增加,表会变得越来越大,HRegionServer会实时跟踪Region的大小,当Region增大到某个值时,就会进行切割(split)操作,由一个Region切分成两个Region。

HRegionServer:

HRegionServer是RegionServer的实例,它负责服务和管理多个HRegion 实例,并直接响应用户的读写请求。

总的来说,要部署一个分布式的HBase数据库,需要各个组件的协作,HBase通过Zookeeper进行分布式应用管理,Zookeeper相当于管理员,HBase将数据存储在HDFS(分布式文件系统)中,通过HDFS存储数据,所以我们搭建分布式的HBase数据库的整体思路也在这里,即将各个服务进行整合。

接下来,我们就一起来搭建一个伪分布式的HBase。

配置与启动伪分布式HBase
如果你已经完成了单节点HBase的安装,那伪分布式的配置对你来说应该很简单了,只需要修改hbase-site.xml文件即可:

vim /app/hbase-2.1.1/conf/hbase-site.xml
在这里主要有两项配置:

1.开启HBase的分布式运行模式,配置hbase.cluster.distributed为true代表开启HBase的分布式运行模式:

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>

2.是设置HBase的数据文件存储位置为HDFS的/hbase目录,要注意的是在这里我们不需要在HDFS中手动创建hbase目录,因为HBase会帮我们自动创建。

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://localhost:9000/hbase</value>
</property>
修改之后hbase-site.xml的<configuration>代码:

标红部分为我们需要注意的配置。我们在设置单节点的时候将hbase.unsafe.stream.capability.enforce属性值设置为了false,在这里我们需要注意设置它的值为true,或者干脆删除这个属性也是可以的。

配置完成之后,我们需要先启动Hadoop,然后启动HBase,最后输入jps查看启动的进程:

如果出现HMaster和HRegionServer以及HQuorumPeer三个服务则代表伪分布式环境已经搭建成功了。

在HDFS中验证
接下来我们进一步验证:在HDFS中检查HBase文件。

如果一切正常,HBase会在HDFS中自动建立自己的文件,在上述配置文件中,设置的文件位置为/hbase,我们输入hadoop fs -ls /hbase即可查看,如下图所示,分布式文件系统(HDFS)中hbase文件夹已经创建了:

编程要求
好了,到你啦,你需要先按照上次实训——HBase单节点安装的方式将HBase安装在/app目录下,然后根据本关知识配置好伪分布式的HBase,最后点击测评即可通关。

测试说明
程序会检测你的HBase服务和Hadoop服务是否启动,以及伪分布式HBase是否配置正确。

预期输出:

Hadoop 已启动
hbase-env.sh解压路径正确
Hbase已启动
各配置项配置成功!
Hbase的HDFS目录创建成功
伪分布式搭建成功!

开始你的任务吧,祝你成功!

---------------------答案分割-------------------------------------------------

1、创建文件夹

mkdir /app
cd /opt
ulimit -f 1000000
tar -zxvf hbase-2.1.1-bin.tar.gz -C /app

2、查看jdk目录并复制

echo $JAVA_HOME
/usr/lib/jvm/jdk1.8.0_111

3、编辑配置

vim /app/hbase-2.1.1/conf/hbase-env.sh
在最后面添加:export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111

4、编辑hbase-site.xml文件

vim /app/hbase-2.1.1/conf/hbase-site.xml

添加:

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
       <name>hbase.zookeeper.property.dataDir</name>
       <value>/root/data/hbase/zookeeper</value>
  </property>
  <property>     
  <name>hbase.unsafe.stream.capability.enforce</name>
        <value>true</value>
  </property>
</configuration>

5、添加环境变量

vim /etc/profile

把下方代码粘贴到最下边

# SET HBASE_enviroment 
HBASE_HOME=/app/hbase-2.1.1
export PATH=$PATH:$HBASE_HOME/bin

更新配置

source /etc/profile  

6、启动


先启动hadoop
输入:start-dfs.sh
再输入:start-hbase.sh
来启动HBase,接着输入jps查看是否启动成功,出现了HMaster进程即表示启动成功了。
如果出现HMaster和HRegionServer以及HQuorumPeer三个服务则代表伪分布式环境已经搭建成功了。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐