Hadoop 2.8.0 双机集群高可用系统自动化部署脚本

Hadoop 2.8.0 双机集群高可用系统自动化部署脚本

集群实验环境

开发及测试环境:
操作系统:Ubuntu Linux 16.04.1 LTS 64bit
Java环境:Java Development Kit 1.8.121
Hadoop:2.8.0 HA
Zookeeper:3.4.9
初版只支持3节点配置,后期更新可支持无限节点数量配置。
主机名:MASTER1/MASTER2/MASTER3

脚本使用方法

以刚刚安装完成的Ubuntu Linux 16.04.1 LTS系统为例,若要配置三节点集群,则步骤如下:
脚本执行需要root权限,新系统默认无root账户密码,配置root账户密码的命令如下:

sudo passwd root

Hadoop集群配置文件需要通过主机名访问,故需要设置当前主机的主机名。临时设置主机名的方法为:

sudo hostname master1

永久设置主机名的方法为:

echo "master1" > /etc/hostname

配置过程当中需要重启,推荐固定当前主机IP地址,可通过ifconfig -a命令查询IP地址,并更改/etc/network/interfaces文件,内容按如下格式修改:

root@master1:~$ sudo vi /etc/network/interfaces
auto eth1
iface eth1 inet static
address 10.211.55.1
broadcast 10.211.55.255
netmask 255.255.255.0
gateway 10.211.55.1
network 10.211.55.0
dns-nameservers 114.114.114.114

配置完成后,可从Github或本站下载完整脚本包或最小脚本包。
七牛云存储下载地址(完整脚本包):http://7xpbzx.com1.z0.glb.clouddn.com/HadoopHA.zip
Github最小脚本包地址:https://github.com/Fa1c0nSec/HadoopHADeploymentScript
脚本包下载完成后,进入脚本包中的lib目录下,修改installrc文件:

# 
#  Copyright 2017 Fa1c0n. All Rights Reserved.
#  
#  Project Application: Hadoop 2.8.0 HA Deployment Script
#  Contact: i@fa1c0n.com
#  Github: https://github.com/Fa1c0nSec
#  Current File: Hadoop HA Setup Procedure InstallRC Setting
#
#  Licensed under the GNU General Public License, Version 3.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.gnu.org/licenses
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

# GENERAL COMMON VARIABLES 
HOST_NAME=master1
MASTER1_IP=10.211.55.20
MASTER2_IP=10.211.55.19
MASTER3_IP=10.211.55.18

MASTER1_USRNAME=root
MASTER2_USRNAME=root
MASTER3_USRNAME=root

MASTER1_PWD=root
MASTER2_PWD=root
MASTER3_PWD=root

INSTALLATION_PATH=/data/dev/

installrc文件内容如上所示。需要用户修改HOST_NAME为当前主机名,可选为master1/master2/master3. MASTER1_IP为第一台主机的IP地址,MASTER1_USRNAME为第一台主机的账户名称,推荐使用root,非root权限可能执行失败。MASTER1_PWD为该用户密码。其余以此类推。
配置完成installrc后,配置hosts文件。hosts文件内容如下所示:

127.0.0.1    localhost
127.0.1.1    Fa1c0n-MacBook-Pro

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.211.55.20    master1
10.211.55.19    master2
10.211.55.18    master3

将三台主机名以及对应IP填写到hosts文件后,分别在三台主机执行以下命令:

cp hosts /etc/hosts

可重启网络服务(/etc/init.d/networking restart)或重启计算机以生效。
以上步骤完成后,可返回至主脚本目录,输入以下命令即可开始安装:

./main.sh

进入主程序,效果如下:

+------------------------------------------------+
|              Hadoop HA Installation            |
|------------------------------------------------|
|           Script Development : Fa1c0n          |
|------------------------------------------------|
|           1) Environment Configuration         |
|           2) SSH Service Configuration         |
|               3) JDK Installation              |
|             4) ZooKeeper Installation          |
|               5) Hadoop Installation           |
|             6) Zookeeper Service Start         |
|        7) Hadoop First Initialize (master1)    |
|              8) Hadoop Service Start           |
|          9) Data Directory Copy(DISABLED)      |
|                     10) EXIT                   |
+------------------------------------------------+

Please Input Selection Number:

由于初版bug,第9项已禁用,不要尝试使用第9项。
接下来分别在三台主机上按顺序开始从1-8执行即可。
注意:第四项ZooKeeper的安装需要保持三台主机同步,尽可能三台主机同时进行Zookeeper安装,ZooKeeper安装完成后要求系统重启,脚本中默认设置Zookeeper安装完成后三台主机自动重启,故需要确保三台主机重启时没有任务正在执行或同时执行ZooKeeper安装,可确保执行完成。

即使主机重启,本脚本支持接续上次安装停止的地方继续执行。如已经执行过1,再次执行系统会提示环境配置已完成,请继续下一项配置。若需要强制重新执行某项任务,可至/etc/fahda_installation_tag目录下删除指定的tag文件后即可进行该项安装。

服务启动顺序:Zookeeper -> Hadoop

请务必确保Zookeeper三台主机全部启动成功后再执行Hadoop启动/初始化命令。
第7项的初始化只需在master1主机上执行1次即可。其余只需要执行第8项。如询问是否需要格式化NameNode,选否即可。

由于脚本执行过程中环境变量生效,若配置完成后不重启主机,若要使环境变量生效,请执行:

source /etc/profile

指令使环境变量生效,故可使用jps、java、javac等命令。若重启主机,则自动生效。

后期可能会加入Hbase、Hive、Pig、Mahout、Spark、Storm、Kafka等项目的安装。加入时间依开发者时间而定。

LICENSE
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。