如何修改Hadoop的默认日志级别,还真是麻烦

摘要:
我的Hadoop版本是2.6.4。Hadoop的默认日志级别是INFO。对于具有100个以上文件的集群,如果文件操作频繁,NameNode将猛烈地撞击日志,这将对性能产生一定影响。我们可以通过http:///logLevel在线修改NameNode的日志级别。Hadoop使用log4j记录日志。当然,我们希望修改${HADOOP_HOME}/etc/HADOOP/log4j。属性,但在修改和重新启动后,您将发现自然合并!!!

鄙人使用的Hadoop版本为2.6.4。Hadoop的默认日志级别为INFO,对于百台以上的集群,如果文件操作频繁的话,NameNode会狂打日志,对性能会有一定的影响。

我们可以通过http://<namenode:50070>/logLevel在线修改NameNode的日志级别。如下所示:

如何修改Hadoop的默认日志级别,还真是麻烦第1张

但是,如果NameNode重启的话,又得重新设置,好麻烦。

怎么设置默认的日志级别为WARN呢?

Hadoop使用的是log4j记录日志,我们理所当然会想到去修改${HADOOP_HOME}/etc/hadoop/log4j.properties,但是改完重启,你会发现然并卵!!!

尼玛,这是为啥,认真看了下log4j.properties的配置说明,发现一个关键点:

# Define some default values that can be overridden by system properties
hadoop.root.logger=WARN,console

意思就是说,这里的配置会被系统属性覆盖!

于是乎,查了下可能会设置系统属性的脚本,发现需要修改以下2个文件,才能把默认的日志级别改掉(我这里只改的HDFS的,Yarn的自行参考即可):

第一处是${HADOOP_HOME}/etc/hadoop/hadoop-env.sh,把INFO改为WARN即可:

# Command specific options appended to HADOOP_OPTS when specified
export HADOOP_NAMENODE_OPTS="-Xmx30720m -Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-WARN,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-WARN,NullAppender} $HADOOP_NAMENODE_OPTS"

还有一处藏的比较深,是启动脚本${HADOOP_HOME}/sbin/hadoop-daemon.sh,也需要这样改一下:

export HADOOP_ROOT_LOGGER=${HADOOP_ROOT_LOGGER:-"WARN,RFA"}

最后在重启下NameNode就可以了。

线上配合Zookeeper做了HA,所以可以平滑重启,直接使用以下命令先重启standby的NameNode,在将standby切换为active,在重启另一台NameNode就可以了。

# 先重启standby
cd ${HADOOP_HOME}/sbin
./hadoop-daemon.sh stop namenode
./hadoop-daemon.sh start namenode
# 切换active节点,这里的nn2将被切换为active节点
hdfs haadmin -failover <nn1> <nn2>
# 最后重启nn2就完事了,重启方式同上

免责声明:文章转载自《如何修改Hadoop的默认日志级别,还真是麻烦》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[大数据技术]datax的安装以及使用$_SERVER详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[大数据] hadoop高可用(HA)部署(未完)

一、HA部署架构   如上图所示,我们可以将其分为三个部分: 1.NN和DN组成Hadoop业务组件。浅绿色部分。 2.中间深蓝色部分,为Journal Node,其为一个集群,用于提供高可用的共享文件存储(元数据存储)。 3.蓝色部分为Zookeeper,提供自动NN切换。 在 hadoop全分布式安装 中,我们已经部署了一套全分布式的Hadoop集群,...

大数据系列(1)——Hadoop集群坏境搭建配置

前言 关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方案,更有很多数据相关的项目比如弄几张报表,写几个T-SQL语句就被冠以“大数据项目”,当然了,时下热门的话题嘛,先把“大数据”帽子扣上,这样才能显示出项目的高...

spark-2.2.0安装和部署——Spark集群学习日记

前言 在安装后hadoop之后,接下来需要安装的就是Spark。 scala-2.11.7下载与安装 具体步骤参见上一篇博文 Spark下载 为了方便,我直接是进入到了/usr/local文件夹下面进行下载spark-2.2.0 wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hado...

Linux中hadoop配置hdfs

.前提是hadoop已经安装配置成功 2.主要是修改core-site.xml和hdfs-site.xml这两个配置文件 3.我使用的是notepad++连接Linux进行修改的 4.进入notepad++中查看目录找到这两个配置文件 5.首先要在Linux中建立存放name和data的文件 进入Linux输入命令如下 创建三个文件夹 6.编辑core...

Hbase介绍及操作

1. Hbase概述 1.1 Hbase是什么 HBase是建立在HDFS之上的分布式面向列的数据库;属于KV结构数据,原生不支持标准SQL。它是一个Apache的开源项目,是横向扩展的。 HBase可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 HBase不同于一般的关系数据库,它是一个适合于非结构化数据...

Hadoop中JournalNode的作用

NameNode之间共享数据(NFS 、Quorum Journal Node(用得多)) 两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,...