2017-02-20 101 views
0

我有十个sevrers,他们每个人每天都会生成大约3G的日志文件。我完成了hadoop教程,并在每台机器上安装了每个hadoop(HDFS)。我想要的是使用map-reduce来分析这些日志。Hadoop处理多个节点的日志

我的问题是如何启用日常日志中的MP在hadoop?目前,服务器A,我手动复制日志文件到HDFS目录:

>hadoop fs -put local_log_path /A/log_20170219.1 

然后

>hadoop jar MR_path MP_driver_class /A/log_20170219.1 output_path. 

是否有其他更有效的办法,这样我就不必去各服务器,并手动将新生成的日志复制到DFS系统?命令fs -put确实涉及大型数据文件在这里移动吗?

回答

1

你可以看看在基于配置的服务器上存储服务器日志的hdfs服务这个用例的Apache水槽。

0

实现此目的有很多方法。

1)如果你想使用正常的方式,你可以检查出distcp,这比正常put或copyFromLocal命令增加了优势。 Distcp是简单的分布式副本。 然后,您可以安排cron执行distcp,然后在成功完成复制时执行jar。

欲了解更多信息: - https://hadoop.apache.org/docs/r1.2.1/distcp2.html

2)如果你想减少这方面的努力,并使用一个工具,那么你可以检查任何摄取工具,如水槽,Splunk的。