1. hbase 启动时遇到 log4j 的问题
问题描述: 我在 hbase 启动时曾遇到如下的问题
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
问题原因:缺少log4j包,运行需要使用log4j包作为默认日志。
解决方法:下载SLF4J对应的版本的log4j包,可以官网下载log4j包,如果有问题,请尝试不同版本的log4j。(我之前在配置 hbase 时把这个包给移除了,直接加上并在原名后面加上bak 如下:
mv slf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bak)
此时在运行 eclipse 可能会遇到如下的警报:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://master1/output already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:554)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:430)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1295)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1292)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1292)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1313)
at net.csdn.blog.zephyr.main.wordcount.main(wordcount.java:36)
此警报可以忽略,若想去掉可按如下配置:
(这种情况一般是由于log4j这个日志信息打印模块的配置信息没有给出造成的)
1.在运行 eclipce 的虚拟机上建立如下文件,文件名为:log4j.properties ,文件内容为:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
如下:
2.将 log4j.properties 放在
这个路径下的 src 中,如下图所示:
3.此时在 eclipse 中刷新一下便可看到 log4j.properties 文件,如下图所示:
4.此时重新运行程序不再有这个 warn 了!问题解决。