Hadoop3.X HA安装部署(保姆式细节版)

说明此报告中:我将hadoop解压缩到/opt/hadoop/下,Jdk放在/opt/java下,zookeeper放在/export/server下;

准备工作:

在每台机器修改主机名字:hostnamectl set-hostname hadoop1

                                             hostnamectl set-hostname hadoop2

                                             hostnamectl set-hostname hadoop3

yum install -y ntp

crontab -e

*/1 * * * * /usr/bin/ntpdate ntp4.aliyun.com

nptdate hadoop1

一:可以先搭建启动zookeeper

1-3现在一台机器上完成

  1. 下载zookeeper:

    wget http://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz   

       注意啦:是下载编译过的这个包,不是那个源码包哈

  2. 解压缩

    mkdir -p /export/servers

    tar zxvf  apache-zookeeper-3.7.0-bin.tar.gz -C /export/servers 

mv apache-zookeeper-3.7.0-bin zookeeper

3.配置文件

进入zookeeper所在目录后

mkdir zkdatas  或者mkdir -p /export/servers/zookeeper/zkdatas

cd conf

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

dataDir=/export/servers/zookeeper/zkdatas

#保留多少个快照

autopurge.snapRetainCount=3

#日志多少小时清理一次

autopurge.purgeInterval=1

#集群中服务器地址

server.1=hadoop1:2888:3888

server.2=hadoop2:2888:3888

server.3=hadoop3:2888:3888

注意啦,这里的hadoop1,hadoop2,hadoop3需要改成你自己三台机器名字

进入zookeeper目录:

cd zkdatas/

  vim myid 

   三台主机分别填入值1    2  3

4登录另外两台机器,执行完 mkdir -p /export/servers后,返回第一台机器执行如下:

方法一:把 hadoop1的zookeeper上传到hadoop2,3

 scp -r /export/servers/zookeeper/ root@hadoop2:/export/servers/

 scp -r /export/servers/zookeeper/ root@hadoop3:/export/servers/

方法二:在hadoop2,3上下载hadoop1的文件目录zookeeper

scp -r root@hadoop1:/export/servers/zookeeper  /export/servers/

5 登录到hadoop2上

vim myid 修改成2

登录到hadoop3上

vim myid修改3

6在hadoop1,hadoop2,hadoop3上都执行以下命令

setenforce 0

systemctl stop firewalld      临时关闭防火墙

systemctl disable firewalld  关闭开机自启动防火墙

7在hadoop1,hadoop2,hadoop3上都执行以下命令

/export/servers/zookeeper/bin/zkServer.sh start

8 在hadoop2或者3上客户端连接

bin/zkCli.sh -server hadoop1:2181

二:高可用配置(一步到位版,不是从分布式改过来的)

1.在57(hadoop1)修改/etc/hosts(三台都需要做的)

10.4.13.57 hadoop1

10.4.13.58 hadoop2

10.4.13.59 hadoop3

2..在主机免密登录,同时让主机能够免密访问从机(三台都需要做的)

ssh-keygen -t rsa 

ssh-copy-id hadoop1

ssh-copy-id hadoop2

ssh-copy-id hadoop3

单机master上的配置:

3.jdk配置

(1)方法一:在centos7中使用wget JDK下载的网址

方法二:在window下载好后,使用xshell向虚拟机传输

说明:xshell需要安装 lrzsz才可以传输

 yum install -y lrzsz

 rz 弹出窗口,选择下载好的JDK包(rz windows向linux)

举例:sz (Linux文件向windows)   sz /etc/profile

(2.)解压缩到目录

mkdir -p /opt/java 

tar zxvf  jdk-8u211-linux-x64.tar.gz -C /opt/java            (解压缩命令待补充)

(3).环境变量配置

vim /etc/profile

末尾增加两行即可(注意我是将jdk-1.8..重命名成了jdk,JAVA_HOME路径是你的JDK解压后的全路径)

-----------------------------------------------

export JAVA_HOME=/opt/java/jdk

export PATH=$PATH:$JAVA_HOME/bin

--------------------------------------------------------

source /etc/profile

java -version

4.hadoop下载

(1)

方法1:  wget  https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1-aarch64.tar.gz

方法2:windows下载好后,通过下shell传输  细节参考jdk。

(2).hadoop配置环境变量,vim /etc/profile

=======================================

export HADOOP_HOME=/opt/hadoop/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

=============================================

source /etc/profile

hadoop version

(4)配置文件

我的hadoop安装路径 cd /opt/hadoop/hadoop

cd etc/hadoop 注意:这里的etc是相对路径

1) 修改 core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>
</configuration>
 


2)修改vim mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

3)yarn-site.xml

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--启⽤resourcemanager ha-->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <!--声明两台resourcemanager的地址-->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster-yarn</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>hadoop1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop2</value>
    </property>
    <!--指定zookeeper集群的地址-->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
    </property>

4)hdfs-site.xml

5) vim workers

6)、对于start-dfs.sh和,stop-dfs.sh添加下列参数:

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

7)、对于start-yarn.sh和stop-yarn.sh文件
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

6)和7)可以合并成直接在/etc/profile中添加如下,再source /etc/profile

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

8):vim hadoop-env.sh

export JAVA_HOME=/opt/java/jdk

9).vim mapred-env.sh

10):在master格式化:

hadoop namenode -format 

11):复制到从机

A:

scp  /etc/hosts root@10.4.13.58.:/etc/

scp  /etc/hosts root@10.4.13.59:/etc/

注意:这个/etc/hosts里面有IP和主机名对应,分发完成后,之后复制分发文件,就可以直接写域名主机名了。

B:     在58,59上mkdir -p /opt/java

scp -r /opt/java/jdk root@10.4.13.58:/opt/java/

scp -r /opt/java/jdk root@10.4.13.59:/opt/java/

C:   在58,59 mkdir -p /opt/hadoop

            scp -r /opt/hadoop/hadoop root@10.4.13.58:/opt/hadoop/ 

            scp -r /opt/hadoop/hadoop root@10.4.13.59:/opt/hadoop/

D:        把/etc/profile 复制到hadoop2(58),hadoop3(59)

           scp  /etc/profile root@10.4.13.58:/etc/

             scp  /etc/profile root@10.4.13.59:/etc/

             去58,59上都执行source /etc/profile

启动 

./bin/zkServer.sh start

hdfs namenode -format
//初始化namenode
 
hdfs zkfc -formatZK
//初始化zkfc

hadoop-daemon.sh start journalnode

./start-all.sh

启动部分可以参考博客

Hadoop HA-hadoop完全分布式高可用集群配置、高可用集群启动方式、master/slave1/slave2配置_HaveAGoodDay.的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值