2016-07-07 69 views
0

我需要跟踪当我运行作业或将文件上载到HDFS时发生的情况。我在sql server中使用sql profiler。但是,我错过了这样的hadoop工具,所以我假设我可以从logs获得一些信息。我所有的日志都存储在/ var/logs/hadoop /中,但我对我需要查看的文件以及如何设置该文件以捕获详细的级别信息感到困惑。查找并将Hadoop日志设置为详细级别

我正在使用HDP2.2。

谢谢, SREE

回答

0

'的Hadoop' 代表不同的产品的整个生态系统。每个人都有自己的日志记录。

  • HDFS由NameNode和DataNode服务组成。每个都有自己的日志。日志的位置依赖于分配。请参阅Hortonworks的File Locations或Cloudera的Apache Hadoop Log Files: Where to find them in CDH, and what info they contain
  • 在Hadoop 2.2中,MapReduce('jobs')是YARN中的一个特定应用程序,因此您在谈论ResourceManager和NodeManager服务(YARN组件),每个服务都有自己的日志,然后是MRApplication(M/R组件),这是YARN应用程序,但有自己的日志。
  • 工作由taks组成,任务本身有自己的日志。
  • 在Hadoop 2中,有一个专门的作业历史记录服务,负责收集和存储执行作业中的日志。
  • 更高级别的组件(例如Hive,Pig,Kafka)有他们自己的日志,从他们提交的作业(这些日志记录为任何作业)获得日志。

好消息是,供应商特定的分布(Cloudera,Hortonworks等)将提供一些特定的UI来公开最常见的日志以便于访问。通常它们会显示JobHistory服务从UI显示作业状态和作业历史记录中收集的日志。

我无法指出任何SQL Profiler等价物,因为问题空间的数量级更复杂,涉及许多不同的产品,版本和供应商特定的分布。我建议先阅读并了解Job History server如何运行以及如何访问它。