用flume收集mapreduce的日志到hdfs,怎么一个hadoop jar产生一个日志文件

查看数: 20425 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-11-25 21:05

正文摘要:

用flume收集mapreduce的日志到hdfs(通过在log4j配置文件里面增加一个到flume的appender),怎么让一个hadoop jar *命令产生一个日志文件存储在hdfs上?

回复

w123aw 发表于 2015-11-26 19:12:13
shlp 发表于 2015-11-26 14:28
是啊,但我想要一个“hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input/ /output”比方 ...



我们hadoop 是Java程序,而hadoop jar只不过是运行Java的命令。假如我们hadoop jar运行一个helloWorld程序。
首先我们写出下面程序。当然如果你也可以直接套到mapreduce。这只是举例:

第一步 引入jar包:

第二步:
编写java代码:
import org.apache.log4j.Logger;

public class Hello {
    private static Logger logger = Logger.getLogger(Hello.class);
    public static void main(String args[]){
        System.out.println("hello word!");
        logger.debug("hello word!");
    }
}

第三步:

编写
log4j.properties文件:
内容如下:
log4j.rootLogger=debug,R
log4j.appender.R=org.apache.log4j.ConsoleAppender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %4r %5p %c{2}:%L - %m%n
这个文件需要放在src目录下

最后运行程序:会在控制台打出日志信息


这样在hadoop jar的时候,就产生了日志

shlp 发表于 2015-11-26 14:28:31
lmlm1234 发表于 2015-11-26 13:48
用flume收集mapreduce的日志到hdfs

是啊,但我想要一个“hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input/ /output”比方这样一条命令在hdfs上产生一个日志文件怎么实现啊?
shlp 发表于 2015-11-26 14:21:40
lmlm1234 发表于 2015-11-26 13:48
用flume收集mapreduce的日志到hdfs

是啊,但我想要一个“hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input/ /output”比方这样一条命令在hdfs上产生一个日志文件怎么实现啊?
lmlm1234 发表于 2015-11-26 13:48:16
用flume收集mapreduce的日志到hdfs
shlp 发表于 2015-11-26 09:44:08
bioger_hit 发表于 2015-11-25 21:59
log4j可以自定义用户名和路径。
storm到storm文件,并且做个标识
同理hadoop也是

按然后可以一个storm jar命令产生一个日志文件?有没有链接啊,
bioger_hit 发表于 2015-11-25 21:59:27
shlp 发表于 2015-11-25 21:57
没明白。。需求是说要将不同的日记都收集到flume上,但是要区分开哪些日志是由哪些任务产生,可能由mapre ...

log4j可以自定义用户名和路径。
storm到storm文件,并且做个标识
同理hadoop也是
bioger_hit 发表于 2015-11-25 21:36:16
hadoop jar 里面直接将日志放到hdfs亦可
关闭

推荐上一条 /2 下一条