一、importtsv

把hdfs中数据抽取到HBase表中;

1、准备数据

##student.tsv
[root@hadoop-senior datas]# cat student.tsv
10001 zhangsan 35 male beijing 0109876543
10002 lisi 32 male shanghia 0109876563
10003 zhaoliu 35 female hangzhou 01098346543
10004 qianqi 35 male shenzhen 01098732543 ##
[root@hadoop-senior hadoop-2.5.0]# bin/hdfs dfs -mkdir -p /user/root/hbase/importtsv
[root@hadoop-senior hadoop-2.5.0]# bin/hdfs dfs -put /opt/datas/student.tsv /user/root/hbase/importtsv ##创建HBase表
hbase(main):005:0> create 'student', 'info'
0 row(s) in 0.1530 seconds => Hbase::Table - student

2、执行

##执行,下列命令全部执行
export HBASE_HOME=/opt/modules/hbase-0.98.6-hadoop2
export HADOOP_HOME=/opt/modules/hadoop-2.5.0
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`:${HBASE_HOME}/conf \
${HADOOP_HOME}/bin/yarn jar \
${HBASE_HOME}/lib/hbase-server-0.98.6-hadoop2.jar importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,\
info:name,info:age,info:sex,info:address,info:phone \
student \
hdfs://hadoop-senior.ibeifeng.com:8020/user/root/hbase/importtsv ##查看结果
hbase(main):006:0> scan 'student'
ROW COLUMN+CELL
10001 column=info:address, timestamp=1558594471571, value=beijing
10001 column=info:age, timestamp=1558594471571, value=35
10001 column=info:name, timestamp=1558594471571, value=zhangsan
10001 column=info:phone, timestamp=1558594471571, value=0109876543
10001 column=info:sex, timestamp=1558594471571, value=male
10002 column=info:address, timestamp=1558594471571, value=shanghia
10002 column=info:age, timestamp=1558594471571, value=32
10002 column=info:name, timestamp=1558594471571, value=lisi
10002 column=info:phone, timestamp=1558594471571, value=0109876563
10002 column=info:sex, timestamp=1558594471571, value=male
10003 column=info:address, timestamp=1558594471571, value=hangzhou
10003 column=info:age, timestamp=1558594471571, value=35
10003 column=info:name, timestamp=1558594471571, value=zhaoliu
10003 column=info:phone, timestamp=1558594471571, value=01098346543
10003 column=info:sex, timestamp=1558594471571, value=female
10004 column=info:address, timestamp=1558594471571, value=shenzhen
10004 column=info:age, timestamp=1558594471571, value=35
10004 column=info:name, timestamp=1558594471571, value=qianqi
10004 column=info:phone, timestamp=1558594471571, value=01098732543
10004 column=info:sex, timestamp=1558594471571, value=male

二、bulk load

1、bulk load

HBase支持bulk load的入库方式,它是利用hbase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile数据格式文件,
然后上传至合适位置,即完成巨量数据快速入库的办法。配合mapreduce完成,高效便捷,而且不占用region资源,增添负载,在大数据量写入时能
极大的提高写入效率,并降低对HBase节点的写入压力。 通过使用先生成HFile,然后再BulkLoad到Hbase的方式来替代之前直接调用HTableOutputFormat的方法有如下的好处:
(1)消除了对HBase集群的插入压力
(2)提高了Job的运行速度,降低了Job的执行时间

2、生成HFile

##建表
hbase(main):007:0> create 'student2', 'info'
0 row(s) in 0.1320 seconds
=> Hbase::Table - student2 ##生成Hfile
export HBASE_HOME=/opt/modules/hbase-0.98.6-hadoop2
export HADOOP_HOME=/opt/modules/hadoop-2.5.0
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`:${HBASE_HOME}/conf \
${HADOOP_HOME}/bin/yarn jar \
${HBASE_HOME}/lib/hbase-server-0.98.6-hadoop2.jar importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,\
info:name,info:age,info:sex,info:address,info:phone \
-Dimporttsv.bulk.output=hdfs://hadoop-senior.ibeifeng.com:8020/user/root/hbase/hfileoutput \
student2 \
hdfs://hadoop-senior.ibeifeng.com:8020/user/root/hbase/importtsv ##查看
[root@hadoop-senior hadoop-2.5.0]# bin/hdfs dfs -ls /user/root/hbase/hfileoutput/info
Found 1 items
-rw-r--r-- 1 root supergroup 1888 2019-05-24 13:31 /user/root/hbase/hfileoutput/info/8c28c6c654bc4fe2aa2c32ef54480771

2、将数据导入进表student2

##导数据
export HBASE_HOME=/opt/modules/hbase-0.98.6-hadoop2
export HADOOP_HOME=/opt/modules/hadoop-2.5.0
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`:${HBASE_HOME}/conf \
${HADOOP_HOME}/bin/yarn jar \
${HBASE_HOME}/lib/hbase-server-0.98.6-hadoop2.jar \
completebulkload \
hdfs://hadoop-senior.ibeifeng.com:8020/user/root/hbase/hfileoutput \
student2 ##scan student2
hbase(main):008:0> scan 'student2'
ROW COLUMN+CELL
10001 column=info:address, timestamp=1558675878109, value=beijing
10001 column=info:age, timestamp=1558675878109, value=35
10001 column=info:name, timestamp=1558675878109, value=zhangsan
10001 column=info:phone, timestamp=1558675878109, value=0109876543
10001 column=info:sex, timestamp=1558675878109, value=male
10002 column=info:address, timestamp=1558675878109, value=shanghia
10002 column=info:age, timestamp=1558675878109, value=32
10002 column=info:name, timestamp=1558675878109, value=lisi
10002 column=info:phone, timestamp=1558675878109, value=0109876563
10002 column=info:sex, timestamp=1558675878109, value=male
10003 column=info:address, timestamp=1558675878109, value=hangzhou
10003 column=info:age, timestamp=1558675878109, value=35
10003 column=info:name, timestamp=1558675878109, value=zhaoliu
10003 column=info:phone, timestamp=1558675878109, value=01098346543
10003 column=info:sex, timestamp=1558675878109, value=female
10004 column=info:address, timestamp=1558675878109, value=shenzhen
10004 column=info:age, timestamp=1558675878109, value=35
10004 column=info:name, timestamp=1558675878109, value=qianqi
10004 column=info:phone, timestamp=1558675878109, value=01098732543
10004 column=info:sex, timestamp=1558675878109, value=male
4 row(s) in 0.0420 seconds

3、在MapReduce中生成HFile文件

2.11-2.12 HBase的数据迁移常见方式的更多相关文章

  1. 一种HBase表数据迁移方法的优化

    1.背景调研: 目前存在的hbase数据迁移主要分如下几类: 根据上图,可以看出: 其实主要分为两种方式:(1)hadoop层:因为hbase底层是基于hdfs存储的,所以可以通过把hdfs上的数据拷 ...

  2. 关于hbase的数据迁移

    场景: 一套自己编译的Hbase集群 A 一套自己通过cloudera平台搭建的Hbase集群 B 注意:( 我的两套集群是同一个网段的) 方式1:通过快照方式进行数据迁移(不需要提前建表) 1):首 ...

  3. Entity Framework7 入门之全功能.NET版本下使用EF7(含源码)另附数据迁移常见错误处理

    Entity Framework7 入门之全功能.NET(Console, WinForms, WPF等)使用EF7 昨天,我们介绍了EF的新特性和开发计划,如果你还不了解,请移步 Entity Fr ...

  4. 京东云开发者|京东云RDS数据迁移常见场景攻略

    云时代已经来临,云上很多场景下都需要数据的迁移.备份和流转,各大云厂商也大都提供了自己的迁移工具.本文主要介绍京东云数据库为解决用户数据迁移的常见场景所提供的解决方案. 场景一:数据迁移上云 数据迁移 ...

  5. HBase的数据迁移(含HDFS的数据迁移)

    1.启动两个HDFS集群 hadoop0,hadoop1,都是伪分布式的集群 2.启动hadoop3的zookeeper与hbase 注意点:需要开启yarn服务,因为distcp需要yarn. 3. ...

  6. 084 HBase的数据迁移(含HDFS的数据迁移)

    1.查找命令 bin/hadoop 2.启动两个HDFS集群 hadoop0,hadoop1,都是伪分布式的集群 3.启动hadoop3的zookeeper与hbase 注意点:需要开启yarn服务, ...

  7. Hbase snapshot数据迁移

    # 在源集群中创建快照(linux shell) hbase snapshot -t <table_name> -n <snapshot_name> 或(hbase shell ...

  8. EF 数据迁移 常见错误

    1.错误 “LC.exe”已退出,代码为 -1 原因:解决方案出错,而非迁移的项目

  9. springmvc接收json数据的常见方式

    经常使用Ajax异步请求来进行数据传输,传的数据是json数据,json数据又有对象,数组.所有总结下springmvc获取前端传来的json数据方式:1.以RequestParam接收前端传来的是j ...

随机推荐

  1. POCO类

    我认为POCO(简单传统CLR对象)重点应该是简单,不跟其他不相关的类进行关联关系或不相关的属性.<NHibernate 4 Beginner Guid>这本书有提到,应该是满足下面三个条 ...

  2. [转]eclipse查看某个java类属于哪个jar包

    原文地址:https://blog.csdn.net/csdnliuxin123524/article/details/73572836 在eclipse界面直接按ctrl+shift+t,弹出以下界 ...

  3. unittest相关文档

    文档链接: http://blog.csdn.net/wangst4321/article/details/8454118

  4. 03 xml封装通信接口

    <?php class Response_xml{ /** *按xml方式输出通信 *@param integet $code 状态码 *@param string $message 提示信息 ...

  5. Erlang function guards NOTE

    Note: I've compared , and ; in guards to the operators andalso and orelse. They're not exactly the s ...

  6. flume采集微信小程序数据

    flume采集微信小程序数据 flume收集前端埋点数据[1]POST请求http://f.x.com:50000数据格式: JsonArray数据格式示例:[{ "headers" ...

  7. unity导出android项目

    1. 2 . 3 选择Google Android Project(若不选则直接导出Apk) Export,Android项目即可导出成功.

  8. 7-10 社交网络图中结点的“重要性”计算(30 point(s)) 【并查集+BFS】

    7-10 社交网络图中结点的"重要性"计算(30 point(s)) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络 ...

  9. Code Review 规范

    CodeReview规范 CodeReivew 标准 通用原则 提交 PR 的代码必须保证自测通过 只 review 代码规范.业务逻辑,不 review 架构设计(那是写代码前应该做的事情) 干掉重 ...

  10. 解决Android Studio Fetching Android SDK component information失败问题【转】

    本文转载自:http://blog.csdn.net/isesar/article/details/41908089 Android Studio 安装完成后,如果直接启动,Android Studi ...