這裏我有一個客戶端問題。我想從sql server(RDBMS)獲取表格到我的hdfs(hadoop集羣)。但服務器位於不同的位置。
1)訪問服務器的最佳方式是哪一種,但數據量很大。
2)與一臺服務器連接好,我們在全球有很多服務器,我們必須從這臺服務器獲取數據。
3)我們可以連接sqoop遠程獲取數據到HDFS。
這裏我有一個客戶端問題。我想從sql server(RDBMS)獲取表格到我的hdfs(hadoop集羣)。但服務器位於不同的位置。
1)訪問服務器的最佳方式是哪一種,但數據量很大。
2)與一臺服務器連接好,我們在全球有很多服務器,我們必須從這臺服務器獲取數據。
3)我們可以連接sqoop遠程獲取數據到HDFS。
你的問題有點不清楚,但是可以,你可以使用sqoop從你的服務器將數據導入HDFS。您需要在導入數據時指定連接參數:
sqoop import --connect <JDBC connection string> --table <tablename> --username <username> --password <password>
如果你需要從多臺服務器做多的進口,我建議你嘗試了Oozie這些進口自動化。你可以找到一個教程來實現這個here。
在寫下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個月大了這個答案,所以我希望這個問題會得到解決,但萬一有人想去這個要求的一步一步程序。
問候, 阿迪爾
其實我的服務器是在不同的位置,我必須通過互聯網訪問該服務器。所以客戶端系統中有大量的數據。如何將遠程服務器數據存儲到hdfs中,而不會丟失任何數據。 – user3174067
好吧,您的意思是您需要將數據從位於不同位置的服務器移動到集羣中的HDFS,對不對?那麼sqoop import命令的問題在哪裏? – Balduz
sqoop只用於從物理位置的服務器獲取數據,我認爲 – user3174067