網站首頁 編程語言 正文
背景
在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
[root@localhost ~]# vi /etc/profile
// 在文件尾行追加,并保存文件
export BIGDATA=hello
打印剛才的變量發現變量為空
[root@localhost ~]# echo $BIGDATA
[root@localhost ~]#
因為當前bash在運行時已經加載了環境變量文件,之后的修改并沒有應用到當前環境,我們可以用source重新加載文件,然后在輸出變量就可以打印出對應的值了
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $BIGDATA
hello
[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)? 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文件,如果不加載的話,就無法獲取到變量。
這樣我們只能多執行一個命令去加載環境變量文件,再輸出變量,這時候就可以輸出變量值了。
[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。
原文鏈接:https://juejin.cn/post/7202773809278730296
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-07-03 go實現分布式鎖
- 2023-01-04 C++無try-catch的異常捕獲示例詳解_C 語言
- 2022-05-11 Excel單元格空,設置為空字符串
- 2022-09-22 lex yacc與C++編寫代碼解析字符串代碼示例
- 2022-05-12 Kotlin 判斷泛型類型 reified
- 2022-06-28 C語言簡明清晰講解枚舉_C 語言
- 2022-03-26 docker?registry?私有倉庫的搭建過程_docker
- 2023-03-28 react-redux的connect示例詳解_React
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支