Phoenix使用MapReduce加载大批量数据

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进行资源分配

时间: 2024-10-10 07:14:24

Phoenix使用MapReduce加载大批量数据的相关文章

【.net深呼吸】WPF异步加载大批量图像

如何在WPF中加载大批量数据,并且不会阻塞UI线程,尤其是加载大量图片时,这活儿一直是很多朋友都相当关注的.世上没有最完美的解决之道,咱们但求相对较优的方案. 经过一些试验和对比,老周找到了一种算是不错的方案,重点是这个方案比较简单,无须闯五关斩六将,只要你对数据绑定有些基础就好了. 好,F话少扯,咱们开始吧. 老周手里没有那么多照片,那就用同一张图片做测试吧.假设我要在应用程序运行时加载 2 万张图片,我想2W张应该可以了,没见过谁会傻到要加载100W张那么变态. 大致情况是:数据源集合是一个

ext combobox动态加载数据库数据

前台: var provinceStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: basePath + "/stationManage/station_getProvinceJSON.action" }), reader: new Ext.data.JsonReader( { root: "" }, ["PROVINCEID", "PROVINCENAME

JQuery跨域加载JSON数据或HTML。

前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $.ajax({ type: "get", async: false, url: "http://localhost:13964/getpage.ashx?callback=?",//服务端URL,该URL返回一段JS数据.如需返回HTML,只需把HTML组织成JSON即可

hive加载json数据解决方案

hive官方并不支持json格式的数据加载,默认支持csv格式文件加载,如何在不依赖外部jar包的情况下实现json数据格式解析,本编博客着重介绍此问题解决方案 首先创建元数据表: create EXTERNAL table access_log (content string) row format delimited fields terminated by '\t' STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInpu

SQLLoader8(加载的数据中有换行符处理方法)

SQLLDR加载的数据中有换行符处理方法1.创建测试表: CREATE TABLE MANAGER( MGRNO NUMBER, MNAME VARCHAR2(30), JOB VARCHAR2(30), REMARK VARCHAR2(1000) ); 2.创建控制文件我们可以通过控制文件,在数据加载前处理remark列的数据,将用户指定的"\n"字符替换为chr(10),即标准换行符,创建控制文件如下: LOAD DATA INFILE 'D:\testSqlLoader\ldr_

WP8_GestureListener实现列表向下滑动加载新数据

利用GestureListener的OnDragCompleted事件,实现列表向下滑动时,加载新的数据: (不建议使用 Touch.FrameReported+=Touch_FrameReported; 此事件是全局的,如果没有注销事件,在离开页面后仍会得到响应,而这不是希望的效果) 前台代码: <Border> <!- 此处放置ScrollViewer或 ListBox--> <ScrollViewer/>   <toolkit:GestureService.

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源占用少,无依赖,多平台的javascript滚动插件.iScroll不仅仅是 滚动.它可以处理任何需要与用户进行移动交互的元素.在你的项目中包含仅仅4kb大小的iScroll,你的项目便拥有了滚动,缩放,平移,无限滚动,视差滚动,旋转功能.iScroll的强大毋庸置疑,本人也非常欢迎大家使用iScr

四种加载React数据的技术对比(Meteor 转)

1.四种加载React数据的技术对比(Meteor 转) : https://sanwen8.cn/p/31e4kdE.html 2. Meteor + Appolo   TelescopeJS/Telescope    https://github.com/TelescopeJS/Telescope/tree/devel http://nova-docs.telescopeapp.org/architecture.html