• 【Hadoop篇07】Hadoop集群脚本编写


    积极乐观的态度是解决任何问题和战胜任何困难的第一步

    Hadoop集群脚本编写

    编写分发文件脚本

    应用场景如下:比如有三台主机master1,slave1,slave2

    如果简历完全分布式的集群就需要将文件从master1拷贝到slave从机上

    那么可以使用rsync命令分发单个文件,也可以使用如下脚本分发文件夹或者文件

    #!/bin/bash
    
    #1 获取输入参数个数,如果没有参数,直接退出
    # $#代表获得命令行参数个数
    pcount=$#
    if((pcount==0)); then
    echo no args;
    exit;
    fi
    
    #2 获取文件名称
    # $1代表获得命令行第一个参数
    p1=$1
    fname=`basename $p1`
    echo fname=$fname
    
    #3 获取上级目录到绝对路径
    pdir=`cd -P $(dirname $p1); pwd`
    echo pdir=$pdir
    
    #4 获取当前用户名称
    user=`whoami`
    
    #5 rsync命令可以分发文件到指定主机
    # 这里slave就是从机的机名
    for((host=1; host<3; host++))
    do
            echo ------------------- slave$host --------------
            rsync -rvl $pdir/$fname $user@slave$host:$pdir
    done
    
    

    群起Hadoop集群脚本

    先在主机上启动HDFS,再去从机启动YARN资源管理器,但是切换麻烦,只想在主机就能解决集群启动问题

    这里演示的是三台服务器,如果是更多台服务器,循环即可【有问题都可以私聊我WX:focusbigdata,或者关注我的公众号:FocusBigData,注意大小写】

    #!/bin/bash
    
    # master1上启动HDFS
    /opt/module/hadoop-2.7.2/sbin/start-dfs.sh
    
    # slave1上启动Yarn
    ssh slave1 /opt/module/hadoop-2.7.2/sbin/start-yarn.sh
    
    # 这是启动历史服务器
    /opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver
    

    停止Hadoop集群脚本

    #!/bin/bash
    
    # 关闭历史服务器
    /opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh stop historyserver
    
    # 关闭YARN
    ssh slave1 /opt/module/hadoop-2.7.2/sbin/stop-yarn.sh
    
    # 关闭HDFS
    /opt/module/hadoop-2.7.2/sbin/stop-dfs.sh
    
    

    查看所有机器的Java进程脚本

    其实也是用ssh发送命令到每台主机上执行然后返回结果,原理简单而且也很实用

    #!/bin/bash
    
    echo ---------- Master1 --------
    /opt/module/jdk1.8.0_131/bin/jps
    
    for((host=1; host<=2; host++));
    do
    	echo ---------- Slave$host --------
    	ssh slave$host /opt/module/jdk1.8.0_131/bin/jps
    done
    

    群起Zookeeper集群脚本

    #!/bin/bash
    
    for((host=102; host<=104; host++));
    do
    	echo ----------ZK start in $host--------
    	ssh hadoop$host /opt/module/zookeeper-3.4.10/bin/zkServer.sh start
    done
    

    停止Zookeeper集群脚本

    #!/bin/bash
    
    for((host=102; host<=104; host++));
    do
    	echo ----------ZK start in $host--------
    	ssh hadoop$host /opt/module/zookeeper-3.4.10/bin/zkServer.sh stop
    done
    

    查看Zookeeper集群状态脚本

    #!/bin/bash
    
    for((host=102; host<=104; host++));
    do
    	echo ----------ZK start in $host--------
    	ssh hadoop$host /opt/module/zookeeper-3.4.10/bin/zkServer.sh status
    done
    

    群起HBase集群脚本

    #!/bin/bash
    
    # 自己的命令也能拿来作为脚本代码哦
    /opt/shell/startHadoop.sh
    /opt/shell/startZookeeper.sh
    echo --------------- HBase Starting  ---------------------
    /opt/module/hbase-1.3.1/bin/start-hbase.sh
    /opt/shell/j
    

    停止HBase集群脚本

    #!/bin/bash
    
    echo --------------- HBase Stoping  ---------------------
    /opt/module/hbase-1.3.1/bin/stop-hbase.sh
    echo --------------- ZK Stoping  ---------------------
    /opt/shell/stopZookeeper.sh
    echo --------------- Hadoop Stoping  ---------------------
    /opt/shell/stopHadoop.sh
    /opt/shell/j
    
    

    相关资料

    image-20200624111507710

    本文配套GitHubhttps://github.com/zhutiansama/FocusBigData

    本文配套公众号:FocusBigData

    回复【大数据面经】【大数据面试经验】【大数据学习路线图】会有惊喜哦

  • 相关阅读:
    docker启动mysql报错||docker ps没有容器,docker ps -a有发现断开了
    Mysql8.x配置安装(附高速下载)以及密码修改
    hibernate配置文件
    笔记,websocket不通,HikariPool Exception during pool initialization,文件下载跨域问题
    微服务中怎么将一个外部的jar添加到项目中
    postman测试需要校验权限的接口的方法
    通过Microsoft SQL Server Managerment Studio数据库管理工具创建SQL Server数据库的链接服务器
    Hashset和Treeset的区别
    maven项目抛出org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class
    MySQL索引
  • 原文地址:https://www.cnblogs.com/focusbigdata/p/13214271.html
Copyright © 2020-2023  润新知