2014-01-10 85 views
0

我剛剛開始瞭解大數據,並對Hadoop感興趣。我打算構建一個簡單的分析系統,以瞭解我的網站中發生的某些事件。使用Hadoop設計分析系統

所以我打算讓代碼(包括前端和後端)觸發一些會排隊消息的事件(很可能與RabbitMQ)。這些消息將由消費者進行處理,消費者會將數據連續寫入HDFS。然後,我可以隨時運行地圖縮減作業來分析當前數據集。

我傾向於Amazon EMR的Hadoop功能。所以我的問題是,從我的服務器運行使用者,我如何將數據保存到HDFS?我知道有一個像「hadoop dfs -copyFromLocal」這樣的命令,但是如何在服務器之間使用它?有沒有工具可用?

有沒有人試過類似的東西?我很想聽聽你的實現。細節和例子會非常有幫助。謝謝!

回答

1

如果您提到EMR,它會從s3存儲中的文件夾中獲取輸入,因此您可以使用您的優先語言庫將數據推送到s3,以便稍後使用EMR作業進行分析。例如,在python中,可以使用boto

甚至有驅動程序允許您將s3存儲設備作爲設備安裝,但是前一段時間他們都是在生產系統中使用它們的人太多。可能是隨着時間而變化的事情。

EMR FAQ

問:如何讓我的數據導入Amazon S3嗎?您可以使用Amazon S3 API將 上傳數據到Amazon S3。或者,您可以使用許多開源 或商業客戶端輕鬆將數據上傳到Amazon S3。

請注意,emr(以及s3)意味着額外的成本,並且它的使用情況對於真正的大數據是合理的。還要注意,在Hadoop性能和存儲成本方面存在相對較大的文件總是有益的。

+0

難道真的要用S3嗎?或者我可以指定其他來源的輸入? – maru

+0

@beefjerky是的,你必須。請參閱已編輯答案中的常見問題解答鏈接 – alko

+0

儘管將輸入源限制爲S3,但看起來有些奇怪,但是,它確實在常見問題解答中提到了它 - 「在請求表單中,指定您的羣集名稱,Amazon S3中的位置你的輸入數據,你的處理應用程序......「。謝謝! – maru