hadoop参数

core-site.xml

io.file.buffer.size
  hadoop访问文件的IO操作都需要通过代码库。因此,在很多情况下,io.file.buffer.size都被用来设置缓存的大小。不论是对硬盘或者是网络操作来讲,较大的缓存都可以提供更高的数据传输,但这也就意味着更大的内存消耗和延迟。这个参数要设置为系统页面大小的倍数,以byte为单位,默认值是4KB,一般情况下,可以设置为64KB(65536byte)。

dfs.block.size
  参数定义了所有新建文件的默认数据块大小。这个参数的设定并不会影响文件系统中现有的文件,客户端在创建文件的时候,如果有特殊需要,可以重写该参数。
  dfs.block.size的单位是byte,默认值是67108864 (64MB)。对于很多情况来说,134217728 (128MB)更加合适。对于一个Mapreduce作业(尤其是用子类FileInputFormat定义输入格式的作业),对文件的每个数据块会启用一个map任务来处理。这就意味这数据块的大小显著地影响Mapreduce作业的效率。

hdfs-site.xml

dfs.datanode.du.reserved
  当DataNode想NameNode汇报可用的硬盘大小的时候,它会把所有dfs.data.dir所列出的可用的硬盘大小总和发给NameNode。由于mapred.local.dir经常会跟DataNode共享可用的硬盘资源,因为我们需要为Mapreduce任务保留一些硬盘资源。dfs.datanode.du.reserved定义了每个dfs.data.dir所定义的硬盘空间需要保留的大小,以byte为单位。默认情况下,该值为0.也就意味着HDFS可以使用每个数据硬盘的所有空间,节点硬盘资源耗尽时就会进入读模式。因此,建议每个硬盘都为map任务保留最少10GB的空间,如果每个Mapreduce作业都会产生大量的中间结果,或者每个硬盘空间都比较大(超过2TB),那么建议相应的增大保留的硬盘空间。

猜你喜欢

转载自www.cnblogs.com/water-sky/p/12034379.html
今日推荐