2014-01-08 34 views
0

floks訪問遠程服務器獲取數據並將其放入hdfs中

這裏我有一個客戶端問題。我想從sql server(RDBMS)獲取表格到我的hdfs(hadoop集羣)。但服務器位於不同的位置。

1)訪問服務器的最佳方式是哪一種,但數據量很大。

2)與一臺服務器連接好,我們在全球有很多服務器,我們必須從這臺服務器獲取數據。

3)我們可以連接sqoop遠程獲取數據到HDFS。

回答

1

你的問題有點不清楚,但是可以,你可以使用sqoop從你的服務器將數據導入HDFS。您需要在導入數據時指定連接參數:

sqoop import --connect <JDBC connection string> --table <tablename> --username <username> --password <password> 

如果你需要從多臺服務器做多的進口,我建議你嘗試了Oozie這些進口自動化。你可以找到一個教程來實現這個here

+0

其實我的服務器是在不同的位置,我必須通過互聯網訪問該服務器。所以客戶端系統中有大量的數據。如何將遠程服務器數據存儲到hdfs中,而不會丟失任何數據。 – user3174067

+0

好吧,您的意思是您需要將數據從位於不同位置的服務器移動到集羣中的HDFS,對不對?那麼sqoop import命令的問題在哪裏? – Balduz

+0

sqoop只用於從物理位置的服務器獲取數據,我認爲 – user3174067

0

在寫下sqoop導入之前,需要爲每個遠程節點分配一個用戶,該用戶將由本地數據庫標識。例如:

create user 'username'@'<ip of remote node>' IDENTIFIED BY 'password'; 

您還必須確保根據您的要求授予這些用戶的授予權限。 它,那麼你可以框定sqoop進口,一個如下面的例子:

$SQOOP_HOME/bin/sqoop import --connect jdbc:mysql://<ip address of remote server node> :port_number/<database_name> --username user --password password --table <table to import> 

這個問題是5個月大了這個答案,所以我希望這個問題會得到解決,但萬一有人想去這個要求的一步一步程序。

問候, 阿迪爾