HBase完全分布式安装

环境

Linux:Centos Linux 7.3
JDK:jdk1.8.0_181
Hadoop:2.8.5
Zookeeper:3.4.13
HBase:1.4.8

服务器
bigdata01:192.168.1.50 (主节点)
bigdata02:192.168.1.51
bigdata03:192.168.1.52

安装步骤
1,下载hbase安装包hbase-1.4.8-bin.tar.gz,并上传到bigdata01服务器的/opt目录中。
2,解压安装包,

tar -zvxf hbase-1.4.8-bin.tar.gz

然后将目录hbase-1.4.8修改为hbase,

mv hbase-1.4.8 hbase

3,进入hbase的conf目录,编辑hbase-env.sh文件,修改JAVA_HOME,

export JAVA_HOME=/usr/local/java/jdk1.8.0_181

因为我们用的jdk1.8,所以注释掉下面两行,

# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"


这两个配置是用于jdk1.7的;
HBASE_MANAGES_ZK变量, 此变量默认为true,告诉HBase是否启动/停止ZooKeeper集合服务器作为HBase启动/停止的一部分。如果为true,这Hbase把zookeeper启动,停止作为自身启动和停止的一部分。如果设置为false,则表示独立的Zookeeper管理。我们将其设置为false,

export HBASE_MANAGES_ZK=false

修改Hbase堆设置,将其设置成4G,

export HBASE_HEAPSIZE=4G

然后保存文件。
4,接下来编辑配置文件hbase-site.xml,

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>bigdata01:2181,bigdata02:2181,bigdata03:2181</value>
<description>The directory shared by RegionServers.
</description>
</property>	
<property>
<name>hbase.rootdir</name>
<value>hdfs://bigdata01:9666/hbase</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed ZooKeeper
true: fully-distributed with unmanaged ZooKeeper Quorum (see hbase-env.sh)
</description>
</property>
</configuration>

  



hbase.zookeeper.quorum: 这个参数是用来设置zookeeper服务列表,每个服务器之间使用使用逗号分隔,2181是zookeeper默认端口号,你可以自行根据你的端口号添加,默认的端口号加不加都无所谓。
hbase.rootdir: 这个参数是用来设置RegionServer 的共享目录,用来存放HBase数据。特别需要注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致。
hbase.cluster.distributed: HBase 的运行模式。为 false 表示单机模式,为 true 表示分布式模式。

5,编辑regionservers文件,配置从服务器,去掉 localhost,添加 slaves 节点

bigdata02
bigdata03

6,把 hadoop 的 hdfs-site.xml 复制一份到 hbase 的 conf 目录下,

cp /opt/hadoop/etc/hadoop/hdfs-site.xml /opt/hbase/conf/

7,将配置好的 habase 分发到其它节点对应的路径下

scp -r /opt/hbase root@bigdata02:/opt/
scp -r /opt/hbase root@bigdata03:/opt/

8,分别在三台服务器上增加HBASE_HOME环境变量,修改vim /etc/profile

export HBASE_HOME=/opt/hbase

export PATH=$HBASE_HOME/bin:$PATH


使配置生效

source /etc/profile

9,同步服务器时间,我们在使用HDFS的时候经常会出现一些莫名奇妙的问题,通常可能是由于多台服务器的时间不同步造成的。我们可以使用网络时间服务器进行同步。
安装ntpdate工具

yum -y install ntp ntpdate

设置系统时间与网络时间同步

ntpdate cn.pool.ntp.org

将系统时间写入硬件时间

hwclock --systohc

查看系统时间

timedatectl

10,在 bigdata01上输入:start-hbase.sh,启动hbase

等待启动完成,在每个节点上输入 jps 命令,查看进程

 

出现以上进程表 hbase 明启动成功了。
通过浏览器访问http://bigdata01:16010可以查看hbase 集群状态。

实例配置:

Hbase 分布式集群搭建 需在 hadoop集群, zookeeper集群建立的基础上创建 

[root@hadoop000 conf]# cat hbase-site.xml 
*****

<configuration>
        
          <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop000:8020/hbase</value>
    </property>


     <property>
        <name>hbase.master.info.port</name>
        <value>60010</value>
 </property>


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

   <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop000,hadoop001,hadoop002</value>
    </property>


</configuration>

  

[root@hadoop000 conf]# cat hbase-env.sh |grep -v "^#"

export JAVA_HOME=/home/JDK/jdk1.8.0_181

export HBASE_OPTS="-XX:+UseConcMarkSweepGC"

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"


 export HBASE_MANAGES_ZK=false

  

[root@hadoop000 conf]# cat regionservers 
hadoop001
hadoop002

  

[root@hadoop001 conf]# cat hbase-site.xml

<configuration>
        
          <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop000:8020/hbase</value>
    </property>


     <property>
        <name>hbase.master.info.port</name>
        <value>60010</value>
 </property>


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

   <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop001,hadoop002,hadoop000</value>
    </property>


</configuration>

  

[root@hadoop001 conf]# cat hbase-env.sh |grep -v "^#"

export JAVA_HOME=/home/jdk8


export HBASE_OPTS="-XX:+UseConcMarkSweepGC"

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"


 export HBASE_MANAGES_ZK=false

  

[root@hadoop001 conf]# cat regionservers 
hadoop001
hadoop002

  

原文地址:https://www.cnblogs.com/weifeng1463/p/10886655.html