当默认值为 4 时,sqoop 映射器如何将数据分成块?
How sqoop mappers split data into blocks when the default value is 4?
我知道 Sqoop 映射器的默认值是 4,我们可以更改该值。但是因为在 Sqoop 导入期间数据被保存在 HDFS 中,假设我的块大小是 128 MB 并且数据的总大小是 3 GB.这意味着我的数据将分成 24 个部分,不包括跨所有数据节点的复制。我的问题是,如果我使用 4 个 sqoop 映射器,那么它是如何分成 24 个部分的?每个映射器是否在内部将数据分成 6 个部分?这里到底发生了什么?我很迷惑!谁能帮帮我?
很久以后我得到了答案。答案很简单。它与数据存储在 HDFS 中的多少部分无关。因此,即使我在 Sqoop 期间使用了 4 个(默认)映射器并且数据保存在 4 个部分,当我尝试使用任何具有 10 个映射器的 MapReduce 作业时,4 个数据文件将数据分布在 10 个映射器中。所有这些都是更高层次的东西,用户不需要为此烦恼。
我知道 Sqoop 映射器的默认值是 4,我们可以更改该值。但是因为在 Sqoop 导入期间数据被保存在 HDFS 中,假设我的块大小是 128 MB 并且数据的总大小是 3 GB.这意味着我的数据将分成 24 个部分,不包括跨所有数据节点的复制。我的问题是,如果我使用 4 个 sqoop 映射器,那么它是如何分成 24 个部分的?每个映射器是否在内部将数据分成 6 个部分?这里到底发生了什么?我很迷惑!谁能帮帮我?
很久以后我得到了答案。答案很简单。它与数据存储在 HDFS 中的多少部分无关。因此,即使我在 Sqoop 期间使用了 4 个(默认)映射器并且数据保存在 4 个部分,当我尝试使用任何具有 10 个映射器的 MapReduce 作业时,4 个数据文件将数据分布在 10 个映射器中。所有这些都是更高层次的东西,用户不需要为此烦恼。