HBase实操 | 如何使用HBase存储图片

1.文档编写目的



Fayson在前面的文章中介绍了《如何使用HBase存储文本文件》和《如何使用Lily HBase Indexer对HBase中的数据在Solr中建立索引》,实现了文本文件保存到HBase中,并基于Solr实现了文本文件的全文检索。如果我们碰到的是图片文件呢,该如何保存或存储呢。本文主要描述如何将图片文件转成sequence file,然后保存到HBase。



内容概述

1.文件处理流程

2.准备上传文件的Java代码

3.运行代码

4.Hue中查询验证



测试环境

1.RedHat7.4

2.CM5.14.3

3.CDH5.14.2

4.集群未启用Kerberos



2.图片处理流程
HBase实操 | 如何使用HBase存储图片_第1张图片
1.如上图所示,Fayson先在本地准备了一堆图片文件,并上传到HDFS。
HBase实操 | 如何使用HBase存储图片_第2张图片
上传到HDFS

HBase实操 | 如何使用HBase存储图片_第3张图片

2.然后通过Java程序遍历所有图片生成一个Sequence File,然后把Sequence File入库到HBase,在入库过程中,我们读取图片文件的文件名作为Rowkey,另外将整个图片内容转为bytes存储在HBase表的一个column里。


3.最后可以通过Hue来进行查看图片,当然你也可以考虑对接到你自己的查询系统。




3.准备上传文件的Java代码




1.首先是准备Maven文件


HBase实操 | 如何使用HBase存储图片_第4张图片

HBase实操 | 如何使用HBase存储图片_第5张图片

HBase实操 | 如何使用HBase存储图片_第6张图片


.2、准备上传文件到HBase的Java代码


HBase实操 | 如何使用HBase存储图片_第7张图片

HBase实操 | 如何使用HBase存储图片_第8张图片

HBase实操 | 如何使用HBase存储图片_第9张图片

HBase实操 | 如何使用HBase存储图片_第10张图片

HBase实操 | 如何使用HBase存储图片_第11张图片


4.运行代码




1.首先我们在HBase中建一张表用来保存文本文件


HBase实操 | 如何使用HBase存储图片_第12张图片

2.注意修改代码中的配置项,如文本文件所在的HDFS目录,集群的Zookeeper地址等。将代码打成jar包并上传到集群服务器节点。该过程略。


3.准备执行脚本


2.注意修改代码中的配置项,如文本文件所在的HDFS目录,集群的Zookeeper地址等。将代码打成jar包并上传到集群服务器节点。该过程略。


3.准备执行脚本


HBase实操 | 如何使用HBase存储图片_第13张图片


4.执行脚本


HBase实操 | 如何使用HBase存储图片_第14张图片


脚本执行完毕,成功入库


HBase实操 | 如何使用HBase存储图片_第15张图片


5.使用HBase shell检查,入库12条,全部入库成功。


HBase实操 | 如何使用HBase存储图片_第16张图片


5.Hue中查询验证




1.从Hue中进入HBase的模块


HBase实操 | 如何使用HBase存储图片_第17张图片


单击某个column,可以查看整个图片


HBase实操 | 如何使用HBase存储图片_第18张图片


2.查询某一个Rowkey进行测试


HBase实操 | 如何使用HBase存储图片_第19张图片


本文所使用的代码源码GitHub地址:

https://github.com/fayson/cdhproject/blob/master/hbasedemo/src/main/java/com/cloudera/hbase/SequenceFileTest.java


d3f2f0da5b6761a64c7049db7719525a2c492a0c

大家工作学习遇到HBase技术问题,把问题发布到HBase技术社区论坛http://hbase.group,欢迎大家论坛上面提问留言讨论。想了解更多HBase技术关注HBase技术社区公众号(微信号:hbasegroup),非常欢迎大家积极投稿。


096973d69f34b1380151180fd0a8ff2cade5bced


HBase技术交流社区 - 阿里官方“HBase生态+Spark社区大群”点击加入:https://dwz.cn/Fvqv066s

你可能感兴趣的:(HBase实操 | 如何使用HBase存储图片)