時間:2023-03-01來源:www.caymanbraccottage.com作者:電腦系統城
在Hadoop腳本遠程控制中,需要知道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。
2023-03-01
Linux服務器如何使用網絡代理2023-03-01
Dubbo 系列JDK SPI 原理解析2023-03-01
Linux系統下如何實現修改主機名一、vsftpd是什么? 二、搭建過程 1.查詢vsftpd是否存在和安裝成功 2.安裝vsftpd 3.查詢vsftpd版本號 4.其他命令 5.使用匿名用戶登錄 三、用戶設置 1.匿名用戶登錄 2.本地用戶登錄 3.使用虛擬用戶 四、公網vsftpd服務...
2022-12-15
3.配置 keepalived 3.1 master (172.16.225.111) 3.2 master (172.16.225.110) 4.配置 nginx_check.sh 5.關閉 selinux...
2022-12-15