hadoop 群起指令碼

2021-10-04 07:07:02 字數 1510 閱讀 5178

ssh執行遠端指令碼遇到的坑

ssh連線遠端主機執行指令碼的環境變數問題

ssh 這個方式使用的是bash的non-login + non-interactive模式。是不會讀取/etc/profile中的配置,但bash 會判斷標準輸入是否關聯到 sshd 這樣的網路鏈結上,如果是,會讀取 ~/.bashrc 配置檔案

* xcall 呼叫命令

> 例:xcall jps

```shell

#!/bin/bash

params=$@

i=100

for (( i=100 ; i <= 104 ; i = $i + 1 )) ; do

echo **********=== hadoop$i $params **********===

ssh hadoop$i "source /etc/profile;$params"

done

例:xsync /opt/module

#!/bin/bash

#1 獲取輸入引數個數,如果沒有引數,直接退出

pcount=$#

if((pcount==0))

;then

echo no args;

exit;fi

#2 獲取檔名稱

p1=$1

fname=

`basename $p1`

echo fname=

$fname

#3 獲取上級目錄到絕對路徑

pdir=

`cd -p $(dirname $p1)

;pwd

`echo pdir=

$pdir

#4 獲取當前使用者名稱

user=

`whoami

`#5 迴圈

for((host=

100; host<

105; host++));

doecho ------------------- hadoop$host --------------

rsync -rvl $pdir/$fname

$user@hadoop

$host

:$pdir

done

例:zk restart

#!/bin/bash

case

$1in

"start");

;"restart");

;"stop");

;esac

例:kk start

#!/bin/bash

case

$1in

"start");

;"stop");

;esac

Hadoop ZK群起指令碼

bin bash for i in hadoop01 hadoop02 hadoop03 do echo i ssh i opt software jdk1.8.0 171 bin jps done bin bash echo 開始啟動所有節點服務 echo 正在啟動zookeeper for i ...

zookeeper集群群起指令碼

前提條件 每個節點的zookeeper配置檔案都寫好 在datadir目錄下有myid檔案 最好是已經配置好ssh免密登入。然後就可以啟動了,如果我們機器很多的話,不可能一台一台的啟動。所以要寫個指令碼,我的主機名是有規律的hadoop101 hadoop102 hadoop103 所以建立指令碼的...

群起hadoop集群指令碼(開啟,關閉)

通過執行shell指令碼語句,實現群起hadoop集群 1.start.sh bin bash echo 正在開啟集群服務 echo 正在開啟namenode節點 ssh admin hadoop senior01.itguigu.com opt modules hadoop 2.5.0 cdh5....