我使用Pig和Hive对存储在HDFS中的数据集进行MapReduce操作。现在我想传输该输出以将其存储到MySQL表中。
如何将输出传输到MySQL?
答案 0 :(得分:0)
您可以利用Apache Sqoop
从HDFS
导出到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 |
+------+------+