你的位置:首页 > 数据库

[数据库]大数据: 完全分布式Hadoop集群


        HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库。它是面向列的,并适合于存储超大型松散数据。HBase适合于实时,随机对Big数据进行读写操作的业务环境。

 

本文基本环境:

Centos 7   Linux Master 3.10.0-229.el7.x86_64

Hadoop-2.7.1 完全分布式 3台机

Hbase-1.1.2  HBase官网下载 hbase-1.1.2-bin.tar.gz

三台虚拟机主机名: Master Slaver1 Slaver2


进行软件部署

1. 使用 root 用户将 hbase-1.1.2-bin.tar.gz 包解压并放在 /home/app 下,给予 hadoop 用户权限 。

    tar –xvzf hbase-1.1.2-bin.tar.gz

    chown –R hadoop:hadoop hbase-1.1.2

    image

    添加环境变量

    export HBASE_HOME=/home/app/hbase-1.1.2

2. 编辑配置文件

vi  /home/app/hbase-1.1.2/conf/hbase-site.
<configuration>    <property>        <name>hbase.rootdir</name>        <value>hdfs://Master:9000/hbase</value>    </property>    <property>        <name>hbase.cluster.distributed</name>        <value>true</value>    </property>    <property>        <name>hbase.master</name>        <value>hdfs://Master:60000</value>    </property>    <property>        <name>hbase.zookeeper.quorum</name>        <value>Master,Slaver1,Slaver2</value>    </property>  </configuration>

第一个属性指定本机的hbase的存储目录;

第二个属性指定hbase的运行模式,true代表全分布模式;

第三和第四个属性是关于Zookeeper集群的配置。我的本地暂时没有安装Zookeeper,可以不配置该项。

    修改regionservers,在regionservers文件中添加如下内容:

    Slaver1

    Slaver2


此处配置需要注意标红部分,然后 hbase.zookeeper.quorum 的value里面写主机名,当然最好是部署奇数个,偶数个不是不可以的,但是zookeeper集群是以宕机个数过半才会让整个集群宕机的,所以奇数个集群更佳。

其中首先需要注意 hdfs://dm4:9000/hbase 这里,必须与你的Hadoop集群的 core-site.

再者就是Hbase该项并不识别机器IP,只能使用机器 hostname才可行,即若使用Master的IP: 10.10.10.10 是会抛出java错误,至于具体的错误这里就不再关注。

 

修改 hbase-env.sh 文件

export JAVA_HOME=/usr/java/jdk1.8.0_60,本处写法 /usr/java/latest 是指向默认安装的jdk的。

还需要添加 HBASE_HOME/HADOOP_HOME,这些框架都无法直接获取本地环境变量,不知是否存在某处错误引起

image

 

启动HBase


启动hbase时要确保hdfs已经启动。在主节点上执行: start-hbase.sh

    启动成功后集群会多出如下进程:

    Namenode:

    image

    Datanode:

    image


 

总结:

        这样本次安装Hbase-1.1.2 就完成了。整个过程没有太多难点。只要关注细节还是无脑配置。