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

目录

一、把数据从 HDFS 抽取到 RDBMS

1. 下载示例文件

2. 将文件上传到 HDFS

3. 打开 PDI 新建一个转换

4. 编辑 Hadoop File Input 步骤

5. 编辑 Table Output 步骤

6. 执行下面的脚本建立 mysql 的表

7. 保存并执行转换

8. 查询 mysql 表

二、把数据从 Hive 抽取到 RDBMS

1. 执行下面的脚本建立 hive 表

2. 下载示例文件

3. 将文件上传到 HDFS

4. 打开 PDI 新建一个转换

5. 编辑 Table input 步骤

6. 编辑 Table output 步骤

7. 执行下面的脚本建立 mysql 的表

8. 保存并执行转换

9. 查询 mysql 表

参考:


一、把数据从 HDFS 抽取到 RDBMS

1. 下载示例文件

        下载地址:​http://wiki.pentaho.com/download/attachments/23530622/weblogs_aggregate.txt.zip?version=1&modificationDate=1327067858000​

2. 将文件上传到 HDFS

        用下面的命令把解压缩后的 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

        说明:

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. 将文件上传到 HDFS

        用下面的命令把解压缩后的 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,参考:kettle 5.1.0 连接 Hadoop hive 2 (hive 1.2.1)

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 表中。

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值