开机启动hadoop集群(虚拟机)

一、背景

在学习hadoop的时候,在本地通过VMware搭建了一个hadoop集群,但是由于每天电脑都需要重启,所以虚拟每天都会被关掉,所以想要写一个脚本一键启动虚拟机+hadoop集群

二、实现方案一

    1、经查阅资料发现,VMware可以通过命令启动(后台启动虚拟机),命令如下: # 使用vmrun命令(需要找到VMware的工作目录将工作目录加入path里面),命令说明 -T 主机类型,start 启动 并指定虚拟机(可以通过vmrun list 查看正在运行的虚拟机),nogui 不启动VMware的可视化工具(后台运行) vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux123linux121 的克隆.vmx" nogui 2、在主节点上设置开机启动脚本,通过ping命令检测每个节点是否启动,当所有节点启动完成后启动集群。

实现脚本

    1、编写启动虚拟机脚本(运行在window主机上,并设置开机启动,可以使用window计划任务) 编辑 start_vm.bat @echo off&setlocal enabledelayedexpansion vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux123linux121.vmx" nogui vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux122linux122.vmx" nogui vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux122linux123.vmx" nogui 2、编写hadoop集群节点启动脚本(放在namenode节点运行) (并加入开机启动,将脚本添加到/etc/rc.loacl, 并执行chmod 755 /etc/rc.d/rc.local) vim start_hadoop.sh #!/bin/bash # 指定yarn节点的hostname yarn_hostname=linux123 HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2 #检查hadoop集群状态 check_hadoop_status(){ for h in $(cat ${ HADOOP_HOME}/etc/hadoop/slaves) do ping -c 1 -w 5 $h if [[ $? != 0 ]];then return 0 fi done start_hadoop_all return 1 } # 启动hadoop start_hadoop_all(){ ${HADOOP_HOME}/sbin/start-all.sh sleep 5 ssh root@$yarn_hostname ${HADOOP_HOME}/sbin/start-yarn.sh } sleep 10 check_hadoop_status if [[ $? == 0 ]];then sleep 60 check_hadoop_status fi 二、实现方案二 关机自动挂起所有虚拟机 开机自动启动所有挂起的虚拟机 实现脚本 编辑关机运行脚本并加入关机策略 @echo off&setlocal enabledelayedexpansion vmrun -T ws suspend "C:UserselieDocumentsVirtual Machineslinux123linux121.vmx" nogui vmrun -T ws suspend "C:UserselieDocumentsVirtual Machineslinux122linux122.vmx" nogui vmrun -T ws suspend "C:UserselieDocumentsVirtual Machineslinux122linux123.vmx" nogui 编辑开机启动脚本(同方案一,开机启动) @echo off&setlocal enabledelayedexpansion vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux123linux121.vmx" nogui vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux122linux122.vmx" nogui vmrun -T ws start "C:UserselieDocumentsVirtual Machineslinux122linux123.vmx" nogui
经验分享 程序员 微信小程序 职场和发展