Hbase数据IO

场景及方案分析

场景1:logs --> HBase

  • logs -> flume -> hfile -> import -> HBase (实时)
  • csv导入HBase 使用hive 作为临时表csv导入HBase
  • tsv导入HBase 直接import 方式1

场景2:RDBMS --> HBase

  • RDBMS -> sqoop -> Hfile -> import -> HBase (非实时) 方式1
  • RDBMS -> JDBC -> Put API -> HBase (实时较高,纯手写,较常用,因为需要过滤处理) 方式3
  • RDBMS -> Stome -> HBase (实时)
  • RDBMS -> Spark -> HBase (实时)

场景3:集群性能测试

  • 自己写多线程并发程序(),测试读写速度

场景4:HBase -> RDBMS

三种方式

1.Using the HBase Put API

使用Put API import,缺点:数据保存在内存中,大数据量处理速度慢,数据缺少过滤

HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp` \
$HADOOP_HOME/bin/yarn jar \
$HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar \
importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:sex,info:age \
user_from_tsv \
/user/cen/data/hbase_import_user.tsv

2.Using the HBase bulk load tool

使用MapReduce存储成HBase底层文件,优点,减少HBase集群插入压力(不经过插入),降低Job集群时间提高运行速度

# 跟上述命令不用的是,这个导入并不会将数据导入到HBase而是到一个指定的文件夹
# 使用import生成Hfile文件到HDFS,底层通过MapReduce(只有Map)实现
HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp`:${HBASE_HOME}/conf \
$HADOOP_HOME/bin/yarn jar \
$HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar \
importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:sex,info:age \
-Dimporttsv.bulk.output=/user/cen/hbase/hfileoutput \
user_from_tsv_bulk \ 
/user/cen/data/hbase_import_user.tsv

# 加载数据(非MapReduce),相当于移动数据
HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp`:${HBASE_HOME}/conf \
$HADOOP_HOME/bin/yarn jar \
$HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar \
completebulkload \
/user/cen/hbase/hfileoutput \
user_from_tsv_bulk

3.Using a customized MapReduce job

自定义 MapReduce Job 优点:前所未有的自由度,缺点:我有一句mmp不知当讲不当讲

a.mapreduce
csv -> hfile
b.bulk load
hfile -> table

bulk_load_API

转载于:https://www.cnblogs.com/cenzhongman/p/7402929.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值