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

  

posted @   Oops!#  阅读(733)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2018-05-18 通过rinetd实现端口转发,同时访问阿里云RDS的内外网
2017-05-18 CentOS安装PPTP VPN Client详解
点击右上角即可分享
微信分享提示