【问题标题】:sqoop import parquet sizesqoop 导入拼花尺寸
【发布时间】:2018-05-31 21:36:05
【问题描述】:

我的问题是,我有一个包含 500k 行的 Oracle 表。我设置 sqoop 将其作为 parquet 文件导入 HDFS。我将 --num-partition 参数设置为 32,我得到了 32 个 parquet 文件,但是其中一个是 28 MB 大,其他只有 2-3 KB。

这是我的 sqoop 命令:

bin/sqoop import --connect <JDBC> --username <USER> --password <PASSWD> --table <TABLE> --target-dir <TARGET_DIR> -m32 --as-parquetfile --delete-target-dir --outdir <DIR>

我的问题是,这个文件大小可能是什么原因?

【问题讨论】:

    标签: oracle hadoop sqoop


    【解决方案1】:

    这意味着你的数据分布不均匀。

    我在命令中没有看到任何--split-by 列。因此,假设拆分是在主键上完成的。拆分基本上是通过同时运行范围查询来完成的。范围查询之一是获取最大数据,因此大小为 28 MB。

    【讨论】:

      【解决方案2】:

      我建议你根本不要拆分 sqoop 作业,只给“-m 1”。此外,500K 行对于 parquet 文件来说并不高; parquet 是一种可拆分的文件格式,因此大型 parquet 文件不会成为 mapreduce 的开销。

      【讨论】:

        猜你喜欢
        • 2018-08-25
        • 1970-01-01
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多