开发者社区> hbase小能手> 正文

HBase实操 | 使用Spark通过BulkLoad快速导入数据到HBase

简介: 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都会发布到这里。
+关注继续查看

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目录下


67744393990d85446552aeafd2b5403231b303c4

保存配置,并重新部署Spark客户端配置

3.Hive表示例数据查看

47960eb8bb09c76027007ccd2642b5dc5e739c54

3.Spark示例代码



1.使用Maven创建Scala示例工程,pom.xml文件内容如下:

fd506d1fb8caf3054b2de45c7ba526782a8402cd

2.在工程中创建Hive2HBase.scala文件,内容如下:

a9852d25efea7b85942de92e759f5b926615183a

7b49c80d5e685442066347d9da5e04d52b5b004e

4d156f4bdfa5b72b9a8353667566a9d7b0bd5ee0

ccfa4c68c5a08254b2b0b2a6858f17bc9fb64d40

9a27d36286a432916a44199340efe3d13ffef28e

8dda61bd0e4ee4e0d188972b14705bb1076f5a9d

查看表数据

0ac8b8ec9fb54f9eed9d5ba6d0c954a6dab4b32a


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举办城市调研,欢迎大家积极参与。

697b08d2675fce358d6870b930704dab867be742

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

21898fcddd2cf701ebcc4d392de1d36451b8c719

d3f2f0da5b6761a64c7049db7719525a2c492a0c

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

c77a5a6c913cdf0b6e23f5c5a4c21ff46fb76af2


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Dataset之babyboom.dat:babyboom.dat数据集的简介、安装、使用方法之详细攻略
Dataset之babyboom.dat:babyboom.dat数据集的简介、安装、使用方法之详细攻略
48 0
Hybris商品图片导入与压缩有关的配置
1.   在电脑上安装 ImageMagick 软件(windows平台还需要安装VC++),下载路径:http://www.imagemagick.org/script/download.php#windows 在local.
1081 0
Search 通过 Kibana—Elastic Stack 实战手册
在 TO B 行业,对商品的搜索展示,是有一定业务要求的,例如:存在合作关系的买家和供应商才能看到供应商店铺的商品,不存在合作关系的买家则不展示商品。另外,有些商品对客户甲展示一种价格,对客户乙则展示另外一种价格,从而区分不同的会员、分组对商品价格的区别。
222 0
Android Studio 通过一个登录功能介绍SQLite数据库的使用
前言:         SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
4309 0
iOS10 适配 ATS(app支持https通过App Store审核) 韩俊强的博客
一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全;而对于接收端,在SSL/TSL将接收的数据包解密之后,将数据传给HTTP协议层,就是普通的HTTP数据。
967 0
Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
在Android中,TextView是我们最常用的用来显示文本的控件。 <p>  一般情况下,TextView中的文本都是一个样式。那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。</p> <p><br></p> <p>   res-layout-main.xml</p
1306 0
+关注
hbase小能手
HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。阿里云HBase技术团队共同探讨HBase及其生态的问题。
112
文章
338
问答
来源圈子
更多
相关文档: 云原生多模数据库Lindorm
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载