HBase2.1分布式部署

一、部署环境及Hbase各组件简介

Hbase组件简介

1.Client

Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。

2.Zookeeper

HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:
通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务
通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息
通过Zoopkeeper存储元数据的统一入口地址

3.Hmaster(类似于NameNode)

master节点是整个Hbase的管理者,其主要职责如下:
1.监控RegionServer
2.处理RegionServer故障转移
3.处理元数据的变更,处理表级别的增删改查(ddl)
4.处理region的分配或转移
5.在空闲时间进行数据的负载均衡
6.通过Zookeeper发布自己的位置给客户端

4.regionServer(类似于DataNode)

regionServer直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:
1.负责存储HBase的实际数据,负责表内数据的增删改查(dml)
2.处理分配给它的Region
3.刷新缓存到HDFS
4.维护Hlog
5.执行压缩
6.负责处理Region分片

5.Region

Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region

部署环境

Hadoop版本:hadoop-2.7.5
部署参考:https://www.cnblogs.com/panwenbin-logs/p/8666589.html

zookeeper版本:zookeeper-3.4.12
部署参考:https://www.cnblogs.com/panwenbin-logs/p/10369402.html

hosts:
192.168.1.131 hadoop01
192.168.1.132 hadoop02
192.168.1.133 hadoop03

sed -i 's#\# StrictHostKeyChecking ask#StrictHostKeyChecking no#' /etc/ssh/ssh_config
systemctl restart sshd

配置节点直接免密登录
时间同步
关闭或放行相关端口

二、配置安装

1.下载安装包

资源下载地址:https://archive.apache.org/dist/hbase/

wget https://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz
tar xf hbase-2.1.0-bin.tar.gz -C /usr/local
cd  /usr/local
ln -sv hbase-2.1.0-bin hbase

2.修改HBase配置文件

hbase-env.sh

vim /usr/local/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/local/java8
export HBASE_MANAGES_ZK=false  #不使用内置zookeeper

hbase-site.xml

vim /usr/local/hbase/conf/hbase-site.xml
<configuration>
    <!-- HBase数据在HDFS中的存放的路径 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop01:9000/hbase</value>
    </property>
    <!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会
             运行在同一个JVM里面 -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <!-- ZooKeeper的地址 -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop01,hadoop02,hadoop03</value>
    </property>
    <!-- ZooKeeper快照的存储位置 -->
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/Data/zookeeper</value>
    </property>
    <!-- V2.1版本,在分布式情况下, 设置为false -->
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>

3.配置环境变量

vim /etc/profile.d/hbase.sh 
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin

4.复制jar包到lib

cp /usr/local/hbase/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar /usr/local/hbase/lib/  #如果你后续需要使用phoenix的话需要拷贝

5.修改regionservers文件

vim /usr/local/hbase/conf/regionservers 
hadoop01
hadoop02
hadoop03

6.同步配置

#加载环境变量和软链参考上面步骤
scp -r /etc/profile.d/hbase.sh hadoop02:/etc/profile.d/
scp -r /usr/local/hbase-2.1.0/ hadoop02:/usr/local/
scp -r /etc/profile.d/hbase.sh hadoop03:/etc/profile.d/
scp -r /usr/local/hbase-2.1.0/ hadoop03:/usr/local/

7.启动HBase

#启动所有mater及regionserver所有节点
start-hbase.sh
#启动指定服务,此时可以不配置regionservers文件
hbase-daemon.sh start master|regionserver

三、验证

hbase shell客户端

hbase shell
hbase(main):001:0> status
1 active master, 2 backup masters, 3 servers, 0 dead, 0.6667 average load

hbase shell客户端

http://hadoop01:16010/

相关端口

16000 master进程RPC端口
16010 master进程http端口
16020 Region Servers进程端口
16030 Region Servers进程RPC端口

 

四、指定backup master 

#如果我们需要指定backup server那么还是可以通过1.X版本通过配置文件的方式添加
vim /usr/local/hbase/conf/backup-masters hadoop02 hadoop03

#同步到其他节点重启服务即可

 




 

posted @ 2023-03-28 10:05  百衲本  阅读(84)  评论(0编辑  收藏  举报
cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif; font-size: 15px; } cnblogs_post_body h1 { text-align:center; background: #333366; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 23px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h2 { text-align:center; background: #006699; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 20px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h3 { background: #2B6695; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } 回到顶部 博客侧边栏 回到顶部 页首代码 回到顶部 页脚代码