日志聚集是指将分布式集群中各个节点上的应用程序日志收集并汇总到一个集中的位置,方便后续的查看、分析和管理。在 Hadoop 和 Spark 集群中,日志聚集是一项重要的功能,下面分别介绍如何在这两个集群中配置日志聚集操作。
Hadoop 集群日志聚集配置
1. 配置 yarn-site.xml
在 Hadoop 的 yarn-site.xml
文件中添加或修改以下配置项,该文件通常位于 $HADOOP_HOME/etc/hadoop
目录下:
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
yarn.log-aggregation-enable
:设置为true
表示启用日志聚集功能。yarn.nodemanager.remote-app-log-dir
:指定日志聚集的目标目录,这里使用 HDFS 路径/app-logs
。yarn.nodemanager.remote-app-log-dir-suffix
:指定日志文件的后缀,通常设置为logs
。
2. 配置 mapred-site.xml
在 mapred-site.xml
文件中添加或修改以下配置项,确保 MapReduce 作业的日志也能被正确聚集:
xml
<property>
<name>mapreduce.jobhistory.log-done-dir</name>
<value>/mr-history/done</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/mr-history/done_intermediate</value>
</property>
mapreduce.jobhistory.log-done-dir
:指定 MapReduce 作业完成后日志的存储目录。mapreduce.jobhistory.intermediate-done-dir
:指定 MapReduce 作业中间状态日志的存储目录。
3. 重启 YARN 和 MapReduce 服务
配置完成后,需要重启 YARN 和 MapReduce 服务使配置生效:
bash
$HADOOP_HOME/sbin/stop-yarn.sh
$HADOOP_HOME/sbin/stop-mapred.sh
$HADOOP_HOME/sbin/start-yarn.sh
$HADOOP_HOME/sbin/start-mapred.sh
Spark 集群日志聚集配置
1. 配置 spark-defaults.conf
在 Spark 的 spark-defaults.conf
文件中添加以下配置项,该文件通常位于 $SPARK_HOME/conf
目录下:
plaintext
spark.eventLog.enabled true
spark.eventLog.dir hdfs://<namenode>:<port>/spark-logs
spark.yarn.logAggregation.enabled true
spark.eventLog.enabled
:设置为true
表示启用 Spark 事件日志记录。spark.eventLog.dir
:指定 Spark 事件日志的存储目录,使用 HDFS 路径。spark.yarn.logAggregation.enabled
:设置为true
表示启用 Spark 作业在 YARN 上的日志聚集功能。
2. 重启 Spark 服务
配置完成后,需要重启 Spark 服务使配置生效:
bash
$SPARK_HOME/sbin/stop-all.sh
$SPARK_HOME/sbin/start-all.sh
查看聚集后的日志
配置完成并运行作业后,可以使用以下命令查看聚集后的日志:
bash
yarn logs -applicationId <application_id>
其中 <application_id>
是具体作业的应用 ID,可以在 YARN 资源管理器的 Web 界面中找到。
通过以上步骤,你可以在 Hadoop 和 Spark 集群中成功配置日志聚集操作,方便对集群中各个节点的日志进行集中管理和分析。