[关闭]
@xiaoxiaowang 2019-07-20T12:36:04.000000Z 字数 3525 阅读 1087

Springboot快速教程---Docker搭建与整合Hbase

Springboot Hbase


Hbase简介

HBase是Hadoop的生态系统,是建立在Hadoop文件系统(HDFS)之上的分布式、面向列的数据库,通过利用Hadoop的文件系统提供容错能力。如果你需要进行实时读写或者随机访问大规模的数据集的时候,请考虑使用HBase!

HBase作为Google Bigtable的开源实现,Google Bigtable利用GFS作为其文件存储系统类似,则HBase利用Hadoop HDFS作为其文件存储系统;Google通过运行MapReduce来处理Bigtable中的海量数据,同样,HBase利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。

HDFS与HBase比较

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

特征

一些概念

Docker安装步骤

拉取镜像

Dockerhub上有很多镜像,找了一个不错的https://hub.docker.com/r/harisekhon/hbase

一般能用到的镜像,这哥们都给整理了https://github.com/HariSekhon/Dockerfiles

docker pull harisekhon/hbase

启动脚本

  1. docker run -d -h docker-hbase \
  2. -p 2181:2181 \
  3. -p 8080:8080 \
  4. -p 8085:8085 \
  5. -p 9090:9090 \
  6. -p 9000:9000 \
  7. -p 9095:9095 \
  8. -p 16000:16000 \
  9. -p 16010:16010 \
  10. -p 16201:16201 \
  11. -p 16301:16301 \
  12. -p 16020:16020\
  13. --name hbase \
  14. harisekhon/hbase

简单说一下

  1. -d 表示后台运行
  2. -h 该容器的hostdocker-hbase
  3. -p 宿主机端口:容器端口
  4. --name 该容器的名字

可以看下简易教程

Hbase用到的端口

hbase对应的端口(harisekhon/hbase 修改了默认端口:)

  1. # Stargate 8080 / 8085
  2. # Thrift 9090 / 9095
  3. # HMaster 16000 / 16010
  4. # RS 16201 / 16301
  5. EXPOSE 2181 8080 8085 9090 9095 16000 16010 16201 16301

设置host

在服务的host文件中设置如下映射

  1. 127.0.0.1 docker-hbase

界面

http://localhost:16010/master-status

图示

可在(Gist)[https://gist.github.com/7163422771a9f1ba64991fc7ac5f7087#file-note-md]上查看

常用命令

容器起来后,我们进入容器内部,执行docker exec -ti e60a300f7749 /bin/bash
然后再执行hbase shell得到如下

  1. bash-4.4# hbase shell
  2. 2019-07-20 08:47:19,876 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  3. HBase Shell
  4. Use "help" to get list of supported commands.
  5. Use "exit" to quit this interactive shell.
  6. For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
  7. Version 2.1.1, rb60a92d6864ef27295027f5961cb46f9162d7637, Fri Oct 26 19:27:03 PDT 2018
  8. Took 0.0222 seconds
  9. hbase(main):001:0>

我们可以使用help 'create'的方法查看某命令的使用帮助

例如创建一个菜谱表,调味料为一个列族(类),食材则为另一个列族(类),脚本为create 'cookbook','seasoning','ngredients'

例如:向’t1’表中添加rowkey=002,family=ad,column=pv,value=1000,时间戳默认
put 't1','002','ad:pv','1000'
- 删除rowkey=002的所有数据deleteall 't1','002'
- 删除rowkey=002中ad:pv数据delete 't1','002','ad:pv'
- 清空表truncate 't1'
- 统计行数count 't1'
- 查询表t1中的行数,每100条显示一次count 't1',{INTERVAL=>100}

springboot整合hbase

这里使用的是hbase-client
代码在github上,直接可以用

  1. .
  2. ├── README.md
  3. ├── pom.xml
  4. ├── quick-hbase.iml
  5. └── src
  6. ├── main
  7.    ├── java
  8.       └── com
  9.       └── quick
  10.       └── hbase
  11.       ├── HbaseApplication.java
  12.       └── config
  13.       ├── HBaseClient.java
  14.       ├── HbaseConfig.java
  15.       └── HbaseProperties.java
  16.    └── resources
  17.    ├── application.yml
  18.    └── log4j.properties
  19. └── test
  20. └── java
  21. └── com
  22. └── quick
  23. └── hbase
  24. └── config
  25. └── HBaseClientTest.java

相关参考

w3cSchool

Hbase原理、基本概念、基本架构

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注