场景及方案分析

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

Hbase数据IO的更多相关文章

  1. HBase数据存储格式

    好的数据结构,对于检索数据,插入数据的效率就会很高. 常见的数据结构 B+树 根节点和枝节点非常easy,分别记录每一个叶子节点的最小值,并用一个指针指向叶子节点.  叶子节点里每一个键值都指向真正的 ...

  2. HBase 数据迁移方案介绍

    一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...

  3. HBase 数据迁移方案介绍 (转载)

    原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...

  4. 大数据-05-Spark之读写HBase数据

    本文主要来自于 http://dblab.xmu.edu.cn/blog/1316-2/ 谢谢原作者 准备工作一:创建一个HBase表 这里依然是以student表为例进行演示.这里假设你已经成功安装 ...

  5. 大数据应用之HBase数据插入性能优化实测教程

    引言: 大家在使用HBase的过程中,总是面临性能优化的问题,本文从HBase客户端参数设置的角度,研究HBase客户端数据批量插入性能优化的问题.事实胜于雄辩,数据比理论更有说服力,基于此,作者设计 ...

  6. Hadoop生态圈-使用MapReduce处理HBase数据

    Hadoop生态圈-使用MapReduce处理HBase数据 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对HBase表中数据进行单词统计(TableInputFormat) ...

  7. Bulk Load-HBase数据导入最佳实践

    一.概述 HBase本身提供了非常多种数据导入的方式,通常有两种经常使用方式: 1.使用HBase提供的TableOutputFormat,原理是通过一个Mapreduce作业将数据导入HBase 2 ...

  8. 使用MapReduce读取HBase数据存储到MySQL

    Mapper读取HBase数据 package MapReduce; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hba ...

  9. SparkSQL读取HBase数据

    这里的SparkSQL是指整合了Hive的spark-sql cli(关于SparkSQL和Hive的整合,见文章后面的参考阅读). 本质上就是通过Hive访问HBase表,具体就是通过hive-hb ...

随机推荐

  1. day1 python 介绍、基本语法、流程控制

    请查看我的云笔记链接: http://note.youdao.com/noteshare?id=0ea7425d3e3669800cb0d73f7ec8865d&sub=D87B4BF820C ...

  2. windows下makefile命令详解

    转自https://blog.csdn.net/xiexievv/article/details/45775005 1. 如果已经有vc6的dsp工程,可直接导出nmake脚本文件(.mak) “Pr ...

  3. UESTC-1259 昊昊爱运动 II

    昊昊爱运动 II Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)     昊昊喜 ...

  4. 编程思想的理解(POP,OOP,SOA,AOP) x

    http://blog.chinaunix.net/uid-29417436-id-4060980.html 1)POP--面向过程编程(Process-oriented programming ): ...

  5. 广义mandelbrot集,使用python的matplotlib绘制,支持放大缩小

    迭代公式的指数,使用的1+5j,这是个复数.所以是广义mandelbrot集,大家能够自行改动指数,得到其它图形.各种库安装不全的,自行想办法,能够在这个站点找到差点儿全部的python库 http: ...

  6. Gym 101308I Inspection

    题意: 用最少的路径,覆盖掉所有的边,(点可以重复): 不是用最小路径覆盖,最小路径覆盖是覆盖点: 分析: 建图:入度<出度,说明这是个起点,从这里出发,入度>出度,说明从这里结束: 先找 ...

  7. PyCharm Notes | PyCharm 使用笔记(远程访问服务器code配置指南)

    PyCharm is a strong IDE for python programmer. Not only because it has a similar face with VS or som ...

  8. andorid 网络通信最简单demo

    要和后台进行通信 一开始发现接不到数据 后来发生了线程错误 在网上查到:在一些高版本中,与网络通信的操作因为要花费比较大的时间,所以应该放在单独的线程中去做. 但为什么一些网上demo没有放在单独的线 ...

  9. Android学习笔记_13_网络通信之多个上传文件

    一.获取HTTP协议: 建立一个Web项目,建立一个如下所示的jsp界面,用IE捕获表单提交信息. <%@ page language="java" contentType= ...

  10. css ul dl dt 表格分页 文本框样式

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...