MAPREDUCE服务 MRS-配置MapReduce Job基线:操作步骤
操作步骤
- 原则一:充分利用集群资源。
Job运行时,会让所有的节点都有任务处理,且处于繁忙状态,这样才能保证资源充分利用,任务的并发度达到最大。可以通过调整处理的数据量大小,以及调整map和reduce个数来实现。
reduce个数的控制使用“mapreduce.job.reduces”。
map个数取决于使用了哪种InputFormat,以及待处理的数据文件是否可分割。默认的TextFileInputFormat将根据block的个数来分配map数(一个block一个map)。通过如下配置参数进行调整。
参数入口:
进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。表1 参数配置-1 参数
描述
默认值
mapreduce.input.fileinputformat.split.maxsize
map输入信息应被拆分成的数据块的最大大小。
由用户定义的分片大小的设置及每个文件block大小的设置,可以计算分片的大小。计算公式如下:
splitSize = Math.max(minSize, Math.min(maxSize, blockSize))
如果maxSize设置大于blockSize,那么每个block就是一个分片,否则就会将一个block文件分隔为多个分片,如果block中剩下的一小段数据量小于splitSize,还是认为它是独立的分片。
-
mapreduce.input.fileinputformat.split.minsize
可以设置数据分片的数据最小值。
0
- 原则二:控制reduce阶段在一轮中完成。
避免以下两种场景:
- 大部分的reduce在第一轮运行完后,剩下唯一一个reduce继续运行。这种情况下,这个reduce的执行时间将极大影响这个job的运行时间。因此需要将reduce个数减少。
- 所有的map运行完后,只有个别节点有reduce在运行。这时候集群资源没有得到充分利用,需要增加reduce的个数以便每个节点都有任务处理。
- 原则三:每个task的执行时间要合理。
如果一个job,每个map或reduce的执行时间只有几秒钟,就意味着这个job的大部分时间都消耗在task的调度和进程启停阶段,因此需要增加每个task处理的数据大小。建议一个task处理时间为1分钟。
控制单个task处理时间的大小,可以通过如下配置来调整。
参数入口:
进入Yarn服务参数“全部配置”界面,在搜索框中输入参数名称。具体操作请参考修改集群服务配置参数章节。
表2 参数配置-2 参数
描述
默认值
mapreduce.input.fileinputformat.split.maxsize
map输入信息应被拆分成的数据块的最大大小。
由用户定义的分片大小的设置及每个文件block大小的设置,可以计算分片的大小。计算公式如下:
splitSize = Math.max(minSize, Math.min(maxSize, blockSize))
如果maxSize设置大于blockSize,那么每个block就是一个分片,否则就会将一个block文件分隔为多个分片,如果block中剩下的一小段数据量小于splitSize,还是认为它是独立的分片。
-
mapreduce.input.fileinputformat.split.minsize
可以设置数据分片的数据最小值。
0
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- MapReduce服务_什么是HDFS_HDFS特性
- 大数据分析是什么_使用MapReduce_创建MRS服务
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是HetuEngine_如何使用HetuEngine
- MapReduce服务_什么是Kafka_如何使用Kafka
- MapReduce服务_什么是Yarn_如何使用Yarn
- MapReduce服务_什么是Flink_如何使用Flink