本節書摘來自華章出版社《flume日志收集與mapreduce模式》一書中的第2章,第2.1節,作者 [美] 史蒂夫·霍夫曼(steve hoffman)斯裡納特·佩雷拉(srinath perera),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視
二進制分發包中有個bin目錄,源檔案則位于src目錄中。源檔案隻包含了flume源代碼。二進制分發包體積要更大一些,這是因為它不僅包含了flume源代碼與編譯後的flume元件(jars、javadocs等),還包含了所有flume依賴的java庫。二進制包包含了與源檔案相同的maven pom檔案,是以如果從二進制分發包開始,那麼你可以重新編譯源代碼。
繼續,下載下傳(并驗證)二進制分發包,這樣可以在起步時節省一些時間。
hadoop分發包中的flume
某些hadoop分發包中自帶了flume。這些分發包可能提供了hadoop核心元件包與相關項目(比如flume),他們會考慮諸如版本相容性與額外的bug修複等問題。這些分發包沒什麼好壞之分,隻是有些不同而已。
當然了,缺點還是有的。分發包自帶的flume版本常常落後于apache釋出的版本。如果有你想要使用的新特性,那要麼等待分發包提供者進行移植,要麼自己打更新檔。此外,雖然分發包提供者做了大量的測試(就像任何通用平台一樣),但你還是有可能會遇到測試沒有覆寫的問題。在這種情況下,你就得采取一些變通方式或是深入研究源代碼了,還可以将更新檔送出到開源社群(這樣分發包就會在未來進行更新或是在下一個版本中将更新檔納入進來)。
是以,在hadoop分發包中,flume版本會有些老。這種事情的好壞就見仁見智了。通常情況下,大公司不喜歡不穩定的新技術,也不喜歡頻繁變化,因為變化可能是導緻意外的最常見的原因。你很難找到使用最新linux核心的公司,大部分使用的還是red hat enterprise linux(rhel)、centos、ubuntu lts等旨在提供穩定性與相容性的分發包。如果你是一家初創公司,建構下一代的網際網路時尚圈,那麼你可能需要這些新技術以在競争中處于上風。
如果考慮使用分發包,那麼請搜尋一下,看看每一種分發包都提供了什麼。記住,每一個分發包其實都希望你最後需要它們的企業服務,而這種服務并不便宜。自己好好想想吧。
下面是一個簡短且不權威的清單,列出了現有的一些廠商,你可以了解一下: