HBase社区直播本期分享专家:明惠(网名:过往记忆)-阿里云数据架构师
视频地址:
https://yq.aliyun.com/live/590?spm=a2c4e.11155435.0.0.460177969kCLxf
PPT地址:
https://yq.aliyun.com/download/3033
PS:欢迎关注HBase+Spark团队号 https://yq.aliyun.com/teams/382 博客,问答,直播,各类HBase资料,线下meetup都会发布到这里。
1.文档编写目的
在项目中有需求需要将Hive表中的数据存储在HBase中。使用Spark访问Hive表,将读表数据导入到HBase中,写入HBase有两种方式:一种是通过HBase的API接口批量的将数据写入HBase,另一种是通过BulkLoad的方式生成HFile文件然后加载到HBase中,两种方式相比之下第二种效率会更高。本篇文章Fayson主要介绍如何使用Spark读取Hive表数据通过BulkLoad的方式快速的将数据导入到HBase。
-
文章概述
1.环境准备
2.示例代码及运行
3.总结
-
测试环境
1.CM5.14.3和CDH5.14.2
2.集群未启用Sentry和Kerberos
3.Spark1.6.0
2.环境准备
本篇文章主要使用HBase中hbase-spark包提供的HBaseContext来实现,需要准备hbase-spark的依赖包并部署到Spark集群。
1.将准备好的hbase-spark-1.2.0-cdh5.13.1.jar部署到集群所有节点的/opt/cloudera/parcels/CDH/lib/spark/lib目录下
保存配置,并重新部署Spark客户端配置
3.Hive表示例数据查看
3.Spark示例代码
1.使用Maven创建Scala示例工程,pom.xml文件内容如下:
2.在工程中创建Hive2HBase.scala文件,内容如下:
查看表数据
5.总结
1.本篇文章是使用hbase-spark包中提供的bulkload方法生成HFile文件,然后将生成的文件导入到HBase表中。
2.使用bulkload的方式导入数据到HBase表时,在load HFile文件到表过程中会有短暂的时间导致该表停止服务(在load文件过程中需要先disable表,load完成后在enable表。
3.需要使用hbase用户提交Spark作业
GitHub地址:
https://github.com/fayson/cdhproject/blob/master/sparkdemo/src/main/scala/com/cloudera/hbase/Hive2HBase.scala
HBase直播主题调研,以及2019年HBase Meetup举办城市调研,欢迎大家积极参与。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
大家工作学习遇到HBase技术问题,把问题发布到HBase技术社区论坛http://hbase.group,欢迎大家论坛上面提问留言讨论。想了解更多HBase技术关注HBase技术社区公众号(微信号:hbasegroup),非常欢迎大家积极投稿。
HBase技术交流社区 - 阿里官方“HBase生态+Spark社区大群”点击加入:https://dwz.cn/Fvqv066s