小工具知识网

当前位置: 首页 > 行业知识 > 单节点大数据平台运维脚本

行业知识

单节点大数据平台运维脚本

2026-11-01 04:13:14 来源:互联网转载

单节点的大数据集群运维脚本

vi /opt/bash/bigdata-operate-script.sh
#!/bin/bashsource ~/.bashrcsource /etc/profilehostname=bigdata#程序运行必要组件important_components=("kafka" "clickhouse-server" "elasticsearch" "kibana")#非必要组件monitor_components=("prometheus" "node_exporter" "pushgateway" "kafka_exporter" "grafana")#monitor脚本启动标志量m_flag=0#yarn上任务数job_num_count=12# Kafka 集群的地址KAFKA_BROKER="$hostname:9092"#ES APIES_API="http://$hostname:9200"#Kibana APIKIBANA_API="http://$hostname:5601/api/status"#如果需要,添加基本认证ES_USER="ES用户名"ES_PASS="ES密码"function start_component() {    if ! systemctl is-active --quiet ""; then        echo "start "        sudo systemctl start ""    fi}function check_status() {    #检查HDFS状态    #echo "========Check HDFS status========"    if /usr/java/jdk1.8.0_212/bin/jps | grep -q NameNode && /usr/java/jdk1.8.0_212/bin/jps | grep -q DataNode && hadoop fs -ls / >/dev/null 2>&1; then        if hdfs dfsadmin -safemode get | grep -q ON; then            echo "HDFS in safe mode"        else            echo "========HDFS is Running========"            ((m_flag++))        fi           else        echo "--------HDFS is Not Running--------"    fi    #检查YARN状态    #echo "========Check YARN status========"    if /usr/java/jdk1.8.0_212/bin/jps | grep -q ResourceManager && /usr/java/jdk1.8.0_212/bin/jps | grep -q NodeManager && yarn node -list >/dev/null 2>&1; then        echo "========YARN is Running========"        ((m_flag++))    else        echo "--------YARN is Not Running--------"    fi    #检查kafka状态    #echo "========Check KAFKA status========"    if kafka-topics.sh --bootstrap-server $KAFKA_BROKER --list >/dev/null 2>&1; then        echo "========Kafka cluster is Running========"        ((m_flag++))    else        echo "--------Kafka cluster is Not Running--------"    fi    #检查clickhouse状态    #echo "========Check clickhouse-server status========"    if systemctl is-active --quiet clickhouse-server && clickhouse-client --port 9123 --user clickhouse --password clickhouse密码 --query "SELECT 1" >/dev/null 2>&1; then        echo "========ClickHouse-server service is Running========"        ((m_flag++))    else        echo "--------ClickHouse-server service is Not Running--------"    fi    # 检查 Elasticsearch 服务状态    if systemctl is-active --quiet elasticsearch && curl -s -u "$ES_USER:$ES_PASS" "$ES_API" >/dev/null 2>&1; then        echo "========Elasticsearch service is Running========"        ((m_flag++))    else        echo "--------Elasticsearch service is Not Running--------"    fi    # 检查 Kibana 服务状态    kibana_status=$(curl -s -u "$ES_USER:$ES_PASS" "$KIBANA_API" | /usr/local/bin/jq -r '.status.overall.state')    if systemctl is-active --quiet kibana && [ "$kibana_status" == "green" ]; then        echo "========Kibana service is Running========"        ((m_flag++))    else        echo "--------Kiaba service is Not Running--------"    fi    #检查监控组件状态    for i in "${monitor_components[@]}"; do        if systemctl is-active --quiet $i; then            echo "========$i service is Running========"        else            echo "--------$i service is Not Running--------"        fi    done}case  instart)    if ! /usr/java/jdk1.8.0_212/bin/jps | grep -q NameNode && ! hdfs dfsadmin -report >/dev/null 2>&1 && ! hadoop fs -ls / >/dev/null 2>&1; then        echo "start HDFS"        /bin/bash /opt/module/hadoop-3.3.5/sbin/start-dfs.sh    fi    if ! /usr/java/jdk1.8.0_212/bin/jps | grep -q ResourceManager && ! /usr/java/jdk1.8.0_212/bin/jps | grep -q NodeManager; then        echo "start Yarn"        /bin/bash /opt/module/hadoop-3.3.5/sbin/start-yarn.sh    fi    for i in "${important_components[@]}"; do        start_component "$i"    done    sleep 30    for i in "${monitor_components[@]}"; do        start_component "$i"    done    sleep 20    #检查组件状态    check_status    #判断是否满足启动任务条件    if [ "$m_flag" -eq 6 ] && ! [ "$(curl -s http://$hostname:8088/ws/v1/cluster/metrics | /usr/local/bin/jq .clusterMetrics.appsRunning)" -eq $job_num_count ]; then        /bin/bash /home/bigdata/job/dw3/monitor.sh    fi    ;;status)    check_status    ;;stop)    if /usr/java/jdk1.8.0_212/bin/jps | grep -q ResourceManager && /usr/java/jdk1.8.0_212/bin/jps | grep -q NodeManager; then        #kill掉所有程序        /bin/bash /home/bigdata/killAllApp.sh        #判断程序是否都停掉        if [ "$(curl -s http://$hostname:8088/ws/v1/cluster/metrics | /usr/local/bin/jq .clusterMetrics.appsRunning)" -eq "0" ]; then            #关闭所有组件            /bin/bash /opt/module/hadoop-3.3.5/sbin/stop-yarn.sh            /bin/bash /opt/module/hadoop-3.3.5/sbin/stop-dfs.sh            for i in "${important_components[@]}"; do                sudo systemctl stop "$i"            done        else            echo "Yarn上程序未停完,需手动停止"        fi    fi    for i in "${monitor_components[@]}"; do        if systemctl is-active --quiet $i; then            echo "========stop $i service========"            sudo systemctl stop "$i"        fi    done    check_status    ;;*)    echo "请输入合法的参数"    echo "  start   启动所有组件集群"    echo "  status  查看所有组件集群状态"    echo "  stop    停止所有组件集群"    ;;esac

kill���yarn所有带有ETL名字的任务

()
vi /home/bigdata/killAllApp.sh
#!/bin/bashyarn application -list | grep 'ETL'| grep -v grep | awk '{print }' | xargs  yarn application -killecho -e "3[1;33m============Yarn Application List============3[0m"yarn application -list
()

上一篇:CCTV视频下载指南,轻松获取高清视频内容

下一篇:怎么出售网站服务器?