国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大數(shù)據(jù)開發(fā)中常用組件服務(wù)的集群管理腳本整理集合

這篇具有很好參考價值的文章主要介紹了大數(shù)據(jù)開發(fā)中常用組件服務(wù)的集群管理腳本整理集合。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

大數(shù)據(jù)環(huán)境相關(guān)腳本

bash運(yùn)行模式說明

bash的運(yùn)行模式可分為login shell(用戶名、密碼登錄)和non-login shell(SSH登錄)。

兩者登錄方式加載情況:

1.login shell啟動時會加載:/etc/profile,~/.bash_profile,~/.bashrc

2.non-login shell啟動時會加載:~/.bashrc

注意:~/.bashrc實(shí)則會加載/etc/bashrc,/etc/bashrc又加載/etc/profile.d/*.sh

SSH登錄注意:

當(dāng)SSH到其他節(jié)點(diǎn)的時候是使用non-login shell模式,默認(rèn)是不加載/etc/profile配置文件,也就會導(dǎo)致環(huán)境變量信息未配置,從而會找不到部分命令的問題

創(chuàng)建shell腳本目錄

創(chuàng)建/root/shell目錄,用于存放shell腳本

/etc/bashrc文件配置shell腳本目錄,將其作為環(huán)境變量,以便在任何地方使用新建的shell腳本

# My Shell
export PATH=$PATH:/root/shell

配置hosts

配置每個節(jié)點(diǎn)的hosts文件,設(shè)置節(jié)點(diǎn)IP與Name的映射。

vim /etc/hosts

172.29.234.1 node01
172.29.234.2 node02
172.29.234.3 node03
172.29.234.4 node04
172.29.234.5 node05

SSH自動配置腳本

執(zhí)行腳本來自動配置各個節(jié)點(diǎn)免密登錄。

vim ssh_config.sh

#! /bin/bash
function sshPasswordLogin() {
    # 檢測expect服務(wù)是否存在,不存在則使用yum安裝expect
    expectIsExists=$(rpm -qa | grep expect)
    if [ -z "$expectIsExists" ]; then
        yum -y install expect
    fi
    
    # 密鑰對不存在則創(chuàng)建密鑰
    if [ ! -f /root/.ssh/id_rsa.pub ]; then
        ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
    fi
    
    # 服務(wù)器列表
    # servers=("IP地址1 用戶名1 密碼1" "IP地址2 用戶名2 密碼2" "IP地址3 用戶名3 密碼3")
    servers=("node01 root 123456" "node02 root 123456" "node03 root 123456" "node04 root 123456" "node05 root 123456")
    
    for server in "${servers[@]}"; do
        hostname=$(echo "$server" | cut -d " " -f1)
        username=$(echo "$server" | cut -d " " -f2)
        password=$(echo "$server" | cut -d " " -f3)
        
        echo "Configuring password login on $hostname..."
        
        expect <<EOF
            spawn ssh-copy-id "$username@$hostname"
            expect {
                "yes/no" {
                    send "yes\n"
                    exp_continue
                }
                "password" {
                    send "$password\n"
                    exp_continue
                }
                eof
            }
EOF
    done
}
sshPasswordLogin

更改執(zhí)行權(quán)限

chmod +x ssh_config.sh

在各個節(jié)點(diǎn)執(zhí)行ssh_config.sh腳本,然后就會自動進(jìn)行SSH互相配置密碼登錄

[root@node01 ~]# ./ssh_config.sh
[root@node02 ~]# ./ssh_config.sh
[root@node03 ~]# ./ssh_config.sh
[root@node04 ~]# ./ssh_config.sh
[root@node05 ~]# ./ssh_config.sh

文件同步、復(fù)制工具rsync

rsync 是一個功能強(qiáng)大的文件同步和復(fù)制工具,可以在本地或遠(yuǎn)程服務(wù)器之間進(jìn)行文件傳輸和備份。

通過運(yùn)行以下命令安裝

# CentOS/RHEL
yum install rsync

# Ubuntu/Debian 
apt-get install rsync

基本用法

1.本地文件復(fù)制:

把source 目錄下的文件復(fù)制到 destination 目錄

rsync /path/to/source/file /path/to/destination/

2.本地目錄復(fù)制:

使用 -a 參數(shù)表示遞歸復(fù)制目錄,-v 參數(shù)表示顯示詳細(xì)的復(fù)制過程

rsync -av /path/to/source/directory/ /path/to/destination/directory/

3.本地文件同步:

使用 --delete 參數(shù)可以保持源和目標(biāo)目錄的同步,刪除目標(biāo)目錄中不存在于源目錄的文件

rsync -av --delete /path/to/source/directory/ /path/to/destination/directory/

4.遠(yuǎn)程文件復(fù)制:

通過 SSH 連接復(fù)制本地文件到遠(yuǎn)程服務(wù)器。-z 參數(shù)表示使用壓縮來加速傳輸

rsync -avz -e "ssh" /path/to/local/file user@remote:/path/to/destination/

5.遠(yuǎn)程目錄復(fù)制:

rsync -avz -e "ssh" /path/to/local/directory/ user@remote:/path/to/destination/directory/

文件同步腳步

將指定的文件傳輸?shù)矫總€指定的主機(jī)節(jié)點(diǎn),在傳輸之前,會檢查文件是否存在,然后創(chuàng)建相應(yīng)的目錄并使用 rsync 進(jìn)行傳輸。

這個腳本將循環(huán)復(fù)制當(dāng)前節(jié)點(diǎn)指定目錄下的文件到其他節(jié)點(diǎn)的相同路徑下

vim sync.sh

#! /bin/bash
# 檢查是否提供了足夠的命令行參數(shù)
if [ $# -lt 1 ]; then
	echo Not Enough Arguement!
	exit
fi


# 遍歷集群所有機(jī)器
for host in node01 node02 node03 node04 node05; do
	echo ==================== $host ====================
	# 遍歷所有目錄,挨個發(fā)送
	for file in $@; do
		# 檢查文件是否存在
		if [ -e $file ]; then
			#  獲取父目錄
			pdir=$(
				cd -P $(dirname $file)
				pwd
			)
			# 獲取當(dāng)前文件的名稱
			fname=$(basename $file)
			# 在遠(yuǎn)程主機(jī)執(zhí)行創(chuàng)建目錄的命令
			ssh $host "mkdir -p $pdir"
			# 將文件傳輸?shù)竭h(yuǎn)程主機(jī)的相應(yīng)目錄
			rsync -av $pdir/$fname $host:$pdir
		else
			echo $file does not exists!
		fi
	done
done

更改執(zhí)行權(quán)限

chmod +x sync.sh

使用文件同步腳本,進(jìn)行分發(fā)同步hosts配置信息

[root@node01 ~]# sync.sh /etc/hosts

命令執(zhí)行腳本

遍歷服務(wù)器名稱列表,然后在每臺服務(wù)器上運(yùn)行指定的命令

#! /bin/bash
for i in node01 node02 node03 node04 node05
do
	echo --------- $i ----------
	ssh $i "$*"
done

更改執(zhí)行權(quán)限

chmod  +x call.sh

使用示例

call.sh jps

使用命令執(zhí)行腳本,在每個節(jié)點(diǎn)執(zhí)行指定的命令

[root@node01 ~]# call.sh jps

節(jié)點(diǎn)循環(huán)簡化

定義一個hosts文件

node01
node02
node03
node04
node05

以命令執(zhí)行腳本簡化為例說明:

#!/bin/bash
for host in `cat /root/hosts` ;
do
	# tput命令,用于設(shè)置終端輸出的文本顏色為綠色
    tput setaf 2
         echo ======== $host ========
    # 將終端輸出的文本顏色重置為默認(rèn)顏色     
    tput setaf 7
        ssh $host "$@"
done

大數(shù)據(jù)組件相關(guān)腳本

Hadoop集群腳本

vim hadoop.sh

#!/bin/bash
# Hadoop安裝目錄
HADOOP_HOME="/usr/local/program/hadoop"
# namenode分配節(jié)點(diǎn)
NAMENODE="node01"
COMMAND=""

if [ $# -lt 1 ]; then
    echo "請輸入命令參數(shù) start 或 stop"
    exit
fi

case $1 in
    "start")
        echo "=================== 啟動 Hadoop 集群 ==================="
        echo "--------------- 啟動 HDFS ---------------"
        ssh $NAMENODE "$HADOOP_HOME/sbin/start-dfs.sh"
        echo "--------------- 啟動 YARN ---------------"
        ssh $NAMENODE "$HADOOP_HOME/sbin/start-yarn.sh"
        ;;
    "stop")
        echo "=================== 關(guān)閉 Hadoop 集群 ==================="
        echo "--------------- 關(guān)閉 YARN ---------------"
        ssh $NAMENODE "$HADOOP_HOME/sbin/stop-yarn.sh"
        echo "--------------- 關(guān)閉 HDFS ---------------"
        ssh $NAMENODE "$HADOOP_HOME/sbin/stop-dfs.sh"
        ;;
    *)
        echo "無效參數(shù): $1"
        echo "請輸入: start 或 stop"
        exit 1
        ;;
esac

啟動、停止Hadoop

hadoop.sh start

hadoop.sh stop

Zookeeper集群腳本

vim zk.sh

#!/bin/bash
case $1 in
"start")
	for i in node01 node02 node03; do
		echo "----------------------zookeeper $i 啟動----------------------"
		ssh $i "/usr/local/program/zookeeper/bin/zkServer.sh start"
	done
	;;
"stop")
	for i in node01 node02 node03; do
		echo "----------------------zookeeper $i 停止----------------------"
		ssh $i "/usr/local/program/zookeeper/bin/zkServer.sh stop"
	done
	;;
"status")
	for i in node01 node02 node03; do
		echo "----------------------zookeeper $i 狀態(tài)----------------------"
		ssh $i "/usr/local/program/zookeeper/bin/zkServer.sh status"
	done
	;;
*)
	echo "無效的命令"
	;;
esac

修改腳本執(zhí)行權(quán)限

chmod +x zk.sh

啟動、停止Zookeeper

zk.sh start

zk.sh stop

Kafaka集群腳本

vim kafaka.sh

#!/bin/bash

if [ $# -eq 0 ]; then
  echo "請輸入命令參數(shù) start 或 stop"
  exit 1
fi

KAFKA_HOME="/usr/local/program/kafka"

case $1 in
"start")
  for node in "node01" "node02" "node03"; do
    echo "----------------------kafka $node 啟動----------------------"
    ssh $node "$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
    # 通過$?獲取上一個命令的執(zhí)行狀態(tài)。如果執(zhí)行狀態(tài)不為 0,則表示啟動或停止失敗
    if [ $? -ne 0 ]; then
      echo "啟動 $node 失敗"
    fi
  done
  ;;
"stop")
  for node in "node01" "node02" "node03"; do
    echo "----------------------kafka $node 停止----------------------"
    ssh $node "$KAFKA_HOME/bin/kafka-server-stop.sh"
    if [ $? -ne 0 ]; then
      echo "停止 $node 失敗"
    fi
  done
  ;;
*)
  echo "無效參數(shù): $1"
  echo "請輸入: start 或 stop"
  exit 1
  ;;
esac

修改腳本執(zhí)行權(quán)限

chmod +x kafaka.sh

啟動、停止Kafaka

kafaka.sh start

kafaka.sh stop

Flume集群腳本

創(chuàng)建vim flume.sh集群啟動停止腳本

#!/bin/bash
# flume執(zhí)行節(jié)點(diǎn)
REMOTE_HOST="node01"
# flume-ng位置
FLUME_EXECUTABLE="/usr/local/program/flume/bin/flume-ng"
# flume配置目錄
FLUME_CONF_DIR="/usr/local/program/flume/conf/"
# flume配置文件
FLUME_CONF_FILE="/usr/local/program/flume/job/file_to_kafka.conf"
# 執(zhí)行進(jìn)程名稱
PROCESS_NAME="file_to_kafka"

case $1 in
"start")
    echo " ---------------啟動flume采集--------------"
    ssh "$REMOTE_HOST" "nohup $FLUME_EXECUTABLE agent -n a1 -c \"$FLUME_CONF_DIR\" -f \"$FLUME_CONF_FILE\" >/dev/null 2>&1 &"
    ;;

"stop")
    echo " ---------------停止flume采集--------------"
    ssh "$REMOTE_HOST" "ps -ef | grep $PROCESS_NAME | grep -v grep |awk  '{print \$2}' | xargs -n1 kill -9 "
    ;;

*)
    echo "無效參數(shù): $1"
    echo "請輸入: start 或 stop"
    exit 1
    ;;
esac

修改腳本執(zhí)行權(quán)限

chmod +x flume.sh

啟動、停止Flume文章來源地址http://www.zghlxwxcb.cn/news/detail-732509.html

flume.sh start

flume.sh stop

到了這里,關(guān)于大數(shù)據(jù)開發(fā)中常用組件服務(wù)的集群管理腳本整理集合的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 開發(fā)必備的常用 Linux 命令整理

    開發(fā)必備的常用 Linux 命令整理

    在前面的文章中,截止到 微服務(wù)系列:分布式日志 ELK 搭建指南 這篇,我們終于算是將微服務(wù)系列給基本學(xué)完了,一時間難以決定接下來要寫些什么東西。 想了想還是決定寫幾篇 Linux 相關(guān)命令的文章,畢竟平時也經(jīng)常去 Linux 服務(wù)器上部署項(xiàng)目,你可能會問,部署這塊不應(yīng)該

    2024年02月07日
    瀏覽(19)
  • TiDB 應(yīng)急運(yùn)維腳本,更加方便的管理TiDB集群

    TiDB 應(yīng)急運(yùn)維腳本,更加方便的管理TiDB集群 使用方法 修改權(quán)限 使用示例

    2024年02月12日
    瀏覽(15)
  • 手把手教你快速在生產(chǎn)環(huán)境搭建Doris集群附集群啟停管理腳本

    手把手教你快速在生產(chǎn)環(huán)境搭建Doris集群附集群啟停管理腳本

    組件分布規(guī)劃 節(jié)點(diǎn) node4 node5 node6 node7 node8 Node9 Node10 Node11 服務(wù) FE(follower) BE FE(follower) BE FE(follower) BE FE(observer) BE BE Broker BE Broker BE BE Ip 192.168.22.34 192.168.22.35 192.168.22.36 192.168.22.37 192.168.22.20 192.168.22.16 192.168.22.17 192.168.22.18 根據(jù)自己集群的軟硬件配置,選擇合適的版本

    2024年02月02日
    瀏覽(28)
  • 大數(shù)據(jù)集群遷移整理

    大數(shù)據(jù)集群遷移整理

    1. 遷移之前需要考慮的問題 遷移總數(shù)據(jù)量有多少? 新老集群之間的帶寬有多少?能否全部用完?為了減少對線上其他業(yè)務(wù)的影響最多可使用多少帶寬? 如何限制遷移過程中使用的帶寬? 遷移過程中,哪些文件可能發(fā)生刪除,新增數(shù)據(jù)的情況?新數(shù)據(jù)和舊數(shù)據(jù)怎么處理?哪些

    2024年02月04日
    瀏覽(11)
  • 服務(wù)器常用端口_整理(不定時更新)

    21 端口 : 是 FTP 服務(wù),F(xiàn)TP服務(wù)主要是為了在兩臺計(jì)算機(jī)之間實(shí)現(xiàn)文件的上傳與下載,一臺計(jì)機(jī)作為FTP客戶端,另一臺計(jì)算機(jī)作為FTP服務(wù)器,可以采用匿名登錄和授權(quán)用戶名與密碼登錄兩種方式登錄FTP服務(wù)器 22 端口 : 是 SSH 端口,用于通過命令行模式遠(yuǎn)程連接系統(tǒng)服務(wù)器 23 端口

    2024年02月10日
    瀏覽(16)
  • Kubernetes集群管理 —追蹤 Kubernetes 系統(tǒng)組件、代理

    特性狀態(tài): Kubernetes v1.27 [beta] 系統(tǒng)組件追蹤功能記錄各個集群操作的時延信息和這些操作之間的關(guān)系。 Kubernetes 組件基于 gRPC 導(dǎo)出器的 OpenTelemetry 協(xié)議 發(fā)送追蹤信息,并用 OpenTelemetry Collector 收集追蹤信息,再將其轉(zhuǎn)交給追蹤系統(tǒng)的后臺。 關(guān)于收集追蹤信息、以及使用收集器

    2024年02月14日
    瀏覽(22)
  • 13個程序員常用開發(fā)工具用途推薦整理

    作為一名剛?cè)腴T的程序員,選擇合適的開發(fā)工具可以提高工作效率,加快學(xué)習(xí)進(jìn)度。在本文中,我將向您推薦10個常用的開發(fā)工具,并通過簡單的例子和代碼來介紹它們的主要用途。 Visual Studio Code(VSCode)是一個免費(fèi)、開源且跨平臺的代碼編輯器,支持多種編程語言。它具有

    2024年02月07日
    瀏覽(56)
  • csgo部分常用服務(wù)器指令與一些綁定指令整理

    【1秒后刷新游戲】mp_restartgame 1? 【是否打開自動平衡】mp_autoteambalance 0/1? 【最高金錢16000】mp_maxmoney 16000? 【死亡競賽的回合時間60分鐘】mp_roundtime 60? 【休閑/競技模式每局時間60分鐘】mp_roundtime_defuse 60? 【休閑/競技模式最大局?jǐn)?shù)設(shè)為30局】mp_maxrounds 30? 【出生金錢為16000】

    2024年02月03日
    瀏覽(18)
  • 【科普】集群基礎(chǔ)和PBS任務(wù)管理常用命令

    【科普】集群基礎(chǔ)和PBS任務(wù)管理常用命令

    最近需要用到集群做實(shí)驗(yàn),學(xué)習(xí)下集群相關(guān)的內(nèi)容。 什么是服務(wù)器集群 服務(wù)器集群其實(shí)就是將很多服務(wù)器(或者簡單理解為主機(jī))集中起來一起進(jìn)行同一種服務(wù),在客戶端看來就像是只有一個服務(wù)器。集群可以利用多個計(jì)算機(jī)進(jìn)行并行計(jì)算從而獲得很高的計(jì)算速度,也可以用多

    2024年02月08日
    瀏覽(19)
  • HarmonyOS開發(fā):NodeJs腳本實(shí)現(xiàn)組件化動態(tài)切換

    HarmonyOS開發(fā):NodeJs腳本實(shí)現(xiàn)組件化動態(tài)切換

    上篇文章,我們使用NodeJs腳本完成了HarmonyOS項(xiàng)目的組件化運(yùn)行,但是由于腳本是基于4.0.0.400版本的DevEco?Studio開發(fā)的,可能在配置文件的修改上有些許差距,那么遇到這種情況怎么辦,一種是再寫一套針對性的腳本文件或者在原有的腳本中增加配置版本參數(shù),第二種就是自己

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包