场景及方案分析

场景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. pl/sql 存储过程执行execute immediate 卡住

    在存储过程中,执行了create table.update table.insert into table 但是在使用pl/sql的存储过程调试的时候,一有问题就直接卡住(标识:执行中.....) 后 ...

  2. javap(反汇编命令)

    用法: javap <options> <classes> 其中, 可能的选项包括: -help  --help  -?        输出此用法消息 -version     ...

  3. 【luogu P2731 骑马修栅栏】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2731 这个题是欧拉回路的模板题,那么在这里给出一个hierholzer的做法. 对于求欧拉回路的问题,有Fl ...

  4. python 实现远程上传文件夹

    python2 upload.py "ip" "root" "password" "22" "Only Pro ...

  5. MySQL存储引擎与索引

    引言: MySQL存储引擎主要分为 InnoDB 存储引擎与 MyISAM 存储引擎.都采用B+数的存储结构. 应用场景: InnoDB适合:(1)可靠性要求比较高,要求事务:(2)大量 insert ...

  6. 删除Navicat在注册表信息

    @echo offecho 正在删除navicat注册表REG DELETE HKEY_CURRENT_USER\Software\PremiumSoft\Data /fREG DELETE HKEY ...

  7. Hibernate学习第一天

    Hibernate框架第一天 今天任务 1. 使用Hibernate框架完成对客户的增删改查的操作 教学导航 1. 能够说出Hibernate的执行流程 2. 能够独立使用Hibernate框架完成增 ...

  8. c#实现的HTTP服务端

    这次在整理一个服务组件的时候,需要涉及到HTTP的请求,HTTP是应用层,建立在TCP之上的.因此,可以用TCP服务端接收HTTP请求,只需要解析请求内容.HTPP有固定的格式,大家可以直接搜索.网上 ...

  9. 剑指offer js算法练习(1-10)

    1.二维数组中的查找       在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...

  10. 2018 Wannafly summer camp Day8--区间权值

    区间权值 小Bo有\(n\)个正整数\(a_1\)--\(a_n\),以及一个权值序列\(w_1\)--\(w_n\),现在她定义\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r ...