天天看点

HBase实战 | Hive数据导入云HBase

网络环境

  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客户端
    HBase实战 | Hive数据导入云HBase
  1. hbase表不存在的情况
  • 创建hive表hive_hbase_table映射hbase表base_table,会自动创建hbase表hbase_table,且会随着hive表删除而删除。这里需要指定hive的schema到hbase schema的映射关系。关于类型可参考Hive/HBaseIntegration
HBase实战 | Hive数据导入云HBase
  • 创建一张原始的hive表,准备一些数据
HBase实战 | Hive数据导入云HBase
  • 把hive原表hive_data中数据,通过hive表hive_hbase_table导入到hbase的表hbase_table中
HBase实战 | Hive数据导入云HBase
  • 查看hbase表hbase_table中是否有数据
HBase实战 | Hive数据导入云HBase
  1. hbase表存在的情况
  • 创建hive的外表关联hbase表,注意hive schema到hbase schema的映射关系。删除外表不会删除对应hbase表
HBase实战 | Hive数据导入云HBase
  • 其他导入数据相关同2

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

  1. 适用场景:数据量大(4T以上)
  2. 把hive数据转换为hfile
  • 启动hive并添加相关hbase的jar包
HBase实战 | Hive数据导入云HBase
  • 创建一个outputformat为HiveHFileOutputFormat的hive表
  • 其中/tmp/hbase_table_hfile/cf_0是hfile保存到hdfs的路径,cf_0是hbase family的名字
HBase实战 | Hive数据导入云HBase
  •  把原始数据表的数据通过hbase_hfile_table表保存为hfile
HBase实战 | Hive数据导入云HBase
  • 查看对应hdfs路径是否生成了hfile
HBase实战 | Hive数据导入云HBase
  1. 通过bulkload将数据导入到hbase表中
  • 使用阿里云hbase客户端创建具有上面对应family的hbase表
HBase实战 | Hive数据导入云HBase
  • 下载云hbase客户端,配置hbase-site.xml,并将hdfs-site.xml、core-site.xml拷贝到hbase/conf目录
HBase实战 | Hive数据导入云HBase
  • 执行bulkload导入到hbase表中
  • HBase实战 | Hive数据导入云HBase
  • 在hbase表hbase_hfile_load_table查看数据是否导入
HBase实战 | Hive数据导入云HBase

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

HBase实战 | Hive数据导入云HBase

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

https://dwz.cn/Fvqv066s
上一篇: CONCAT_WS
下一篇: CHR