使用shell脚本安装hadoop高可用集群


集群划分

192.168.56.120 hadoop01192.168.56.121 hadoop02192.168.56.122 hadoop03
QuorumPeerMainQuorumPeerMainQuorumPeerMain
JournalNodeJournalNodeJournalNode
NameNodeNameNode
ResourceManagerResourceManager
NodeManagerNodeManagerNodeManager
DFSZKFailoverControllerDFSZKFailoverController
DataNodeDataNodeDataNode

脚本和相关的文件如下,提取码: sweh
相关文件

一.创建一台虚拟机

  • 1.准备一台纯净版的centos7系统,修改静态ip为192.168.56.120,主机名为hadoop01,关闭防火墙,重启网络,连接moba
  • 2.创建安装包目录:mkdir /opt/software
  • 3.创建安装目录: mkdir /opt/install
  • 4.将脚本和相关配置文件安装包拖到安装包目录下
  • 5.修改脚本的权限:chmod 777 install*
  • 6.执行脚本安装jdk:/opt/software/installJdk.sh
  • 7.执行脚本安装hadoop和zookeeper:/opt/software/installHadoop.sh
  • 8.关闭该虚拟机

二.复制两台虚拟机

  • 1.一台修改静态ip为192.168.56.121 ,主机名为hadoop02
  • 2.另一台修改静态ip为192.168.56.122 ,主机名为hadoop03
  • 3.将hadoop02机器zookeeper的myid修改为2,hadoop03修改为3
  • 4.三台机器配置免登录
  • 1)ssh-keygen -t rsa -P ""生成私钥
  • 2)cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys添加到信任
  • 3)远程免登录:ssh-copy-id -i ~/.ssh/id_rsa.pub -p22 root@192.168.56.120 ,注意一台向其他两台发送
  • 4)三台机器分别执行:
ssh  -o StrictHostKeyChecking=no `hostname` 

三.启动集群

  • 1.3台 zkServer.sh start,三台hadoop-daemon.sh start journalnode
  • 2.hadoop01 hadoop namenode -format,hadoop-daemon.sh start namenode
  • 3.hadoop02 hdfs namenode -bootstrapStandby,只在第一次启动需要同步以后不需要
  • 3.hadoop01 hdfs zkfc -formatZK
  • 4.三台停掉所有Journalnode进程: hadoop-daemon.sh stop journalnode
  • 5.hadoop01hadoop-daemon.sh stop namenode
  • 6.hadoop01 start-dfs.sh
  • 7.hadoop01 start-yarn.sh
  • 8.hadoop02 yarn-daemon.sh start resourcemanager
  • 9启动后效果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

四.脚本内容如下

1.jdk

#!/bin/bash
#安装jdk1.8,需要先创建software目录和install目录,然后将jdk包拖进software目录中
tar -zxvf  /opt/software/jdk-8u221-linux-x64.tar.gz -C /opt/install/
`echo "export JAVA_HOME=/opt/install/jdk1.8.0_221" >> /etc/profile`
`echo 'export CLASSPATH=.:$JAVA_HOME/rt.jar:$JAVA_HOME/tools.jar:$JAVA_HOME/dt.jar' >> /etc/profile`
`echo 'export JRE_HOME=$JAVA_HOME/jre' >> /etc/profile`
`echo 'export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin' >> /etc/profile`
source /etc/profile
java -version

2.hadoop和zookeeper

#!/bin/bash
#将zookeeper和hadoop安装包挪到software下,将配置文件也挪到software目录下
tar -zxvf  /opt/software/zookeeper-3.4.6.tar.gz -C /opt/install/
tar -zxvf  /opt/software/hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/install/
mv /opt/install/hadoop-2.6.0-cdh5.14.2 /opt/install/hadoop
`echo "export HADOOP_HOME=/opt/install/hadoop" >> /etc/profile`
`echo 'export HADOOP_MAPRED_HOME=$HADOOP_HOME' >> /etc/profile`
`echo 'export HADOOP_COMMON_HOME=$HADOOP_HOME' >> /etc/profile`
`echo 'export HADOOP_HDFS_HOME=$HADOOP_HOME' >> /etc/profile`
`echo 'export YARN_HOME=$HADOOP_HOME' >> /etc/profile`
`echo 'export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native' >> /etc/profile`
`echo 'export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"' >> /etc/profile`
`echo 'export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin' >> /etc/profile`
`echo 'export ZK_HOME=/opt/install/zookeeper-3.4.6' >> /etc/profile`
`echo 'export PATH=$PATH:$ZK_HOME/bin' >> /etc/profile`
source /etc/profile
sed -i  '24,26s/\${JAVA_HOME}/\/opt\/install\/jdk1.8.0_221/gi' /opt/install/hadoop/etc/hadoop/hadoop-env.sh
cat $PWD/core-site.xml > /opt/install/hadoop/etc/hadoop/core-site.xml
cat $PWD/hdfs-site.xml > /opt/install/hadoop/etc/hadoop/hdfs-site.xml
cat $PWD/mapred-site.xml > /opt/install/hadoop/etc/hadoop/mapred-site.xml
cat $PWD/yarn-site.xml > /opt/install/hadoop/etc/hadoop/yarn-site.xml
cat $PWD/zoo.cfg > /opt/install/zookeeper-3.4.6/conf/zoo.cfg
cat $PWD/slaves > /opt/install/hadoop/etc/hadoop/slaves
mkdir /opt/install/zookeeper-3.4.6/zkData
mkdir   /opt/install/zookeeper-3.4.6/zkLog
touch /opt/install/zookeeper-3.4.6/zkData/myid
echo '1' >  /opt/install/zookeeper-3.4.6/zkData/myid
echo '192.168.56.120 hadoop01' >> /etc/hosts
echo '192.168.56.121 hadoop02' >> /etc/hosts
echo '192.168.56.122 hadoop03' >> /etc/hosts
source /etc/profile
tar -xvf $PWD/hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib/native
tar -xvf $PWD/hadoop-native-64-2.6.0.tar -C $HADOOP_HOME/lib
echo 'hadoop 版本信息:' 
hadoop version

3.一键启动集群

#!/usr/bin/env bash
ssh hadoop01 "echo '1' > /opt/install/zookeeper-3.4.6/zkData/myid"
ssh hadoop02 "echo '2' > /opt/install/zookeeper-3.4.6/zkData/myid"
ssh hadoop03 "echo '3' > /opt/install/zookeeper-3.4.6/zkData/myid"
for s in hadoop01 hadoop02 hadoop03
do
	ssh $s "source /etc/profile; cd /opt/install/hadoop/; rm -rf hdfsTmp/"
done
sleep 2
for s in hadoop01 hadoop02 hadoop03
do
	ssh $s "source /etc/profile; zkServer.sh start; hadoop-daemon.sh start journalnode"
done
sleep 2
ssh hadoop01 "source /etc/profile; hadoop namenode -format; hadoop-daemon.sh start namenode"
sleep 2
ssh hadoop02 "source /etc/profile; hdfs namenode -bootstrapStandby"
sleep 2
ssh hadoop01 "source /etc/profile; hdfs zkfc -formatZK; hadoop-daemon.sh stop journalnode"
sleep 2
ssh hadoop02 "source /etc/profile; hadoop-daemon.sh stop journalnode"
sleep 2
ssh hadoop03 "source /etc/profile; hadoop-daemon.sh stop journalnode"
sleep 2
ssh hadoop01 "source /etc/profile; hadoop-daemon.sh stop namenode; start-dfs.sh; start-yarn.sh"
sleep 2
ssh hadoop02 "source /etc/profile; yarn-daemon.sh start resourcemanager"
sleep 2
for s in hadoop01 hadoop02 hadoop03
do
	echo "=================$s-jps================="
	ssh $s "source /etc/profile; jps"
done
sleep 2
for s in hadoop01 
do
	echo "=================$s -resourcemanager status================="
	ssh $s "source /etc/profile; yarn rmadmin -getServiceState rm1"
	echo "=================$s -namenode status================="
	ssh $s "source /etc/profile; hdfs haadmin -getServiceState nn1"
done
sleep 2
for s in hadoop02
do
	echo "=================$s -resourcemanager status================="
	ssh $s "source /etc/profile; yarn rmadmin -getServiceState rm2"
	echo "=================$s -namenode status================="
	ssh $s "source /etc/profile; hdfs haadmin -getServiceState nn2"
done
sleep 2
for s in hadoop01 hadoop02 hadoop03
do
	echo "=================$s- zkServer status================="
	ssh $s "source /etc/profile; zkServer.sh status"
done

使用脚本运行效果如下:

=================hadoop01-jps=================
22896 NameNode
22002 QuorumPeerMain
23430 DFSZKFailoverController
23016 DataNode
23674 NodeManager
24010 Jps
23549 ResourceManager
23231 JournalNode
=================hadoop02-jps=================
15138 NameNode
15218 DataNode
14900 QuorumPeerMain
15317 JournalNode
15445 DFSZKFailoverController
15787 Jps
15534 NodeManager
15710 ResourceManager
=================hadoop03-jps=================
12996 NodeManager
12794 DataNode
13147 Jps
12621 QuorumPeerMain
12893 JournalNode
=================hadoop01 -resourcemanager status=================
20/07/09 08:48:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-jav                                    a classes where applicable
active
=================hadoop01 -namenode status=================
active
=================hadoop02 -resourcemanager status=================
20/07/09 08:49:02 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-jav                                    a classes where applicable
standby
=================hadoop02 -namenode status=================
standby
=================hadoop01- zkServer status=================
JMX enabled by default
Using config: /opt/install/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower
=================hadoop02- zkServer status=================
JMX enabled by default
Using config: /opt/install/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
=================hadoop03- zkServer status=================
JMX enabled by default
Using config: /opt/install/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

注:需要下载psmisc依赖包,否则无法完成自动切换节点

yum install -y psmisc

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 将以下命令复制到终端中安装Hadoop集群部署脚本: b'shell\xe4\xb8\x80\xe9\x94\xae\xe5\xae\x89\xe8\xa3\x85hadoop\xe9\x9b\x86\xe7\xbe\xa4\xe9\x83\xa8\xe7\xbd\xb2' 按下回车键开始安装安装完成后,将你的Hadoop集群配置文件复制到所需的所有节点上,并启动Hadoop服务就可以了。 ### 回答2: Hadoop是一个分布式计算框架,主要用于处理大规模的数据集。在Hadoop集群部署过程中,需要在每台机器上安装Java、Hadoop,并配置各节点间通信等。Shell脚本为我们提供了自动化一键化的部署方式,有效减少了操作时间和人工错误的可能性。 Shell是一种脚本语言,可以用于执行操作系统内置的命令,也可以组合成程序,实现批处理的工作。可以通过编写Shell脚本,在多个节点上自动安装和配置Hadoop集群。 一般来说,Shell脚本部署Hadoop集群的流程如下: 1. 编写Shell脚本,定义需要安装哪些软件和配置,主要包括安装Java、Hadoop软件、配置Hadoop环境变量、配置Hadoop集群等。 2. 在主节点上运行一键安装脚本脚本会自动下载Java、Hadoop软件到各个节点,并启动安装和配置过程。 3. 在集群各节点上传或复制一键安装脚本,执行脚本完成每台机器的自动化安装和配置。 4. 验证集群配置是否正确,包括节点间的链接通断、数据块的分配、备份等。 Shell脚本部署Hadoop集群的优点很明显,它可以大大简化安装的流程,让不懂Linux命令和Hadoop的人也能快速完成部署。同时,通过Shell脚本的一键安装方式,可以让部署过程更具可重复性、可靠性,减少出错和手动调整的可能性。 ### 回答3: Hadoop是一个分布式计算框架,它能够管理和处理大规模数据集。在实际应用中,如果需要进行数据分析、机器学习等工作,通常需要一台或多台计算机上配置Hadoop集群部署来实现。这个过程需要依次安装不同的环境与组件,如Java、Hadoop、Hive等。由于这个过程繁琐复杂,需要操作系统、环境与软件等多方面的知识,因此有必要使用一键安装的方式来简化部署的过程。 Shell一键安装Hadoop集群部署是使用Shell脚本编写自动安装脚本,减少繁琐的部署过程。通过一键安装,可以省去手动安装和配置环境不免出现的人工操作失误,并且可以快速、轻松地完成Hadoop集群的部署。 具体实现过程可以分为以下几步: 1. 准备安装环境,如Ubuntu、CentOSLinux平台、GitHub下载一键安装脚本; 2. 将主机与节点服务器IP地址写入配置文件中; 3. 创建Shell脚本文件并设置所需的安装环境; 4. 编写自动安装脚本,包括软件下载、配置环境、启动服务等。 5. 安装完毕后,进行配置检查和测试。 在实际使用过程中,一键安装脚本不仅可以用于简化Hadoop集群部署的过程,也可以扩展到其他的应用上。例如,一键安装脚本也可以用与Kafka集群或其他分布式系统等。 总之,Shell一键安装Hadoop集群部署是一项非常有用而又实用的技术,可以帮助用户快速构建和部署Hadoop集群,提高工作效率和减少错误率。同时,还可以使管理和维护的过程更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值