Oozie在随机节点

时间:2015-12-08 12:14:30

标签: shell hadoop ftp hdfs oozie

我写了类似自定义oozie FTP动作的smth(在“专业Hadoop解决方案:Boris Lublinsky; Kevin T. Smith; Alexey Yakubovich”中描述的简单示例)。我们在node1上有HDFS,在node2上有Oozie服务器。 Node2也有HDFS客户端。

我的问题:

  1. Oozie作业从node1开始(所有需要的文件位于node1上的HDFS上)。
  2. Oozie自定义FTP操作已成功从node2(位于oozie服务器上)的FTP下载了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之类的Shell操作,但我没有效果。所有操作似乎都试图查看node1上的文件。如果我从node2开始oozie作业,结果相同。
  4. 问题:我可以设置FTP操作的节点,以便在node1上从FTP加载文件吗?或者我可以通过其他方式在HDFS中传递下载的文件而不是描述?

2 个答案:

答案 0 :(得分:0)

Oozie在已配置的Map Reduce群集的节点上将其所有操作作为MR作业运行。没有办法让Oozie在特定节点上运行某些操作。

基本上,您应该使用Flume将文件摄取到HDFS中。在FTP节点上设置Flume代理。

答案 1 :(得分:0)

Ozzie允许用户通过oozie sssh shell扩展在特定节点上运行shell脚本。 https://oozie.apache.org/docs/4.2.0/DG_SshActionExtension.html