場景:我們在網路上面有多臺MySql資料庫,我們想要使用Hadoop處理資料庫中的資料。
對于如何處理現在有兩種意見:
1. 要把資料從Mysql中取出,然后匯入到Hadoop的集群(集群和Mysql資料庫服務器不在同一個地方)中,然后進行處理,將處理的結果存盤到Mysql資料庫或者是Hbase中。
2. 直接用Hadoop操作資料庫。使用Hadoop的DBInputFormat讀取資料庫中的資料。具體的是這樣的,就是將Mysql資料庫所在的服務器,部署成Hadoop集群的一個節點。在Hadoop分配任務時,將任務分配到有相應資料的節點上,在通過API取資料,并執行資料分析的操作。
我現在是認為,第二種不太可行,但是我的大多數同學和老師都支持第二種,我就想問一下,這兩種應該哪種更適合。還有就是第二種,我記得那個操作資料庫的API,是在Job啟動的時候就已經配置好了吧,每次只能使用一個資料庫中的資料吧。
求解惑,謝謝了
uj5u.com熱心網友回復:
第二種。。沒太明白,可能沒用過你說的方式,不過第一種很明顯我覺著很好實作,就是用sqoop 直接匯出到hdfs上,然后自己寫mapreduce處理完資料,再sqoop出到資料庫就可以了。uj5u.com熱心網友回復:
如果你的mysql只有一臺而你的hadoop集群是三臺以上組成的
條件是這4臺機器的磁盤性能都是差不多的
那么第二種方式屬于瞎折騰
如果你們老師不服,讓他來找我
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/111410.html
標籤:云存儲
上一篇:一窮二白 門外漢
