如何为HDFS命令行指定日志级别?Hadoop 2.6.5是否支持?
Hadoop 2.6.5中获取HDFS命令调试日志的方法
首先明确:Hadoop 2.6.5不支持--loglevel选项,这个参数是2.7.0及后续版本才新增的,所以你之前执行hdfs --loglevel DEBUG dfs -cat /toto报错是正常的。
下面给你两种可行的调试日志获取方法:
临时修改log4j配置文件
- 找到Hadoop安装目录下的log4j配置文件,路径一般是
$HADOOP_HOME/etc/hadoop/log4j.properties - 找到
hadoop.root.logger=INFO,console这一行,把INFO改成DEBUG - 执行你的HDFS命令(比如
hdfs dfs -cat /toto),此时控制台会输出DEBUG级别的详细日志 - 操作完成后记得把配置改回原来的
INFO,避免后续所有Hadoop命令都输出大量调试日志
- 找到Hadoop安装目录下的log4j配置文件,路径一般是
通过环境变量
HADOOP_OPTS临时指定(更灵活,无需修改全局配置)
直接在执行命令时带上环境变量,精准指定HDFS模块的日志级别:HADOOP_OPTS="-Dlog4j.logger.org.apache.hadoop.hdfs=DEBUG" hdfs dfs -cat /toto如果需要更全面的调试日志,可以指定整个Hadoop包的级别:
HADOOP_OPTS="-Dlog4j.logger.org.apache.hadoop=DEBUG" hdfs dfs -cat /toto你之前用环境变量没效果,大概率是因为指定的logger路径不对,或者变量和命令的组合写法有误,按上面的格式执行就能生效。
内容的提问来源于stack exchange,提问作者Itération 122442
相关产品推荐
相关产品推荐

