hadoop - Hadoop 中的作业历史服务器是什么?为什么在 Map Reduce 模式下启动 Pig 之前必须启动历史服务器?

标签 hadoop mapreduce bigdata apache-pig history

在以 map reduce 模式启动 Pig 之前,您始终必须启动历史服务器,否则在尝试执行 Pig Latin 语句时会生成以下日志:

  2018-10-18 15:59:13,709 [main] INFO 
  org.apache.hadoop.mapred.ClientServiceDelegate - Application state 
  is completed. FinalApplicationStatus=SUCCEEDED. **Redirecting to job 
  history server**

  2018-10-18 15:59:14,713 [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=1000 
  MILLISECONDS)

如上日志所示,Pig 执行引擎正在尝试连接历史服务器请解释作业历史服务器在 Hadoop 中的作用以及为什么需要与 Pig 中的历史服务器建立连接以进行 Map Reduce工作

最佳答案

JobTracker 或 ResourceManager 将所有作业信息保存在内存中。对于完成的作业,它会丢弃它们以避免内存不足。这些过去工作的跟踪委托(delegate)给 JobHistory 服务器。

Pig 客户端在其作业完成时提取作业计数器统计信息。 Stats 仍然可以与 JobTracker/ResourceManager 一起使用,或者 pig 可能需要询问 JobHistory 服务器。当 JobHistory 服务器关闭时,它会打印出这些日志消息,但最终客户端应该仍然会成功,但会丢失统计信息。

关于hadoop - Hadoop 中的作业历史服务器是什么?为什么在 Map Reduce 模式下启动 Pig 之前必须启动历史服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52872301/

相关文章:

apache-spark - 在YARN中启用CPU调度是否会真正改善Spark中的并行处理?

hadoop - 如何在写入文件时禁用 Hive 中的日志

scala - 连接 hive 和spark时发生异常HDFS上的根暂存目录:/tmp/hive应该是可写的。当前权限是:rwxrwxr-x

java - Gradle添加Mahout依赖导致的错误

javascript - 动态修改字符串的 json 属性

java - 如何在键为null和setNumReduceTasks(0)的同时在MapReduce程序中为分隔符分配空白空间

hadoop - 如何在我的服务中快速/实时地从HDFS提供数据?

hadoop - mapreduce 中的默认排序是使用 WritableComparable 类中定义的 Comparator 还是 comapreTo() 方法?

hadoop - 将参数 "args"从主类传递给 Map 类