将大量mysql数据导入hadoop

egmofgnx  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(336)

我计划使用一个堆栈,它使用hadoop、hive和impala来分析大数据。我已经准备好了安装程序,现在我正在尝试从mysql表导入数据。表大小超过500GB,我计划使用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进行查询?

kzmpq1sx

kzmpq1sx1#

sqoop最好将500gb的数据导入到柱状hdfs格式(parquet文件格式)中。但是您可以使用'-m12',这会使更多的并行Map器进行导入。

kmynzznz

kmynzznz2#

sqoop是最好的方法。它在散装时非常有效。
一定要了解mysql-hadoop applier,它设计用于在mysql和hadoop之间执行事件的实时复制。

fslejnso

fslejnso3#

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

相关问题