系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > server > anz > 详细页面

Hadoop脚本远程控制中SSH常见问题详解

时间:2023-03-01来源:www.pcxitongcheng.com作者:电脑系统城

在Hadoop脚本远程控制中,需要知道SSH一些常见的知识点。

SSH有三个知识点

1、使用ssh通过Hadoop脚本远程控制其他节点。

2、ssh配置免密模式。

3、ssh远程执行的时候有一个弊端,上面说到需要使用Java JDK,使用Java命令来启动jvm进程,那么这时候如果有一个节点a要去控制另一个节点b启动一个jvm进程,在使用ssh远程执行的时候,是不会加载对方的环境变量的 etc/profile文件的。

这边演示一下,有两台机器ip为118和119,在118节点中增加环境变量BIGDATA

1
2
3
[root@localhost ~]# vi /etc/profile
// 在文件尾行追加,并保存文件
export BIGDATA=hello

打印刚才的变量发现变量为空

1
2
[root@localhost ~]# echo $BIGDATA
[root@localhost ~]#

因为当前bash在运行时已经加载了环境变量文件,之后的修改并没有应用到当前环境,我们可以用source重新加载文件,然后在输出变量就可以打印出对应的值了

1
2
3
4
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $BIGDATA
hello
[root@localhost ~]#

现在我们使用119节点,通过ssh让118节点远程执行输出变量值看一下效果

1
2
3
4
5
6
7
8
[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)? yes
Warning: 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文件,如果不加载的话,就无法获取到变量。

这样我们只能多执行一个命令去加载环境变量文件,再输出变量,这时候就可以输出变量值了。

1
2
3
4
[root@localhost ~]# ssh root@192.168.0.118 'source /etc/profile;echo $BIGDATA;'
root@192.168.0.118's password:
hello
[root@localhost ~]#

总结下这个知识点的内容: JDK安装完都要设置环境变量,在每台节点中都要设置Java home环境变量,但是如果有一台节点要去调用别人使用Java命令启动的话,那么这时候通过ssh过去是得不到Java home环境变量的。所以在搭建的时候,装完JDK后,设置完Java home环境变量,在Hadoop的配置命令中再重新配置一次Java home的绝对路径。 要把Java的安装路径即告诉操作系统,也要告诉Hadoop。

分享到:

相关信息

  • Nginx主机域名配置实现

    一、配置多个端口访问不同文件 二、配置不同域名访问不同文件 三、配置不同域名访问同个文件...

    2023-03-17

  • Nginx配置-日志格式配置方式

    上线了一个小的预约程序,配置通过Nginx进行访问入口,默认的日志是没有请求时间的,因此需要配置一下,将每一次的请求的访问响应时间记录出来,备查与优化使用....

    2023-03-17

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载