大数据脚本相关
1.xsync集群分發腳本
首先確保集群配置了SSH免密登錄。(詳見5)
(a)在/home/atguigu目錄下創建bin目錄(/home/atguigu/bin),并在bin目錄下xsync創建文件,文件內容如下:
[atguigu@hadoop102 ~]$ mkdir bin[atguigu@hadoop102 ~]$ cd bin/[atguigu@hadoop102 bin]$ touch xsync[atguigu@hadoop102 bin]$ vi xsync?
在該文件中編寫如下代碼
#!/bin/bash#1 獲取輸入參數個數,如果沒有參數,直接退出 pcount=$# if((pcount==0)); thenecho no args;exit;fi#2 獲取文件名稱 p1=$1fname=`basename $p1`echo fname=$fname#3 獲取上級目錄到絕對路徑 pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4 獲取當前用戶名稱 user=`whoami`#5 循環for((host=103; host<105; host++)); doecho ------------------- hadoop$host --------------rsync -rvl $pdir/$fname $user@hadoop$host:$pdirdone?
(b)修改腳本 xsync 具有執行權限
[atguigu@hadoop102 bin]$ chmod 777 xsync
(c)調用腳本形式:xsync 文件名稱
[atguigu@hadoop102 bin]$ xsync /home/atguigu/bin
2設置啟動集群(zookeeper hdfs yarn )
在/home/atguigu/bin創建start-cluster.sh,如果zookeeper不能啟動,在zkEnv.sh加上
?
start-cluster.sh
#!/bin/bash user=`whoami` echo "=============== 開始啟動所有節點服務 ===============" echo "=============== 正在啟動Zookeeper...... ===============" for((host=102; host<=104; host++)); doecho "--------------- hadoop$host Zookeeper...... ----------------"ssh $user@hadoop$host '/opt/module/zookeeper-3.4.10/bin/zkServer.sh start' done echo "================ 正在啟動HDFS ===============" ssh $user@hadoop102 '/opt/module/hadoop-2.7.2/sbin/start-dfs.sh' echo "================ 正在啟動YARN ===============" ssh $user@hadoop103 '/opt/module/hadoop-2.7.2/sbin/start-yarn.sh' echo "================ hadoop102正在啟動JobHistoryServer ===============" ssh $user@hadoop102 '/opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver' done(b)修改腳本 具有執行權限
[atguigu@hadoop102 bin]$ chmod 777 start-cluster.sh
3.關閉集群(zookeeper hdfs yarn )
在/home/atguigu/bin創建stop-cluster.sh
內容為
#!/bin/bash user=`whoami` echo "================ 開始停止所有節點服務 ===============" echo "================ hadoop102正在停止JobHistoryServer ===============" ssh $user@hadoop102 '/opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh stop historyserver' echo "================ 正在停止YARN ===============" ssh $user@hadoop103 '/opt/module/hadoop-2.7.2/sbin/stop-yarn.sh' echo "================ 正在停止HDFS ===============" ssh $user@hadoop102 '/opt/module/hadoop-2.7.2/sbin/stop-dfs.sh' echo "=============== 正在停止Zookeeper...... ===============" for((host=102; host<=104; host++)); doecho "--------------- hadoop$host Zookeeper...... ----------------"ssh $user@hadoop$host '/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop'done修改腳本 具有執行權限
[atguigu@hadoop102 bin]$ chmod 777 stop-cluster.sh
最后使用xsync 分發到其它集群上(切記要改變權限)
4.查看集群進程
在/home/atguigu/bin創建util.sh
內容為
#!/bin/bash for ip in hadoop102 hadoop103 hadoop104 doecho "------------------------------[ jps $ip ]-------------------------"ssh atguigu@$ip "source /etc/profile;jps" done5.SSH免登錄
無密鑰配置
(1)免密登錄原理,如圖所示
(2)生成公鑰和私鑰:
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三個回車),就會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)
(3)將公鑰拷貝到要免密登錄的目標機器上
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
6.配置群起Zookeeper
在/home/用戶名/bin下,創建zkstart.sh?
#!/bin/bash user=`whoami` echo "=============== 正在啟動Zookeeper...... ===============" for((host=102; host<=104; host++)); doecho "--------------- hadoop$host Zookeeper...... ----------------"ssh $user@hadoop$host '/opt/module/zookeeper-3.4.10/bin/zkServer.sh start' done創建zkStop.sh
#!/bin/bash user=`whoami` echo "=============== 正在停止Zookeeper...... ===============" for((host=102; host<=104; host++)); do echo "--------------- hadoop$host Zookeeper...... ----------------" ssh $user@hadoop$host '/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop' done修改權限 chmod 777
7.配置kafka后臺啟動
在kafka目錄下創建startkafka.sh
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &修改權限 chmod 777
./startkafka.sh 即可執行
只需要把startkafka.sh分發到各個機器,再獨自啟動即可
?
【注:
? ? ?a.?>kafka.log 將運行的日志寫到kafka中,? 2>&1?的意思就是將標準錯誤重定向到標準輸出。
? b. &:后臺運行。當你只使用“&”時,關閉終端,進程會關閉。所以當你要讓程序在后臺不掛斷運行時,需要將nohup和&一起使用。
? ? ? c.? 啟動命令首位加上nohup,即使停掉crt,kafka、flume依然可以在后臺執行,這樣就不用每次登陸,重新運行啟動命令了。如果需要停掉服務,只需運行 kill -9 [程序運行的號即可]
? ? ?】
?
轉載于:https://www.cnblogs.com/songdanlee/p/10646824.html
總結
- 上一篇: pyqt5模块介绍
- 下一篇: MyBatis入门及CRUD