1. 程式人生 > >關於hadoop中經常用到的一些指令碼

關於hadoop中經常用到的一些指令碼

準備: 前提是執行命令的機器必須可是同ssh免密到其他機器上,而且所有的機器必須安裝rsync
ssh
1、 ssh-keygen, 生成祕鑰
2、 ssh-copy-id 192.168.136.128(ip地址)
需要把公鑰考到本機器和要執行命令的其他機器
1、同步資料夾
yum -y install rsync
把這個檔案放到/usr/local/bin目錄下就可在任何地方執行了

使用直接使用 xsync 檔名/資料夾名
會同步這個資料夾到不同機器的相同目錄下

#!/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=1; host<6; host++)); do #一共5臺機器,bigdata01 到bigdata05 #echo $pdir/$fname [email protected]$host:$pdir echo --
------------- bigdata0$host ---------------- rsync -rvl $pdir/$fname [email protected]$host:$pdir done

2、xcall.sh jps
可以直接在一臺機器上檢視所有的程序
通過xcall.sh jps 可以檢視所有機器的所有程序

#!/bin/bash

params=[email protected]
i=1
for (( i=1 ; i <= 5 ; i = $i + 1 )) ; do
		#這裡bigdata是自己的hostname名稱, 我的是bigdata01-
05 #所以在前面加了個0 echo ============= bigdata0$i $params ============= ssh bigdata0$i "$params" done

一個命令開啟所有服務
檔名是hadoop.sh
使用
hadoop.sh start
hadoop.sh stop

#!/bin/bash
#輸入的命令 start| stop
params=[email protected]
#要啟動的命令的路徑,當然除此之外還可以根據需求配其他的
#比如說啟動zk服務等
yarn="/home/bigdata/install/hadoop-2.5.0-cdh5.3.6/sbin/${params}-yarn.sh"
dfs="/home/bigdata/install/hadoop-2.5.0-cdh5.3.6/sbin/${params}-dfs.sh"
jb="/home/bigdata/install/hadoop-2.5.0-cdh5.3.6/sbin/mr-jobhistory-daemon.sh ${params} historyserver"
http="/home/bigdata/install/hadoop-2.5.0-cdh5.3.6/sbin/httpfs.sh ${params}"
rm="/home/bigdata/install/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh ${params} resourcemanager"
echo ============= bigdata01 $dfs =============
$http
echo ============= bigdata01 $dfs =============
ssh bigdata01 $dfs
echo ============= bigdata01 $yarn =============
ssh bigdata01 $yarn

i=1
for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
    echo ============= bigdata0$i $params =============
	ssh bigdata0$i "$rm"
    ssh bigdata0$i "$jb"
done

**

注意:如果出現-bash: /usr/local/bin/xcall.sh: /bin/bash^M: bad interpreter:

**
需要在行末模式下輸入set fileformat=unix,然後回車
在這裡插入圖片描述
出現這個錯誤的原因可能是因為你在windos中編輯了
當set ff 看到如下,就表示可以啦
在這裡插入圖片描述
在這裡插入圖片描述