【问题标题】:Import large amount of MySQL data to Hadoop将大量 MySQL 数据导入 Hadoop
【发布时间】:2016-08-24 08:46:59
【问题描述】:

我计划使用一个使用 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进行查询?

【问题讨论】:

标签: mysql hadoop import


【解决方案1】:

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

请阅读MySQL Hadoop Applier,它旨在执行 MySQL 和 Hadoop 之间事件的实时复制。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      SQOOP 最好将 500 GB 的数据导入列式 HDFS 格式,即 Parquet 文件格式。但是您可以使用“-m 12”,它可以导入更多并行映射器。

      【讨论】:

        猜你喜欢
        • 2019-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 2015-10-29
        相关资源
        最近更新 更多