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

Pentaho Work with Big Data(七)—— 从Hadoop集群抽取数据

时间:2016-04-16 19:33:03      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

一、把数据从HDFS抽取到RDBMS
1. 从下面的地址下载示例文件。 
http://wiki.pentaho.com/download/attachments/23530622/weblogs_aggregate.txt.zip?version=1&modificationDate=1327067858000

2. 用下面的命令把解压缩后的weblogs_aggregate.txt文件放到HDFS的/user/grid/aggregate_mr/目录下。
hadoop fs -put weblogs_aggregate.txt /user/grid/aggregate_mr/
3. 打开PDI,新建一个转换,如图1所示。

技术分享

图1

4. 编辑‘Hadoop File Input‘步骤,如图2到图4所示。

技术分享

图2

技术分享

图3

技术分享

图4

说明:
. PDI连接Hadoop集群参考http://blog.csdn.net/wzy0623/article/details/51086821
. 以tab作为分隔符。

5. 编辑‘Table Output‘步骤,如图5所示。

技术分享

图5

说明:
. mysql_local是已经建好的一个本地mysql数据库连接,设置如图6所示。

技术分享

图6

. “数据库字段”标签不需要设置

6. 执行下面的脚本建立mysql的表
use test;
create table aggregate_hdfs (
    client_ip varchar(15),
    year smallint,
    month_num tinyint,
    pageviews bigint
);

7. 保存并执行转换,日志如图7所示。

技术分享

图7

从图7可以看到,转换已经成功执行。

8. 查询mysql表,结果如图8所示

技术分享

图8

从图8可以看到,数据已经从HDFS抽取到了mysql表中。

二、把数据从Hive抽取到RDBMS
1. 执行下面的脚本建立hive的表
create table weblogs (
    client_ip    string,
    full_request_date string,
    day    string,
    month    string,
    month_num int,
    year    string,
    hour    string,
    minute    string,
    second    string,
    timezone    string,
    http_verb    string,
    uri    string,
    http_status_code    string,
    bytes_returned        string,
    referrer        string,
    user_agent    string)
row format delimited
fields terminated by '\t';
2. 从下面的地址下载示例文件。
http://wiki.pentaho.com/download/attachments/23530622/weblogs_parse.txt.zip?version=1&modificationDate=1327068013000

3. 用下面的命令把解压缩后的weblogs_parse.txt文件放到HDFS的/user/grid/parse/目录下。
hadoop fs -put weblogs_parse.txt /user/hive/warehouse/test.db/weblogs/
至此,hive表里的数据如图9所示。

技术分享

图9

4. 打开PDI,新建一个转换,如图10所示。

技术分享

图10

5. 编辑‘Table input‘步骤,如图11所示。

技术分享

图11

说明:hive_101是已经建好的一个hive数据库连接,设置如图12所示。

技术分享

图12

说明:PDI连接 Hadoop hive 2,参考http://blog.csdn.net/wzy0623/article/details/50903133

6. 编辑‘Table output‘步骤,如图13所示。

技术分享

图13

说明:
. mysql_local是已经建好的一个本地mysql数据库连接,设置如图6所示。
. “数据库字段”标签不需要设置

7. 执行下面的脚本建立mysql的表
use test;
create table aggregate_hive (
    client_ip varchar(15),
    year varchar(4),
    month varchar(10),
    month_num tinyint,
    pageviews bigint
);
8. 保存并执行转换,日志如图14所示。

技术分享

图14

从图14可以看到,转换已经成功执行。

9. 查询mysql表,结果如图15所示

技术分享

图15

从图15可以看到,数据已经从hive数据库抽取到了mysql表中。

参考:
http://wiki.pentaho.com/display/BAD/Extracting+Data+from+HDFS+to+Load+an+RDBMS
http://wiki.pentaho.com/display/BAD/Extracting+Data+from+Hive+to+Load+an+RDBMS

Pentaho Work with Big Data(七)—— 从Hadoop集群抽取数据

标签:

原文地址:http://blog.csdn.net/wzy0623/article/details/51160948

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