码迷,mamicode.com
首页 > 其他好文 > 详细

Phoenix使用MapReduce加载大批量数据

时间:2016-08-05 11:47:24      阅读:398      评论:0      收藏:0      [点我收藏+]

标签:

1. 说明


在实际应用场景中可以会有一些格式比较规整的数据文件需要导入到HBase,Phoenix提供了两种方法来加载CSV格式的文件phoenix的数据表。一种是使用单线程的psql工具进行小批量数据加载的方式,一种是使用MapReduce作业来处理大批量数据的方式。第一种方式比较简单这里就不介绍了,想了解的可以参考官方文档。

http://phoenix.apache.org/bulk_dataload.html

 

2. 创建表


在phoenix的CLI界面创建user表。

> create table user (id varchar primary key,account varchar ,passwd varchar);
  • 1

 

3. 添加测试数据


【PHOENIX_HOME】目录下创建data_import.txt,内容如下:

001,google,AM 
002,baidu,BJ 
003,alibaba,HZ

 

4. 执行MapReduce


【PHOENIX_HOME】目录下执行MR作业(命令的使用跟Phoenix的版本有关)。

$ HADOOP_CLASSPATH=/usr/local/cdh-5.2.0/hbase-0.98.6/lib/hbase-protocol-0.98.6-cdh5.2.0.jar:/usr/local/cdh-5.2.0/hbase-0.98.6/conf hadoop jar phoenix-4.2.2-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t user -i file:///usr/local/cdh-5.2.0/phoenix-4.2.2/data_import.txt -z 192.168.187.128,192.168.187.129,192.168.187.130:2181
  • 1

参数含义如下表:

技术分享

高能预警:hbase-protocol-0.98.6-cdh5.2.0.jar这个jar包是与HBase的版本有关的,如果是其他版本的HBase请自行替换。

数据文件的路径会默认读取HDFS的文件,这里强制添加前缀file:///指定为本地文件路径了,但是MR执行的过程中还是报错了说找不到文件路径:

Error: java.io.FileNotFoundException: File file:/usr/local/cdh-5.2.0/phoenix-4.2.2/data_import.txt does not exist 
at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:524) 
at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:737) 
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:514) 
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:398) 
at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.(ChecksumFileSystem.java:140)

但是最后数据却被成功加载到phoenix中。

技术分享

最终将测试数据data_import.txt放到了HDFS的/phoenix/test/目录下,使用如下命令执行后全程无任何报错。

al/cdh-5.2.0/hbase-0.98.6/conf hadoop jar phoenix-4.2.2-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t user -i /phoenix/test/data_import.txt -z 192.168.187.128,192.168.187.129,192.168.187.130:2181
  • 1

该作业会被提交到YARN由ResourceManager进行资源分配

技术分享

Phoenix使用MapReduce加载大批量数据

标签:

原文地址:http://www.cnblogs.com/thinkpad/p/5740474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!