【问题标题】:Connection Error in Apache PigApache Pig 中的连接错误
【发布时间】:2013-07-29 15:11:32
【问题描述】:

我正在使用 Hadoop 2.0.5 运行 Apache Pig .11.1。

我在 Pig 中运行的大多数简单作业都运行良好。

但是,每当我尝试在大型数据集或 LIMIT 运算符上使用 GROUP BY 时,都会出现以下连接错误:

2013-07-29 13:24:08,591 [main] INFO  org.apache.hadoop.mapred.ClientServiceDelegate - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server 
013-07-29 11:57:29,421 [main] INFO  org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

2013-07-29 11:57:30,421 [main] INFO  org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

2013-07-29 11:57:31,422 [main] INFO  org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
...
2013-07-29 13:24:18,597 [main] INFO  org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-07-29 13:24:18,598 [main] ERROR org.apache.hadoop.security.UserGroupInformation - PriviledgedActionException as:gpadmin (auth:SIMPLE) cause:java.io.IOException

奇怪的是,这些错误持续出现大约 2 分钟后,它们就会停止,并且正确的输出显示在底部。

所以 Hadoop 运行良好并计算出正确的输出。问题只是这些连接错误不断弹出。

LIMIT 运算符总是会收到此错误。它发生在 MapReduce 模式和本地模式上。 GROUP BY 运算符可以在小型数据集上正常工作。

我注意到的一件事是,每当出现此错误时,作业都会在作业期间创建并运行多个 JAR 文件。但是,在这些消息弹出几分钟后,终于出现了正确的输出。

关于如何摆脱这些消息的任何建议?

【问题讨论】:

  • 你的namenode是本地的吗?如果没有,它会尝试在 0.0.0.0 访问它。它可能没有从 core-site.xml 中获取名称节点位置,或者您的 /etc/hosts 文件搞砸了。
  • namenode 是本地的。 core-site.xml 和 /etc/hosts 似乎都已正确配置,因为我的大多数其他 Pig/Hadoop 作业都按应有的方式工作。另外,在连接错误显示几分钟后会出现正确的作业输出。所以我认为问题是别的。
  • @AndyBotelho 也许值得检查一下jobhistory服务器的日志
  • @Andy Botelho 你能告诉我 1.) 你正在运行多少个节点集群 2.) 你使用的是什么 Linux 发行版 3.) 你的数据大小是多少
  • 是的,问题是作业历史服务器没有运行。为了解决这个问题,我们所要做的就是在命令提示符中输入这个命令: mr-jobhistory-daemon.sh start historyserver 这个命令启动作业历史服务器。现在,如果我们输入“jps”,我们可以看到 JobHistoryServer 正在运行,我的 Pig 作业不再浪费时间尝试连接到服务器。

标签: hadoop apache-pig


【解决方案1】:

是的,问题是作业历史服务器没有运行。

要解决这个问题,我们要做的就是在命令提示符中输入以下命令:

mr-jobhistory-daemon.sh start historyserver

此命令启动作业历史服务器。现在,如果我们输入“jps”,我们可以看到 JobHistoryServer 正在运行,并且我的 Pig 作业不再浪费时间尝试连接到服务器。

【讨论】:

  • 这很有帮助。 Pig 0.13 Hadoop 2.3.0 - 根本不会成功完成,它只会重试 10 次,然后重新开始。
  • 这是一个完美的答案!
  • 这个文件在我的版本的 sbin 目录中,仅供参考
  • 进入hive的bin目录,运行这个命令/home/hadoop/hive/bin
  • 为我工作,非常感谢,对我来说,mr-jobhistory-daemon.sh 文件在 sbin 目录中
【解决方案2】:

我认为,这个问题与 hadoop mapred-site 配置问题有关。历史服务器默认在 localhost 中运行,因此您需要添加您配置的主机。

<property>
 <name>mapreduce.jobhistory.address</name>
 <value>host:port</value>
</property>

然后触发这个命令 -

mr-jobhistory-daemon.sh start historyserver

【讨论】:

    【解决方案3】:

    我使用的是 Hadoop 2.6.0,所以我不得不这样做

    $ mr-jobhistory-daemon.sh --config /usr/local/hadoop/etc start historyserver
    

    哪里,/usr/local/hadoop/etc 是我的 HADOOP_CONF_DIR。

    【讨论】:

      【解决方案4】:

      我正在使用 Hadoop 2.2.0。这个问题是由于历史服务器没有运行。我不得不启动历史服务器。我使用以下命令启动历史服务器:

      [root@localhost ~]$ /usr/lib/hadoop-2.2.0/sbin/mr-jobhistory-daemon.sh 启动历史服务器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        相关资源
        最近更新 更多