Hadoop脚本远程控制中SSH常见问题怎么解决
本篇内容主要讲解“Hadoop脚本远程控制中SSH常见问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hadoop脚本远程控制中SSH常见问题怎么解决”吧!
背景
在Hadoop脚本远程控制中,需要知道SSH一些常见的知识点。
SSH有三个知识点
使用ssh通过Hadoop脚本远程控制其他节点。
ssh配置免密模式。
ssh远程执行的时候有一个弊端,上面说到需要使用Java JDK,使用Java命令来启动jvm进程,那么这时候如果有一个节点a要去控制另一个节点b启动一个jvm进程,在使用ssh远程执行的时候,是不会加载对方的环境变量的 etc/profile文件的。
这边演示一下,有两台机器ip为118和119,在118节点中增加环境变量BIGDATA
[root@localhost ~]# vi /etc/profile// 在文件尾行追加,并保存文件export BIGDATA=hello
打印刚才的变量发现变量为空
[root@localhost ~]# echo $BIGDATA[root@localhost ~]#
因为当前bash在运行时已经加载了环境变量文件,之后的修改并没有应用到当前环境,我们可以用source重新加载文件,然后在输出变量就可以打印出对应的值了
[root@localhost ~]# source /etc/profile[root@localhost ~]# echo $BIGDATAhello[root@localhost ~]#
现在我们使用119节点,通过ssh让118节点远程执行输出变量值看一下效果
[root@localhost ~]# ssh root@192.168.0.118 'echo $BIGDATA'The authenticity of host '192.168.0.118 (192.168.0.118)' can't be established.ECDSA key fingerprint is SHA256:rDsunaro1f5LyKkEeNohXfDD9oEglNXtviD/JZtA1dw.ECDSA key fingerprint is MD5:51:38:8d:fc:e4:d2:c7:ce:66:09:c8:f2:e6:9e:a7:f2.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.0.118' (ECDSA) to the list of known hosts.root@192.168.0.118's password: [root@localhost ~]#
这时候我们可以发现没有打印变量值,这是因为在ssh远程登录到118节点的时候,不会加载/etc/profile文件,如果不加载的话,就无法获取到变量。
这样我们只能多执行一个命令去加载环境变量文件,再输出变量,这时候就可以输出变量值了。
[root@localhost ~]# ssh root@192.168.0.118 'source /etc/profile;echo $BIGDATA;'root@192.168.0.118's password: hello[root@localhost ~]#
到此,相信大家对“Hadoop脚本远程控制中SSH常见问题怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341