[关闭]
@evilking 2018-05-15T14:46:44.000000Z 字数 3667 阅读 1149

大数据平台篇

HBase搭建

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统"。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

HBase下载

HBase清华源下载地址为: http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/

里面有HBase的各个版本,我们演示使用的是hbase-1.2.5版本

如hive压缩包一样,我们通过SecureFX工具将下载好的hbase压缩包传到虚拟机上,比如/home/evilking/Document/目录下,然后解压并移动到/opt/下,命令如下:

[evilking@master Documents]$ tar -xvf hbase-1.2.5-bin.tar.gz

[evilking@master Documents]$ sudo mv hbase-1.2.5 /opt/hbase

HBase环境变量配置

[evilking@master hbase]$ sudo vim /etc/profile

hbase环境变量配置

其中:

export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin

然后使用 source /etc/profile 命令使环境变量修改生效


HBase配置文件修改

切换到 $HBASE_HOME/conf/目录下:

[evilking@master hbase]$ cd $HBASE_HOME/conf

[evilking@master conf]$

修改hbase-site.xml文件

<configuration>

    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://192.168.56.102:9000/hbase</value>
    </property>

    <property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
    </property>

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


    <property>
        <name>hbase.master</name>
        <value>192.168.56.102:6000</value>
    </property>


    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>hdfs://192.168.56.102:9000/hbase_property_dataDir</value>
    </property>

    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>192.168.56.102</value>
    </property>

</configuration>

其中在hdfs上利用到了两个目录/hbase和/hbase_property_dataDir,所以要在hadoop上创建这两个目录:

[evilking@master hbase]$ hadoop fs -mkdir /hbase

[evilking@master hbase]$ hadoop fs -mkdir /hbase_property_dataDir

修改hbase-env.sh文件

[evilking@master conf]$ vim hbase-env.sh

其中,设置JAVA_HOME

hbase-env设置


修改regionservers文件

[evilking@master conf]$ vim regionservers

因为我们搭建的是伪分布式,所以regionservers文件中只需要添加 master 节点就可以了

修改regionservers文件


启动HBase

伪分布式的配置就算完成了,下面我们启动HBase,同hive一样,hbase的数据都是放在hdfs上,所以我们一样要先通过 start-all.sh 脚本来启动hadoop


然后通过 start-hbase.sh 来启动hbase,可以通过 jps命令查看启动了哪些集群组件:

#启动hbase之前
[evilking@master hbase]$ jps
14690 Jps
12126 RESTServer
8840 SecondaryNameNode
8667 DataNode
8530 NameNode

#启动hbase
[evilking@master hbase]$ bin/start-hbase.sh 
192.168.56.102: starting zookeeper, logging to /opt/hbase/bin/../logs/hbase-evilking-zookeeper-master.out
starting master, logging to /opt/hbase/logs/hbase-evilking-master-master.out
master: starting regionserver, logging to /opt/hbase/bin/../logs/hbase-evilking-regionserver-master.out

#查看启动hbase之后的组件
[evilking@master hbase]$ jps
15159 HRegionServer
15022 HMaster
14949 HQuorumPeer
12126 RESTServer
8840 SecondaryNameNode
8667 DataNode
8530 NameNode
15499 Jps

[evilking@master hbase]$

可以看到,HRegionServer进程和 HMaster进程已经启动起来了


下面启动 RESTServer进程:

#启动RESTServer进程
[evilking@master hbase]$ bin/hbase-daemon.sh start rest
starting rest, logging to /opt/hbase/logs/hbase-evilking-rest-master.out

[evilking@master hbase]$ jps
15159 HRegionServer
15022 HMaster
15792 Jps
14949 HQuorumPeer
8840 SecondaryNameNode
8667 DataNode
8530 NameNode
15686 RESTServer

[evilking@master hbase]$

通过 jps命令看到该 RESTServer服务在后台已经启动。


#启动hbase shell,可以运行hbase命令
[evilking@master hbase]$ bin/hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.5, rd7b05f79dee10e0ada614765bb354b93d615a157, Wed Mar  1 00:34:48 CST 2017

#运行hbase命令,查看当前数据库中有哪些表
hbase(main):001:0> list
TABLE                                                                           
0 row(s) in 0.3810 seconds

=> []

hbase(main):002:0>

可以看到hbase命令正常运行,则说明到这里 HBase 伪分布式就算部署完成了

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注