【问题标题】:Pig: Hadoop jobs FailPig:Hadoop 作业失败
【发布时间】:2014-12-17 11:41:59
【问题描述】:

我有一个从 csv 文件查询数据的 pig 脚本。

该脚本已在本地使用大小 .csv 文件进行了测试。

在小型集群中: 它从处理脚本开始,在完成 40% 的调用后失败

错误只是, Failed to read data from "path to file"

我的推断是,脚本可以读取文件,但是有一些连接断开,一条消息丢失

但我只收到上述错误。

【问题讨论】:

  • 如果任何答案解决了您的问题,请单击大复选框接受它作为答案。
  • 不幸的是它没有:/
  • 您能否提供更多信息,例如日志或异常?
  • export HADOOP_CLIENT_OPTS="-Xmx128m ${HADOOP_CLIENT_OPTS}" 将为容器中的每个任务(map 或 reduce)分配 128 MB(Yran 默认为 200),但堆大小默认为 1 GB可以通过设置环境变量 YARN_HEAPSIZE = Memory in MBs 来更改

标签: java csv hadoop apache-pig


【解决方案1】:

一般问题的答案是更改配置文件中的错误级别,将这两行添加到 mapred-site.xml

log4j.logger.org.apache.hadoop = error,A 
log4j.logger.org.apache.pig= error,A

在我的情况下,它是 OutOfMemory 异常

【讨论】:

    【解决方案2】:

    检查您的日志,根据需要提高详细级别,但您可能正面临 Out of Mem 错误。

    查看this answer,了解如何更改 Pig 日志记录。

    要更改 Hadoop 中的内存,请更改 hadoop-env.sh 文件,如您所见记录的 here

    # The following applies to multiple commands (fs, dfs, fsck, distcp etc)
    export HADOOP_CLIENT_OPTS="-Xmx128m ${HADOOP_CLIENT_OPTS}"
    

    对于 Apache PIG,您可以在 header of pig bash file

    # PIG_HEAPSIZE The maximum amount of heap to use, in MB.
    # Default is 1000.
    

    因此您可以使用export 或将其设置在您的.bashrc 文件中

    $ export PIG_HEAPSIZE=4096MB
    

    【讨论】:

    • 我刚刚跟着它,在log4j.properties文件中添加了两行,分别是log4j.logger.org.apache.hadoop = error, A log4j.logger.org.apache.pig= error , A 我会得到更多关于出了什么问题的信息吗?抱歉,每个脚本需要 1 小时才能出现错误(这个也在运行),想确定一下,关于内存不足,我如何在 Hadoop 中设置它?非常感谢
    • 确实是Out Of Memory Exception,我现在如何提升到Limit?
    • @MahmoudHabiballah 检查我对如何提高 Hadoop 和 Pig 的内存限制的编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2018-03-30
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多