hive 插入数据映射到hbase_嫌Hive导数据到Hbase太慢?试试buckloader吧

本文介绍了如何高效地将大量Hive数据导入HBase,通过使用Bulkloader工具,避免直接使用HBase API导致的低效问题。详细步骤包括:使用hbase的importtsv程序进行测试数据导入,以及编写Spark程序实现数据转换和加载。最后,文章列举了多个与大数据处理和面试相关的主题。
摘要由CSDN通过智能技术生成
1

前言

   如果我们离线计算好的hive数据需要同步到hbase中,大家会用什么方法呢?

     如果是明细数据,上千万乃至上亿行的数据,导入到hbase中肯定是需要考虑效率问题的

     如果是直接使用hbase客户端的API进行数据插入,效率是非常低的

     所以我们选择了bulkloader工具进行操作(原理:利用hbase之外的计算引擎将源数据加工成hbase的底层文件格式:Hfile,然后通知hbase导入即可)

测试数据

CREATE TABLE wedw_dw.t_user_order_info(                                   user_id string                                     ,user_name string  ,order_id  string  ,order_amt decimal(16,2))ROW FORMAT SERDE                                        'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'WITH SERDEPROPERTIES (                                  'field.delim'=',',                                    'serialization.format'=',')         ;+----------+------------+-----------+------------+--+| user_id  | user_name  | order_id  | order_amt  |+----------+------------+-----------+------------+--+| 1        | 小红         | 001       | 100.32     || 2        | 小明         | 002       | 34.76      || 3        | 小花         | 003       | 39.88      || 4        | 小牛         | 004       | 22.22      || 5        | 小刘         | 005       | 98765.34   |+----------+------------+-----------+------------+--+# /data/hive/warehouse/wedw/dw/t_user_order_info/
2

 利用hbasse自带程序导入

# hbase建表

hbase(main):009:0* create 'user_order_info','user_info','order_info'

# 执行hbase自带的importtsv程序(mapreduce程序),将原始文件转成hfile

/usr/local/hadoop-current/bin/yarn jar \/usr/local/hbase-current/lib/hbase-server-1.2.0-cdh5.8.2.jar  \importtsv -Dimporttsv.columns=HBASE_ROW_KEY,user_info:user_name,order_info:order_id,order_info:order
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值