hadoop - 使用kite-dataset导入数据时如何避免mapreduce OutOfMemory Java堆空间错误?

标签 hadoop mapreduce hortonworks-data-platform kite-dataset

在我的 hortonworks HDP 2.6 集群上,我使用 kite-dataset 工具导入数据:

./kite-dataset -v csv-import ml-100k/u.data  ratings

我收到这个错误:

java.lang.Exception: java.lang.OutOfMemoryError: Java heap space
    at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: java.lang.OutOfMemoryError: Java heap space
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.init(MapTask.java:986)
    at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:402)
    at org.apache.hadoop.mapred.MapTask.access$100(MapTask.java:81)
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:698)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:770)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
    at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

我的集群节点有 16 GB 或 RAM,其中一些被列为可用。

我该怎么做才能避免这个错误?

最佳答案

我的第一 react 是询问您的启动参数是什么。通常,当您运行 MapReduce 并遇到内存不足错误时,您会使用如下内容作为启动参数:

-Dmapred.map.child.java.opts=-Xmx1G -Dmapred.reduce.child.java.opts=-Xmx1G

这里的关键是这两个金额是累加的。因此,在启动 MapReduce 后,您指定加在一起的数量不应超过系统上的可用内存。

关于hadoop - 使用kite-dataset导入数据时如何避免mapreduce OutOfMemory Java堆空间错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37796688/

相关文章:

java - 无法使用 Java 客户端 API 扫描 Hbase 中的表

authentication - 无需 Kerberos 或 AD/LDAP 的 Hbase 身份验证

hadoop - 是否可以在具有不同模式的 Parquet 文件上创建外部配置单元表?

java - 如何在 Java 项目中包含一个资源文件以仅与 new File() 一起使用?

hadoop - Hadoop的内置组件是什么?

hadoop - hadoop中具有复杂类型的ReadField

hadoop - NodeManager NameNode ResourceManager DataNode SecondaryNameNode 未运行

java - 迭代的MapReduce作业具有NumberFormatException错误

sorting - Hadoop - 按键正确排序并按 reducer 分组

hadoop - Ext JS 库未在 Oozie 中正确安装