HBase+Spark社区 关注
手机版

HBase实战 | Hive数据导入云HBase

  1. 云栖社区>
  2. HBase+Spark社区>
  3. 博客>
  4. 正文

HBase实战 | Hive数据导入云HBase

hbase小能手 2018-11-14 16:56:24 浏览210 评论0

摘要: 网络环境 专线:用户需要把hbase集群的VPC相关网络信息配置到专线里面,可直通hbase环境 公有云虚拟机VPC环境:选择和hbase通VPC 其他:需要开hbase公网 注意:默认导入hbase数据,依赖的hbase-common、hbase-client、hbase-server、hbase-protocol使用社区的包即可。

网络环境
  1. 专线:用户需要把hbase集群的VPC相关网络信息配置到专线里面,可直通hbase环境

  2. 公有云虚拟机VPC环境:选择和hbase通VPC

  3. 其他:需要开hbase公网

  4. 注意:默认导入hbase数据,依赖的hbase-common、hbase-client、hbase-server、hbase-protocol使用社区的包即可。如果是公网需要使用云hbase发布的相关包


方案一:hive关联hbase表方式

  1. 适用场景:数据量不大4T以下(因为需要走hbase的api导入数据)

  2. 从hbase页面获取zk连接地址,并用下述方式启动hive客户端d2b063460c929005b1ca45c3154f49e61cfedccf
  1. hbase表不存在的情况

  • 创建hive表hive_hbase_table映射hbase表base_table,会自动创建hbase表hbase_table,且会随着hive表删除而删除。这里需要指定hive的schema到hbase schema的映射关系。关于类型可参考Hive/HBaseIntegration

2d0da347a119a991ea4843b50be95580fa61e82f
  • 创建一张原始的hive表,准备一些数据
04c0746a6161a4a1e245b44ec67b345236adcad6

  • 把hive原表hive_data中数据,通过hive表hive_hbase_table导入到hbase的表hbase_table中


76c87d89f97f6a15cdee03f09f8ffc5c70b35891
  • 查看hbase表hbase_table中是否有数据
 6551c51c0c442760bfdb3b2115f654ac227a21a4


  1. hbase表存在的情况

  • 创建hive的外表关联hbase表,注意hive schema到hbase schema的映射关系。删除外表不会删除对应hbase表

c19a0939e80e3e4d89e105c4db6377bd915eb173
  • 其他导入数据相关同2


方案二:hive表生成hfile,通过bulkload导入到hbase

  1. 适用场景:数据量大(4T以上)

  2. 把hive数据转换为hfile

  • 启动hive并添加相关hbase的jar包

314f03a7bba96f55b114743b63688b18cdc65d65

  • 创建一个outputformat为HiveHFileOutputFormat的hive表

  • 其中/tmp/hbase_table_hfile/cf_0是hfile保存到hdfs的路径,cf_0是hbase family的名字
04684c4f20365f2702126d2afe48a25625303873

  •  把原始数据表的数据通过hbase_hfile_table表保存为hfile
d3940bfaf78316e8f1325037ea5fd4059a86be4a

  • 查看对应hdfs路径是否生成了hfile
1547583df02b0d0ba42725f9f0ad958b65e4532d
  1. 通过bulkload将数据导入到hbase表中

  • 使用阿里云hbase客户端创建具有上面对应family的hbase表

c7763526bc11dc7da2590b5a742831f99d9e763b

  • 下载云hbase客户端,配置hbase-site.xml,并将hdfs-site.xml、core-site.xml拷贝到hbase/conf目录
c4c53c582ce9637882c91e8dfbb9b6fc19b5337b
  • 执行bulkload导入到hbase表中
  • 387e39e32eb7b47d49468a57f47f8bd0854d1c50
  • 在hbase表hbase_hfile_load_table查看数据是否导入
d3f2f0da5b6761a64c7049db7719525a2c492a0c
大家工作学习遇到HBase技术问题,把问题发布到HBase技术社区论坛http://hbase.group,欢迎大家论坛上面提问留言讨论。想了解更多HBase技术关注HBase技术社区公众号(微信号:hbasegroup),非常欢迎大家积极投稿。

8f0bea83ed2c6fdd73e7c1735f6e3ba308136350


HBase技术交流社区 - 阿里官方“HBase生态+Spark社区大群”点击加入:https://dwz.cn/Fvqv066s
【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

hbase小能手
文章62篇 | 关注133
关注
云数据库 HBase 版(ApsaraDB for HBase)是基于 Hadoop 的一个... 查看详情
快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分... 查看详情
构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
双12

双12