本脚本实现一个简单的三台机器分布式集群环境下的Hadoop一键启动。
ZK:Zookeeper ZKFC:Zookeeper FailoverController JN:JournalNodes RM:Yarn ResourceManager DM:Yarn ApplicationManager(DateManager)
ZKFC 必须跟namenode在一起(hearbeat) DM 最好跟Datanode放一起,JN和ZK必须为奇数个(3,5,7)
机器编号 | Namenode | DateNode | ZKFC | ZKFC | JN | RM | DM |
hadoop202 | √ | √ | √ | √ | √ | √ | √ |
hadoop203 | √ | √ | √ | √ | √ | √ | √ |
hadoop204 | √ | √ | √ | √ |
#判断用户是否传参 if [ $# -ne 1 ];then echo "无效参数,用法为: $0 {start|stop}" exit fi #获取用户输入的命令 cmd=$1 #定义函数功能 function hadoopmanger(){ case $cmd in start) echo "启动服务" remoteExecutionstart ;; stop) echo "停止服务" remoteExecutionstop ;; *) echo "无效参数,用法为: $0 {start|stop}" ;; esac } #启动HADOOP function remoteExecutionstart(){ #zookeeper echo ========== ZooKeeper ================ for (( i=202 ; i<=204 ; i++ )) ; do tput setaf 2 echo ========== 启动 hadoop${i} zookeeper $1 ================ tput setaf 9 ssh hadoop${i} "source /etc/profile ; /opt/module/zookeeper-3.4.10/bin/zkServer.sh start" done #journalnode echo ========== Journalnode ================ for (( i=202 ; i<=204 ; i++ )) ; do tput setaf 2 echo ==========启动 hadoop${i} journalnode $1 ================ tput setaf 9 ssh hadoop${i} "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/hadoop-daemon.sh start journalnode" done echo "启动HDFS" ssh hadoop202 "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/start-dfs.sh" echo "启动YARM" ssh hadoop202 "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/start-yarn.sh" echo "启动ResourceManager" ssh hadoop203 "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/yarn-daemon.sh start resourcemanager" } #关闭HADOOP function remoteExecutionstop(){ echo "关闭ResourceManager" ssh hadoop203 "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/yarn-daemon.sh stop resourcemanager" echo "关闭YARM" ssh hadoop202 "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/stop-yarn.sh" echo "关闭HDFS" ssh hadoop202 "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/stop-dfs.sh" #journalnode echo ========== Journalnode ================ for (( i=202 ; i<=204 ; i++ )) ; do tput setaf 2 echo ==========关闭 hadoop${i} journalnode $1 ================ tput setaf 9 ssh hadoop${i} "source /etc/profile ; /opt/module/hadoop-2.7.2/sbin/hadoop-daemon.sh stop journalnode" done #zookeeper echo ========== ZooKeeper ================ for (( i=202 ; i<=204 ; i++ )) ; do tput setaf 2 echo ========== 关闭 hadoop${i} zookeeper $1 ================ tput setaf 9 ssh hadoop${i} "source /etc/profile ; /opt/module/zookeeper-3.4.10/bin/zkServer.sh stop" done } #调用函数 hadoopmanger
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。