HBase实战(1):数据导入方式
本文关键词:HBase实战,由笔耕文化传播整理发布。
HBase实战(1):数据导入方式
更新:2014-07-14 编辑:基山伯 来源:谷普网 人气:加载中... 字号:|
标签:数据 实战 方式 导入 HBase 百度搜索
*). Client API实现
发挥HBase的Client API来导入, 是最简易学的方式.
评: HBase的client api编程, 相对还是简单的. 唯一需要注意的是, 若在本地编写测试用列, 需要在本地配置hbase集群相关的域名, 使得域名和ip地址能对应上, 切记.
至于hbase client的读写优化, 我们放到下面的博文进行讲解.
*). 批量导入Bulkload
HBase的bulkload数据导入, 分两个阶段:
#). 阶段一: 发挥使用HFileOutputFormat的MapReduce, 直接生成HBase的内部数据存储款式HFile.
其原理: HFileOutputFormat发挥configureIncrementalLoad函数, 基于当前table的各个region边界自动匹配MapReduce的分区类TotalOrderPartitioner, 这样生成的HFile都对应一个具体的region, 此时效率最高效.
#). 阶段二: 发挥completebulkload工具, 将生成的HFile文件热载入hbase集群.
1. importtsv数据导入演示
hbase自带了importtsv工具, 其对tsv款式的数据文件供给了默认的支持.
数据文件data.tsv(以'\t'分割数据文件)
1
2
3
4
1001 lilei 17 13800001111
1002 lily 16 13800001112
1003 lucy 16 13800001113
1004 meimei 16 13800001114
上传至hdfs目录 /test/hbase/tsv/input
尝试构建的HBase表student
执行importtsv
没有指定-Dimporttsv.bulk.output, importtsv默认行为是才有client api的put来导入数据于hbase, 指定-Dimporttsv.bulk.output, 则需要下一步
数据验证:
scan 'student', {LIMIT => 10}
2. 自定义bulkload数据导入演示
数据文件准备, 以之前data.tsv文件为准
构建HBase表student_new
编写MapReduce代码, 如下所示:
注: 发挥maven的assembly插件, 生成胖jar包(就是把依赖的zookeeper和hbase jar包都打到该MapReduce包中), 否则的话, 就需要用户静态配置, 在Hadoop的class中添加zookeeper和hbase的配置文件和相关jar包.
最终的jar包为 mybulk.jar, 主类名为com.m8zmyp.mmxf.MyBulkload, 生成HFile, 增量热载入hbase
数据验证:
*). 发挥Hive Over Hbase
构建Hbase表hbase_student
构建hive外表hive_student, 并对应hbase_student表
数据导入验证:
1. 创建数据外表
2. 数据通过hive_student导入到hbase_student表中
备注: 若遇到java.lang.IllegalArgumentException: Property value must not be null异常, 需要hive-0.13.0及以上版本支持
详见: https://issues.apache.org/jira/browse/HIVE-5515
原文链接:
【文章整理:彭凡 说很网 】
,分享到空间 | 挑错文字 | 打印本文 | 下载此文章
本文关键词:HBase实战,,由笔耕文化传播整理发布。
本文编号:231916
本文链接:https://www.wllwen.com/wenshubaike/mishujinen/231916.html