【问题标题】:How to increase the heap size when using hadoop jar?使用hadoop jar时如何增加堆大小?
【发布时间】:2017-09-29 22:14:46
【问题描述】:

我正在使用hadoop jar 命令运行一个程序。但是,为了使该程序运行得更快,我需要增加 Hadoop 的堆大小。我尝试了以下方法,但它没有任何效果(我有 hadoop 版本 2.5),即使在同一个终端上也是如此。

export HADOOP_HEAPSIZE=16384
export HADOOP_OPTS="-Xmx16g"

我认为另一种方法是将以下内容添加到 mapred-site.xml 文件中,但不幸的是我不是管理员,所以不能这样做。

<property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx16384m</value>
</property>

还有其他方法可以做到这一点吗?

【问题讨论】:

  • 增加堆大小并不是加快程序运行速度的解决方案。您可以尝试其他方法,例如增加 Mapper、Reducer 或优化代码。
  • 程序的作者说要增加堆大小。我不是那个程序的作者,只是用户。
  • -Dmapred.child.java.opts=-Xmx16384m 添加到您的 hadoop jar 命令中
  • 效果不佳。

标签: java hadoop mapreduce bigdata heap-memory


【解决方案1】:

我通过修改HADOOP_CLIENT_OPTS环境变量解决了这个问题,如下图。

export HADOOP_CLIENT_OPTS="-Xmx16g $HADOOP_CLIENT_OPTS"

请注意,我使用的程序仅在主节点上运行。换句话说,它不是一个分布式应用程序。

【讨论】:

    【解决方案2】:

    使用适合我的 Hadoop jar 时增加堆大小的方法:

    HADOOP_CLIENT_OPTS="-XX:-UseGCOverheadLimit -Xmx16384m" hadoop jar parquetExample.jar 
    

    如您所见,您在同一行和hadoop jar 命令之前设置了环境变量的值(也适用于其他环境变量,在这种情况下,我将最大大小设置为16384m)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2012-06-17
      • 2012-09-26
      • 2013-12-24
      • 2011-09-29
      相关资源
      最近更新 更多