我们正在使用HDP 2.4,并有许多地图减少写入以不同的方式(java的MR /蜂巢/等)的工作。 日志应用程序ID下是在Hadoop中的文件系统中采集。 我想收集应用程序的所有日志和单个文件(一台机器的HDFS或操作系统文件),附加这样我就可以分析我的应用程序日志在一个位置用了麻烦。 还建议我最好的方式HDP达到2.4(堆栈版本信息=> HDFS 2.7.1.2.4 /纱2.7.1.2.4 / MapReduce2 2.7.1.2.4 /日志搜索0.5.0 /水槽1.5.2.2.4 )。
Answer 1:
水槽无法收集日志他们已经在HDFS之后。
为了做到这一点,需要对所有NodeManagers运行的水槽剂指着配置yarn.log.dir
,并以某种方式解析出与本地操作系统文件路径的应用程序/集装箱/企图/文件信息。
我不知道收集成“单一文件”如何将工作,因为每个容器产生不同的信息至少5个文件,但YARN日志聚合已经这样做了。 它只是没有在HDFS一个可读的文件格式,除非你正在使用的Splunk /大块,据我所知
替代方案包括索引这些文件到像Solr的或Elasticsearch,我会建议在HDFS存储和搜索日志实际搜索服务
文章来源: HDP 2.4, How to collect hadoop mapreduce log using flume in one file and what is the best practice