场景及方案分析

场景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. Simotion CF卡 固件下载地址及制作方法

    SIMOTION D - Firmware (Kernel) 固件下载地址 支持中心ID:31045047 https://support.industry.siemens.com/cs/docume ...

  2. 初次接触《C++程序设计原理与实践》一书

    前两天读书日,买了些书回来看.__Bjarne Stroustrup__的<C++程序设计原理与实践>便是其中一本.其实也没看完,只看了第0章-致读者,大师不愧是大师,只看了一章就让心生共 ...

  3. bzoj5000 OI树

    Description 几天之后小跳蚤即将结束自己在lydsy星球上的旅行.这时,lydsy人却发现他们的超空间传送装置的能量早在小跳蚤通过石板来到lydsy星球时就已经消耗光了.这时,小跳蚤了解到自 ...

  4. 【mysql案例】mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件

    1.1.1. mysql5.6.14多实例my.cnf时,初始化不读取my.cnf配置文件 [环境描写叙述] 在多实例配置的/etc/my.cnf环境中,运行mysql_install_db后.启动M ...

  5. POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】

    任意门:http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K To ...

  6. HDU 2005 第几天?(闰年判断)

    传送门: acm.hdu.edu.cn/showproblem.php?pid=2005 第几天? Time Limit: 2000/1000 MS (Java/Others)    Memory L ...

  7. Rest API 开发 学习笔记

    概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着不断获取资源的表示方式,客户端应用 ...

  8. centos7下javac:未找到命令的问题

    在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java    会提示未找到指令,但用java -verison测试环境变量 ...

  9. 指令过滤器orderBy

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  10. spring入门(二) 使用注解代替xml配置

    1.导包(略) 2.applicationContext.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...