一、把数据从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/目录下。
代码语言:javascript复制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的表
代码语言:javascript复制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的表
代码语言:javascript复制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/目录下。
代码语言:javascript复制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的表
代码语言:javascript复制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