跨多个节点日志的Hadoop句柄

跨多个节点日志的Hadoop句柄,hadoop,hdfs,Hadoop,Hdfs,我有十个服务器,每个服务器每天都会生成大约3G日志文件。我已经完成了hadoop教程,并在每台机器上安装了每个hadoop HDFS。我想要的是使用map reduce来分析这些日志 我的问题是如何在hadoop中为MP启用每日日志?目前,对于服务器a,我手动将日志文件复制到HDFS目录: >hadoop fs -put local_log_path /A/log_20170219.1 然后 >hadoop jar MR_path MP_driver_class /A/l

我有十个服务器,每个服务器每天都会生成大约3G日志文件。我已经完成了hadoop教程,并在每台机器上安装了每个hadoop HDFS。我想要的是使用map reduce来分析这些日志

我的问题是如何在hadoop中为MP启用每日日志?目前,对于服务器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命令是否真的需要将大数据文件移动到这里

您可以看看apache flume,它可以根据配置将服务器日志存储在hdfs中

1如果您想使用普通方式,可以检查distcp,这比普通put或copyFromLocal命令具有更多优势。Distcp是简单的分布式拷贝。 然后,您可以安排一个cron来执行distcp,然后在复制成功完成时执行jar

有关更多信息:

2如果你想减少这一工作量并使用工具,那么你可以检查任何摄入工具,如水槽、Splunk