将大量MySQL数据导入Hadoop

时间:2016-08-24 08:47:00

标签: mysql hadoop import

我打算使用一个使用Hadoop,Hive和Impala来分析大数据的堆栈。我准备好了设置,现在我正在尝试从MySQL表导入数据。表大小超过500 GB,我打算按如下方式使用Sqoop:

sqoop import --connect jdbc:mysql://remote_host_ip/database_name --username user_name -P --table table_name --hive-import --compression-codec=snappy --as-parquetfile --warehouse-dir=/user/hive/warehouse -m 1

还有其他更好的方法可以执行此导入,因为这涉及通过网络传输500 GB的数据。是否可以压缩数据并将其导入Hive,因此可以使用Impala进行查询?

3 个答案:

答案 0 :(得分:1)

Sqoop是最好的方法。它在批量装载方面非常有效。

阅读有关MySQL Hadoop Applier的内容,该DEMO用于在MySQL和Hadoop之间执行事件的实时复制。

答案 1 :(得分:0)

您可以设置“-m 4”而不是“-m 1”。这将允许以并行方式导入MySql数据,即不使用1个映射器传输500GB,将使用4个映射器并行传输数据(使用每个映射器125 GB)。

答案 2 :(得分:0)

SQOOP最好将500 GB的数据导入柱状HDFS格式,即Parquet文件格式。但是你可以使用'-m 12'来导入更多的并行映射器。