2015-12-08 59 views
1

我寫了像定製oozie FTP動作(簡單示例在「Professional Hadoop Solutions By:Boris Lublinsky; Kevin T. Smith; Alexey Yakubovich」中描述的簡單示例)。我們在節點1上有HDFS,在節點2上有Oozie服務器。 Node2也有HDFS客戶端。Oozie在隨機節點上運行shell腳本

我的問題:

  1. Oozie的工作從節點1(位於HDFS node1上所有需要的文件)開始。
  2. Oozie自定義FTP操作已成功下載節點2上FTP(位於oozie服務器上)的CSV文件
  3. 我應該將文件傳遞到HDFS並在node1上從CSV創建外部表。 我試圖用Java動作並調用fileSystem.moveFromLocalFile(...)方法。此外,我試圖使用殼牌行動,如/usr/bin/hadoop fs -moveFromLocal /tmp\import_folder/filename.csv /user/user_for_import/imported/filename.csv,但我沒有影響。所有的操作似乎都試圖在node1上查看文件。如果我從node2啓動oozie作業,結果會相同。

問題:我可以設置FTP操作的節點來從節點1上的FTP加載文件嗎?或者我可以使用其他方式在HDFS中傳遞下載的文件嗎?

回答

0

Oozie將其所有操作作爲配置的Map Reduce羣集節點上的MR作業運行。無法讓Oozie在特定節點上執行某些操作。

基本上,您應該使用Flume將文件攝入HDFS。在FTP節點上設置Flume代理。