场景及方案分析

场景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

最新文章

  1. C# Request中修改header信息
  2. setTimeout 和 setInterval
  3. swift3.0:associatedtype
  4. 最简单的Android教程之自定义控件
  5. 1044. Shopping in Mars (25)
  6. ural 1289. One Way Ticket
  7. 菜鸟学习Hibernate——缓存
  8. TeeChart 的应用
  9. 【转】iOS开发者账号和证书
  10. ios中判断控制台Log输出控制,是否是iphone5,自动调整尺寸
  11. Flip Game poj 1753
  12. git使用方法收藏
  13. django之模板继承以和模板导入
  14. 协程及Python中的协程
  15. TextBox只能输入数字
  16. Ubuntu图形界面和字符界面转换、指定默认启动界面
  17. react组件的创建
  18. python-模拟掷骰子,两个筛子数据可视化
  19. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect.
  20. Kafka解惑之时间轮 (TimingWheel)

热门文章

  1. PWM----调节LED亮度
  2. Android笔记之 图片自由裁剪
  3. LA 4043 最优匹配
  4. solidity开发之windows下配置remix本地环境遇到的问题及解决
  5. PHP处理Excel
  6. 2018.11.14 hibernate中的查询优化---关联级别查询
  7. Introduction to CQRS
  8. ASP.NET MVC中使用表单上传文件时的注意事项
  9. JS apply 和 call 的实现
  10. c++ 数字和字符串的相互转换