centos7 Hbase分布式集群部署

23 篇文章 0 订阅

一、Hbase概念剖析

Hbase 是Hadoop Database的简称,本质上来说就是Hadoop系统的数据库。

  1. Hbase 是Hadoop Database的简称,本质上来说就是Hadoop系统的数据库,为Hadoop框架当中的结构化数据提供存储服务,是面向列的分布式数据库。这一点与HDFS是不一样的,HDFS是分布式文件系统,管理的是存放在多个硬盘上的数据文件,而Hbase管理的是类似于Key—Value映射的表。
  2. Hbase底层仍然依赖HDFS来作为其物理存储,并且还需要Zookeeper协助提供部分配置服务,包括维护元信息和命名空间等。
  3. 可以将结构化和非结构化数据存储在Hadoop和HBase中 ,它们提供了多种访问数据的机制,例如Shell和其他API 。并且HBase以列式方式将数据存储为键/值对,而HDFS将数据存储为平面文件。
  4. 传统的关系型数据库,数据按照行进行存储,在进行查询时,需要使用大量的I/O,数据库必须大量膨胀才能满足性能要求,这在面对大规模数据处理任务时,计算性能受到极大的拖累,完全不适应大数据处理的需求。而Hbase的数据存储,数据是按列存储的,查询时只访问所涉及的列,大量降低系统I/O,数据类型一致,可以高效压缩存储。
    HBase中有Column Family的概念,简称为CF。CF一般用于将相关的列(Column)组合起来。上述例子中,“姓”和“名”组合成为info,组合的形式是类似于字典的key-value形式。在物理上HBase其实是按CF存储的,只是按照Row-key将相关CF中的列关联起来。
hadoop与hbase系统的一些显着特征:

Hadoop

1、针对大型文件的流式访问进行了优化;
2、遵循一次性写一读的意识形态;
3、不支持随机读/写;

HBase特点

1、以柱状方式存储键/值对(列作为列族聚集在一起);
2、提供对大型数据集中少量数据的低延迟访问;
3、提供灵活的数据模型;
4、Hadoop最适合离线批量处理类型,而有实时需求时使用HBase。

Hbase应用场景

HBase 解决不了所有的问题,但是针对某些特点的数据可以使用 HBase 高效地解决,如以下的应用场景。

1、 数据模式是动态的或者可变的,且支持半结构化和非结构化的数据。
2、 数据库中的很多列都包含了很多空字段,在 HBase 中的空字段不会像在关系型数据库中占用空间。
3、需要很高的吞吐量,瞬间写入量很大。
4、数据有很多版本需要维护,HBase 利用时间戳来区分不同版本的数据。
5、 具有高可扩展性,能动态地扩展整个存储系统。

总体来说:

Hbase对数据的存储方式和数据结构进行的修改和规整,使其更加善于去处理大数据的场景,在Hadoop MapReduce运行计算时能够提供更好的底层支持。
HBase 已成熟地应用于国内外的很多大公司,总之,HBase> 适合用来存储各种类型的大规模的数据,可为用户提供实时的在线查询,同时也支持离线的应用。

二、Hbase分布式集群部署

节点IP
Node1192.168.0.47
Node2192.168.0.32
Node3192.168.0.33
1、基础环境部署

这里和hadoop、Zookeeper做了整合,需要提前把hadoop与zookeeper部署一下,见下面文档,环境一致,可以直接套用

centos7 Hadoop集群部署
https://blog.csdn.net/oToyix/article/details/118520585

centos7 Zookeeper集群部署
https://blog.csdn.net/oToyix/article/details/118543765

2、Hbase软件下载&部署配置,操作指令如下:
wget -c http://archive.apache.org/dist/hbase/2.2.4/hbase-2.2.4-bin.tar.gz
tar -xzf hbase-2.2.4-bin.tar.gz
mkdir -p /data/
\mv hbase-2.2.4 /data/hbase/
useradd hadoop
chown -R hadoop:hadoop /data/hbase/
3、在Hadoop配置的基础上,配置环境变量HBASE_HOME,编辑 vim /etc/profile 在末尾加入如下代码:
export HBASE_HOME=/data/hbase/
export  PATH=$PATH:$HBASE_HOME/bin
4、vi /data/hbase/conf/hbase-env.sh,在配置文件中加入如下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_191/
5、配置vi /data/hbase/conf/hbase-site.xml文件,修改配置文件代码如下;
<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://node1:9000/hbase</value>
        </property>

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

        <property>
                <name>hbase.master.port</name>
                <value>60000</value>
        </property>

        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>node1:2181,node2:2181,node3:2181</value>
        </property>

        <property>
                <name>hbase.zookeeper.property.dataDir</name>
         <value>/usr/local/zookeeper/data</value>
        </property>
        <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
        </property>
</configuration>
6、配置Regionservers
vi /data/hbase/conf/regionservers  #去掉默认的localhost,加入:
node1
node2
node3
7、将Node1部署完成的Hbase所有文件、目录同步至node2和node3节点,操作指令如下:
for i in `seq 2 3`;do rsync -av /data/hbase root@node$i:/data/ ;done
8、启动与停止Hbase服务,操作指令如下;
[root@node1 ~]# /data/hbase/bin/start-hbase.sh

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.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]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.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]
node3: running zookeeper, logging to /data/hbase/bin/../logs/hbase-root-zookeeper-node3.out
node2: running zookeeper, logging to /data/hbase/bin/../logs/hbase-root-zookeeper-node2.out
node1: running zookeeper, logging to /data/hbase/bin/../logs/hbase-root-zookeeper-node1.out
running master, logging to /data/hbase/bin/../logs/hbase-root-master-node1.out
node3: running regionserver, logging to /data/hbase/bin/../logs/hbase-root-regionserver-node3.out
node2: running regionserver, logging to /data/hbase/bin/../logs/hbase-root-regionserver-node2.out
node1: running regionserver, logging to /data/hbase/bin/../logs/hbase-root-regionserver-node1.out

查看集群状态
/data/hbase/bin/hbase shell
status

[root@node1 ~]# /data/hbase/bin/hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.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
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.2.4, r67779d1a325a4f78a468af3339e73bf075888bac, 20200311日 星期三 12:57:39 CST
Took 0.0034 seconds                                                                                                                                        
hbase(main):001:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load
Took 1.0844 seconds                                                                                                                                        
hbase(main):002:0> exit

1个master 3个servers

当要停止hbase时输入stop-hbase.sh,过几秒后hbase就会被停止了。

/data/hbase/bin/stop-hbase.sh

用户通过浏览器访问Hbase WEB界面,如图所示:
http://192.168.0.47:16010
在这里插入图片描述

------------------end

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值