有人能告诉我,使用HUE中的Oozie编辑器将文件从HDFS移动到我的namenode本地文件系统的最佳方法是什么? (不是命令行!)
我已经尝试了以下内容:
在我的工作流程中,我添加了 shell 节点,其中我尝试了
hadoop fs -get /path/to/hdfs/filename.csv /path/to/namenode/local_fs/filename.csv
这不起作用,所以我也在 shell 节点
中尝试了这个hadoop fs -copyToLocal /path/to/hdfs/filename.csv /path/to/namenode/local_fs/filename.csv
请注意,上面的命令已经在namenode的命令行上进行了测试和测试,但是在HUE的Oozie中运行时却没有。
事实上,在我尝试使用-get和-copyToLocal之前,我也试过了
hadoop fs -getmerge /path/to/hdfs/* /path/to/namenode/local_fs/filename.csv
由于 shell 节点中的所有这些命令都不起作用,我认为不妨尝试使用 SSH 节点
所以我创建了一个 SSH 节点,其中包含以下值
user: yarn
host: {namenode_ip}
command: hadoop fs -get /path/to/hdfs/filename.csv /path/to/namenode/local_fs/filename.csv
(我之所以选择纱线是因为看起来每当我打电话给#34; whoami"在一个shell节点中,它会显示纱线。我还确保/ path / to / namenode / local_fs /归纱线所有)
但是,它显示以下内容:
AUTH_FAILED:无法执行操作[ssh -o PasswordAuthentication = no -o KbdInteractiveDevices = no -o StrictHostKeyChecking = no -o ConnectTimeout = 20 yarn @ {namenode_id} _ip mkdir -p oozie-oozi / 0001302- 140930125511794-oozie-oozi-W / hdfs_get_from_namenode1 - ssh /] | ErrorStream:权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic,密码)。
我真的没有想法,我无法理解为什么我们必须经历如此多的箍才能将(连接的)文件从HDFS移动到本地FS !!!
有人可以给我一个暗示我可能犯错的地方吗?在HUE可以做到这一点吗?如果是的话,我错过了什么?
提前致谢
亚历
答案 0 :(得分:1)
不幸的是Oozie sh和ssh不支持将文件从HDFS传输到本地。取决于您的问题,可以尝试以下方法:
编写自己的Java代码并由Oozie运行。您可以阅读这篇文章:http://ehukai.com/2011/06/14/using-oozie-to-process-daily-logs/
如果最后你需要将文件传输到某个远程机器,我现在知道的最好的方法是转到NameNode Web UI(通常是http:// $ namenode:// 50070),然后下载文件在远程计算机中(例如,使用wget
)。
如果文件包含需要导入数据库的数据,您可以在Oozie中尝试使用Sqoop来执行此操作。