Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 基于数据量创建的地图作业数_Hadoop_Mapreduce - Fatal编程技术网

Hadoop 基于数据量创建的地图作业数

Hadoop 基于数据量创建的地图作业数,hadoop,mapreduce,Hadoop,Mapreduce,无论何时对任何数据量运行任何映射作业,默认情况下都会创建一定数量的映射作业。我想知道背后的逻辑 考虑一下当我试图在HDFS或上上传数据时的情况 使用sqoop将数据上载到配置单元 是否存在基于数据量的静态作业数,如 数学公式 是否有智能系统可以根据您的信息理解您的数据 监督聚类算法和it在每个地图中分组数据 我想知道Hadoop到底是如何知道映射作业的数量的,我试图在internet上找到答案,但找不到确切的答案。执行的映射任务的数量取决于计算的输入拆分的数量 计算输入拆分数量的逻辑取决于M

无论何时对任何数据量运行任何映射作业,默认情况下都会创建一定数量的映射作业。我想知道背后的逻辑

考虑一下当我试图在HDFS或上上传数据时的情况 使用sqoop将数据上载到配置单元

  • 是否存在基于数据量的静态作业数,如 数学公式
  • 是否有智能系统可以根据您的信息理解您的数据 监督聚类算法和it在每个地图中分组数据

我想知道Hadoop到底是如何知道映射作业的数量的,我试图在internet上找到答案,但找不到确切的答案。

执行的映射任务的数量取决于计算的输入拆分的数量

计算输入拆分数量的逻辑取决于MapReduce作业中使用的InputFormat

每个输入拆分将产生一个映射任务,因此如果有3个输入拆分,我们将有3个映射任务

如果仍需要自定义此逻辑,则可以创建自定义InputFormat


查看以了解更多详细信息

每个文件在HDFS中都表示为块。默认块大小为64MB

块的(BLK)数量大致等于(以mb为单位的数据量)/64

将为每个InputSplit创建映射程序进程。默认情况下,InputSplit的大小等于块的大小,即64 MB

为了遵守数据局部性原则,映射程序在块所在的同一台机器上执行。所以映射器的数量等于块的数量