我编写了类似smth的自定义oozie ftp操作(在“专业hadoop解决方案”中描述的简单示例:boris lublinsky;凯文t。史密斯;亚历克赛·雅库博维奇”)。我们在node1上有hdfs,在node2上有oozie服务器。node2还有hdfs客户端。
我的问题是:
oozie作业从node1开始(所有需要的文件都位于node1的hdfs上)。
oozie自定义ftp操作已成功从node2上的ftp下载csv文件(位于oozie服务器)
我应该将文件传递到hdfs中,并从node1上的csv创建外部表。我尝试使用java操作和调用 fileSystem.moveFromLocalFile(...)
方法。我也试着使用shell动作,比如 /usr/bin/hadoop fs -moveFromLocal /tmp\import_folder/filename.csv /user/user_for_import/imported/filename.csv
但我没有效果。所有动作似乎都试图查找node1上的文件。如果我从node2开始oozie作业,结果也是一样的。
问题:我可以将ftp操作的节点设置为从节点1上的ftp加载文件吗?或者我可以有任何其他方式来传递下载的文件在hdfs而不是描述?
2条答案
按热度按时间xpszyzbs1#
oozie在配置的map reduce集群的节点上作为mr作业运行其所有操作。无法让oozie在特定节点上运行某些操作。
基本上,您应该使用flume将文件摄取到hdfs中。在ftp节点上设置flume代理。
ippsafx72#
ozzie允许用户通过oozie sssh shell扩展在特定节点上运行shell脚本。https://oozie.apache.org/docs/4.2.0/dg_sshactionextension.html