gpt4 book ai didi

由于磁盘空间不足,Hadoop fs getmerge 到远程服务器/机器

转载 作者:可可西里 更新时间:2023-11-01 15:14:16 24 4
gpt4 key购买 nike

我和其他帖子有同样的问题: hadoop getmerge to another machine但答案对我不起作用

总结一下我想做的事情:从 hadoop 集群合并(或获取文件),而不是复制到本地机器(由于磁盘空间不足或没有),而是直接将它们传输到远程机器。我的公钥在远程机器授权 key 列表中,因此不需要密码验证。

我在本地机器上的常用命令是(合并文件并将其作为 gzip 文件放到本地服务器/机器上):

hadoop fs -getmerge folderName.on.cluster merged.files.in.that.folder.gz

我在另一篇文章中尝试过:

hadoop fs -cat folderName.on.cluster/* | ssh user@remotehost.com:/存储 | “cat > mergedoutput.txt”

这对我不起作用..我遇到了这类错误..

不会分配伪终端,因为标准输入不是终端。
ssh: 无法解析主机名 user@remotehost.com:/storage/: 名称或服务未知

我换个方式试了一下ssh user@remotehost.com:/storage "hadoop fs -cat folderName.on.cluster/*"| cat > 合并输出.txt然后:

-bash: cat > mergedoutput.txt: command not found
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: syntax error near unexpected token `('

感谢任何帮助。我也不需要执行 -getmerge,我也可以执行 -get,然后在复制到远程机器后合并文件。另一种选择是,如果有一种方法可以在远程服务器上运行命令以直接从 hadoop 集群服务器复制文件。

谢谢

想通了hadoop fs -cat folderName.on.cluster/* | ssh user@remotehost.com "cd 存储;cat > mergedoutput.txt"

这对我有用。感谢@vefthym 的帮助。

这会将 hadoop 集群目录中的文件合并到远程主机,而无需将其复制到本地主机 YAY(它已经很满了)。在我复制文件之前,我需要更改到我需要文件所在的另一个目录,因此 cd storage;cat merged output.gz

之前

最佳答案

很高兴您发现我的问题很有用!

我认为您的问题仅出在 ssh 中,而不出在您描述的解决方案中。它对我来说非常有效。顺便说一句,在第一个命令中,你有一个额外的'|'特点。如果您只输入 ssh user@remotehost.com,您会得到什么?您输入的是名称还是 IP?如果您键入一个名称,它应该存在于 /etc/hosts 文件中。

基于 this post ,我猜你正在使用 cygwin 并且有一些错误配置。除了the accepted solution ,检查是否安装了openssh cygwin包,如the second best answer建议。

关于由于磁盘空间不足,Hadoop fs getmerge 到远程服务器/机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com