Hadoop学习MapReduce(三)

网友投稿 504 2022-05-30

在学习过MapReduce框架的几个关键类和接口后(只是简单的说明了类或者接口的作用及使用方式,要想深入了解如何工作的就需要深入研究源代码了,这也是计划中的学习任务),接下来看看任务的执行和环境,主要涉及的还是一些参数。TaskTracker将mapper/reducer任务作为子进程在不同的jvm中执行,子任务继承了父进程TaskTracker的环境。用户可以通过 mapred.{map|reduce}.child.java.opts配置参数指定额外的选项,比如通过-Djava.library.path=<>指定运行时链接器搜索共享库的非标准的路径。如果mapred.{map|reduce}.child.java.opts参数包含符号@taskid@ ,那么使用MapReduce任务的taskid的值替换@taskid@ 。需要注意的是mapred.{map|reduce}.child.java.opts只用于管理从TaskTracker加载的子任务。

下面是一个包含多个参数和替换的例子,展示了jvm的GC日志,启动了无密码登录的JVM JMX代理(这样可以连接到控制台等以查看子进程内存,线程和取得线程dump),分别设置了map和reduce子jvm的最大堆大小为512MB和1024MB,通过java.library.path为子jvm添加了额外的路径。代码如下:

Hadoop学习之MapReduce(三)

mapred.map.child.java.opts

 -Xmx512M -Djava.library.path=/home/mycompany/lib-verbose:gc -  Xloggc:/tmp/@taskid@.gc  -Dcom.sun.manage

Hadoop MapReduce

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 中你所不知的线程创建的第三种方法
下一篇:递归的执行机制
相关文章