2017-02-20 66 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的。