鄙人使用的Hadoop版本为2.6.4。Hadoop的默认日志级别为INFO,对于百台以上的集群,如果文件操作频繁的话,NameNode会狂打日志,对性能会有一定的影响。
我们可以通过http://<namenode:50070>/logLevel
在线修改NameNode的日志级别。如下所示:
但是,如果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的默认日志级别,还真是麻烦的更多相关文章
-
修改覆盖springboot默认日志策略logback
目录 背景 自定义 背景 springboot初始化了日志的默认实现,只要我们在配置文件添加对应的配置即可. 比如 logging: file: logs/application-debug.log ...
-
jenkins修改日志级别方法
1.jenkins日志有时候也会消耗掉很大内存,在传输时也会消耗掉大量带宽,如图,300+M的日志大小,太夸张了吧 2.修改日志级别的方法: 在配置文件里修改,重启后永久生效,配置路径:/etc/sy ...
-
springboot中动态修改logback日志级别
springboot中动态修改logback日志级别 在spring boot中使用logback日志时,项目运行中,想要修改日志级别. 代码如下: import org.slf4j.Logger; ...
-
springboot中动态修改log4j2日志级别
springboot中动态修改log4j2日志级别 在spring boot中使用log4j2日志时,项目运行中,想要修改日志级别. 1.pom.xml依赖: <dependency> & ...
-
Confluence 6 log4j 日志级别
日志级别 DEBUG - 被设计为用来获得最多的信息和事件,在对应用程序进行调试的时候,这个日志级别通常能够提供最多的有效信息(查看应用程序怎么了) INFO - 有关系统正常运行-计划任务运行,服务 ...
-
Spring Boot 测试时的日志级别
1.概览 该教程中,我将向你展示:如何在测试时设置spring boot 日志级别.虽然我们可以在测试通过时忽略日志,但是如果需要诊断失败的测试,选择正确的日志级别是非常重要的. 2.日志级别的重要性 ...
-
springboot 1.5.x中的动态切换日志级别
logback是一套日志框架,由log4j的优化版,由同一个作者开发,在速度和性能上都超过其他日志框架,再结合slf4j,已成为当前最流行的日志框架. 一.springboot中使用logback s ...
-
log4j2和logback动态修改日志级别工具类
工作中,在排查线上问题时,有以下场景在不重新部署或重启服务的情况下,需要动态调整线上日志级别 1.线上有些日志打印过多干扰有用的日志,需要动态修改线上日志记录器的打印日志级别,调高一些日志级别,打印出 ...
-
Apache Spark技术实战之9 -- 日志级别修改
摘要 在学习使用Spark的过程中,总是想对内部运行过程作深入的了解,其中DEBUG和TRACE级别的日志可以为我们提供详细和有用的信息,那么如何进行合理设置呢,不复杂但也绝不是将一个INFO换为TR ...
随机推荐
-
iOS开发之百度地图的集成——地图标注&;POI检索
本篇分为两部分: 一.地图标注 第一步:首先创建 BMKMapView 视图 第二步:在视图完全显示出来后设置,并实现代理方法 第三步:运行程序,此时大头针效果可以正常显示 二.POI检索 第一步:延 ...
-
Git fork指令
ork并且更新一个仓库 现在有这样一种情形:有一个叫做Joe的程序猿写了一个游戏程序,而你可能要去改进它.并且Joe将他的代码放在了GitHub仓库上.下面是你要做的事情: fork并且更新GitH ...
-
CHM木马
一. 弹出计算器 打开EasyCHM,工具 -> 反编译指定的CHM,选择目标文件和反编译工作目录. 进入反编译的工作目录,找到并编辑主页文件,这里是index.html 在<body&g ...
-
FastDFS 分布式文件系统的安装与使用
跟踪服务器:192.168.152.129 (centos1) 存储服务器:192.168.152.130 (centos2) 环境:CentOS 6.6 用户:root 数据目录:/fastdfs ...
-
PHP编码规范及建议
<h3 align="center">PHP编码规范及建议</h3>### 编码规范- PHP代码文件必须以 <?php 标签开始.```<?p ...
-
用Dw CS6运行静态页面出问题
1.报错截图一 2.报错截图二
-
Python内置函数(55)——round
英文文档: round(number[, ndigits]) Return the floating point value number rounded to ndigits digits afte ...
-
JQuery 中的选择器
选择器:允许通过标签名,属性名或内容对DOM元素进行快速,准确的选择,浏览器兼容性很好. 普通选择器 选择器 功能 返回值 #id 根据给定的ID匹配一个元素 单个元素 element 根据给定的元素 ...
-
npm 的 --save 和 --save-dev 的区别
--save-dev 是作为开发依赖保存到 packsge.json 中的 devDependencies 中,即在开发环境中用到的依赖,如 webpack.babel 等用于开发打包的依赖,只是在执 ...
-
django xadmin
1.11.13版本下的[安装]: 1.下载分支版本 https://github.com/nocmt/Xadmin1.11.x/archive/master.zip 2.解压,并将其放在site-pa ...