如何将HDFS输出存储到MySQL表?

时间:2018-04-28 19:15:55

标签: mysql mapreduce hdfs

我使用Pig和Hive对存储在HDFS中的数据集进行MapReduce操作。现在我想传输该输出以将其存储到MySQL表中。

如何将输出传输到MySQL?

1 个答案:

答案 0 :(得分:0)

您可以利用Apache SqoopHDFS导出到MySQL

<强>插图:

这是HDFS中的数据

# hadoop fs -ls /example_hive  
/example_hive/file1.csv


# hadoop fs -cat /example_hive/*
1,foo
2,bar
3,ack
4,irk
5,pqr

在MySQL test数据库

中创建目标表
> create table test.example_mysql(h1 int, h2 varchar(100));

使用Sqoop命令导出。 (根据您的环境更新参数--connect, - username, - password的值)

# sqoop export --connect "jdbc:mysql://localhost/test" --username "root" --password hadoop --table "example_mysql" --export-dir "hdfs:///example_hive" --input-fields-terminated-by ','

检查MySQL中的数据

> select * from test.example_mysql;
+------+------+
| h1   | h2   |
+------+------+
|    1 | foo  |
|    2 | bar  |
|    3 | ack  |
|    4 | irk  |
|    5 | pqr  |
+------+------+