千家信息网

Hadoop 部署之 HBase (四)

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,一、HBase是什么HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据
千家信息网最后更新 2025年02月03日Hadoop 部署之 HBase (四)

一、HBase是什么

  • HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。
  • HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。
  • 它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的一部分。
  • 人们可以直接或通过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。 HBase在Hadoop的文件系统之上,并提供了读写访问。

HBase 和 HDFS

HDFSHBase
HDFS是适于存储大容量文件的分布式文件系统。HBase是建立在HDFS之上的数据库。
HDFS不支持快速单独记录查找。HBase提供在较大的表快速查找
它提供了高延迟批量处理;没有批处理概念。它提供了数十亿条记录低延迟访问单个行记录(随机存取)。
它提供的数据只能顺序访问。HBase内部使用哈希表和提供随机接入,并且其存储索引,可将在HDFS文件中的数据进行快速查找。

HBase的存储机制

HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。总之,在一个HBase:

  • 表是行的集合。
  • 行是列族的集合。
  • 列族是列的集合。
  • 列是键值对的集合。

二、HBase 集群部署

1、下载安装

# 下载安装包wget http://archive.apache.org/dist/hbase/1.2.6/hbase-1.2.6-bin.tar.gz# 解压安装包tar xf hbase-1.2.6-bin.tar.gzmv hbase-1.2.6 /usr/local/hbase# 创建目录mkdir -p /home/hbase/{log,pid,tmp}

2、配置 HBase 环境变量

编辑文件/etc/profile.d/hbase.sh

# HBASE ENVexport HBASE_HOME=/usr/local/hbaseexport PATH=$PATH:$HBASE_HOME/bin

使HADOOP环境变量生效

source /etc/profile.d/hbase.sh

三、HBase 配置(namenode01)

1、配置 hbase-env.sh

编辑文件/usr/local/hbase/conf/hbase-env.sh,修改如下信息。

export JAVA_HOME=/usr/java/defaultexport HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoopexport HBASE_LOG_DIR=/home/hbase/logexport HBASE_PID_DIR=/home/hbase/pidexport HBASE_MANAGES_ZK=false

2、配置region服务器 regionservers

编辑文件/usr/local/hbase/conf/regionservers,修改为如下。

datanode01datanode02datanode03

3、配置列式存储 hbase-site.xml

编辑文件/usr/local/hbase/conf/hbase-site.xml,修改为如下。

                              hbase.rootdir                hdfs://namenode01:9000/hbase                                        hbase.tmp.dir                /home/hbase/tmp                                        hbase.cluster.distributed                true                                        hbase.master.port                60000                                        hbase.master.info.port                60010                                        hbase.regionserver.port                60020                                        hbase.regionserver.info.port                60030                                        hbase.zookeeper.property.clientPort                2181                                        zookeeper.session.timeout                120000                                        hbase.zookeeper.quorum                zk01:2181,zk02:2181,zk03:2181                                        hbase.zookeeper.property.maxClientCnxns                300        

4、将配置文件复制到其他节点

cd /usr/local/hbase/confscp * datanode01:/usr/local/hbase/conf scp * datanode02:/usr/local/hbase/confscp * datanode03:/usr/local/hbase/conf

四、HBase 启动

1、在namenode01执行

start-hbase.sh

2、检查 HBase

[root@namenode01 conf]# jps14512 NameNode14786 ResourceManager15204 HMaster15405 Jps[root@datanode01 ~]# jps3509 DataNode3621 NodeManager3238 HRegionServer1097 QuorumPeerMain3839 Jps[root@datanode02 ~]# jps3668 Jps3048 HRegionServer3322 DataNode3434 NodeManager1101 QuorumPeerMain[root@datanode03 ~]# jps3922 DataNode4034 NodeManager4235 Jps1102 QuorumPeerMain3614 HRegionServer

3、HBase 的 WEB 界面

访问 http://192.168.1.200:60010/master-status

访问 http://192.168.1.201:60030/rs-status

4、进入 hbase shell 验证

[root@namenode01 ~]# hbase shellSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.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; enter 'help' for list of supported commands.Type "exit" to leave the HBase ShellVersion 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017hbase(main):001:0> listTABLE                                                                                                                                                        0 row(s) in 0.2210 seconds=> []hbase(main):002:0> status1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load
0