在搭建Hadoop,JDK分发至slave1时,输入
scp -r /opt/servers/java/ slave1:/opt/servers/
报错
/opt/servers/java/man/ja is not a regular file
Uploading of file /opt/servers/java/man/ja to /opt/servers/java/man/ja failed!
在搭建Hadoop,JDK分发至slave1时,输入
scp -r /opt/servers/java/ slave1:/opt/servers/
报错
/opt/servers/java/man/ja is not a regular file
Uploading of file /opt/servers/java/man/ja to /opt/servers/java/man/ja failed!
引自免费微信小程序:皆我百晓生
看起来你在尝试通过SSH使用scp
命令将整个Java目录从主节点复制到名为slave1
的从节点上。错误信息表明,在源路径/opt/servers/java/man/ja
下的不是一个常规文件,而是可能是一个目录或者其他类型的文件。
为了解决这个问题,你需要确认man/ja
是否是一个文件夹。如果是文件夹,你不能直接使用scp
命令将其作为一个单独的文件传输。你应该使用递归选项 -r
来递归地复制整个目录及其内容。但是这里有个小问题,你已经在命令行中包含了这个选项,所以问题可能在于其他地方。
首先,检查/opt/servers/java/man/ja
是否真的存在,并且是一个文件还是一个目录。可以使用以下命令在本地执行:
ls -l /opt/servers/java/man/ja
这会显示目标路径的确切类型。如果它是目录,那么你的命令应该是正确的。如果不是,你可能需要删除它或者处理掉这个异常文件,然后重新尝试复制。
如果你确定man/ja
是目录,但仍然遇到问题,可能是权限问题或者是SSH密钥验证失败。确保你已经正确配置了SSH密钥对,这样你就可以无密码登录到slave1
。如果没有,你需要手动输入密码,或者设置密钥对自动认证。
如果你在本地和远程服务器之间没有设置密钥对,你可以按照这些步骤操作:
ssh-keygen -t rsa -b 4096
slave1
的 authorized_keys 文件中:
cat ~/.ssh/id_rsa.pub | ssh user@slave1 'cat >> ~/.ssh/authorized_keys'
scp -r /opt/servers/java/ user@slave1:/opt/servers/
这里的user
是你在slave1
上的用户名。
如果问题依然存在,请提供更多信息,例如/opt/servers/java/man/ja
的实际内容以及相关的SSH日志,以便更准确地定位问题。