当前位置:   article > 正文

搭建Hadoop高可用集群

搭建hadoop高可用集群

环境要求

  1. centos7
  2. vmware
  3. Hadoop3.1.3
  4. jdk1.8.0_162
  5. 主节点ip地址192.168.74.10 (注意:ip地址要根据自己需求,本教程略)
  6. 从节点ip地址192.168.74.11

搭建步骤

打开vmvare,将一个主节点虚拟机,克隆两台从节点虚拟机

右键目标虚拟机---->管理---->克隆---->
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击完成

点击Slave

在这里插入图片描述
打开网络适配器---->点击高级---->
在这里插入图片描述
多点击几次生成,使之主从不同的mac地址
注:本次讲解的是net网络模式,非网桥网络模式

打开Slave,Master同时打开
更改从节点的网络配置
注:本次主节点ip设置192.168.74.10
从节点ip设置192.168.74.11
开始配置从节点

vim /etc/sysconfig/network-scripts/ifcfg-ens33

1.注释掉uuid
2.修改IPADDR如下
在这里插入图片描述
重启网络

service network restart

如果报错网络重启false时,尝试如下操作
输入service NetworkManager stop  再service network restart
根据提示到相应目录开启
如果上述方式为解决:请返回上一步。尝试注释掉主从节点的uuid。
  • 1
  • 2
  • 3
  • 4

主从节点分别创建Hadoop用户

user hadoop
passwd hadoop 根据提示输入密码
切换用户 su - hadoop
注意 不加 “ -
”可能无法切换环境变量(切换用户失败,env命令查看当前user),切换用户尽可能加-

主节点hadoop设置权限

sudo vim /etc/sudoers
vi/vim查看文本快捷键
到底部快捷键 G
到达底部将root一行的下面对应添加一个hadoop
从节点同理

在这里插入图片描述

:wq!保存退出

增加主从节点的映射–主节点输入

sudo vim /etc/hosts

修改配置如下,主节点和从节点一样操作,对应映射ip地址,直接在打开文件的下方加入信息,其他信息不用动,两个节点内容要保持一致
在这里插入图片描述
:wq! 保存退出
修改主机名–和上一步对应,主节点设置Slave,从节点设置Master

sudo vim /etc/hostname

删除文档内容,然后定义Master,Slave
要和ip地址对应

在这里插入图片描述

重启虚拟机即可看到用户
在这里插入图片描述
此时如果

ping Slave -c 3

ping Master -c 3

如果输入命令都可以ping通就没有问题,继续进行下面步骤
设置免密登陆
master节点执行如下

cd ~/.ssh

ssh localhost rm ./id_rsa* #如果搭建过删除之前公钥

ssh-keygen -t rsa #一直按回车即可

cat ./id_rsa.pub >> ./authorized_keys

完成后可以执行命令“ssh Master”来验证一下,可能会遇到提示信息,只要输入yes即可,测试成功后,请执行“exit”命令返回原来的终端。
接下来,在Master节点将上公匙传输到Slave1节点:

scp ~/.ssh/id_rsa.pub hadoop@Slave:/home/hadoop/

===============================================
接下来Slave节点执行命令如下

mkdir ~/.ssh

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

rm ~/id_rsa.pub

上述操作一定要细心,很容易出错,且重复配置容易出错

上述步骤执行完,验证是否成功,master节点执行

ssh Slave

效果如下
在这里插入图片描述
exit退出
Master节点

ssh Master

Slave 节 点

ssh Slave

**下载hadoop,jdk等

运用xshell,将其包导入/software**
在这里插入图片描述
由于,百度云链接容易下架,小伙伴如果没有资源,请私信我。
解压包到/usr/local下

tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/ tar -zxvf

jdk-8u162-linux-x64.tar.gz -C /usr/local

进入/usr/local

将hadoop改名

cd /usr/local

mv ./hadoop/ hadoop

更改环境配置

sudo vim ~/.bashrc

下述操作注意路径匹配,错一点就会出问题
空白位置写下

export JAVA_HOME=/usr/local/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Master节点配置Hadoop信息

cd /usr/local/hadoop/etc/hadoop

workers配置内容为----------指定datanode

vim ./workers

最好把datanode和master不要配置一起,datanode配置Slave,提高集群高可用性
故次文件内容写Slave,若有其他从节点,写入即可

在这里插入图片描述

修改core-site.xml

vim ./core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

修改hdfs-site.xml

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
        <property>
                    <name>dfs.namenode.http-address</name>
                   <value>Master:50070</value>
           </property>

</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

修改文件mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

修改文件 yarn-site.xml

<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

**配置好上述后接下来---------------谨慎操作

Master主节点执行**

cd /usr/local
sudo rm -r ./hadoop/tmp     # 删除 Hadoop 临时文件
sudo rm -r ./hadoop/logs/*   # 删除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop   # 先压缩再复制
tar -zcf ~/jdk.master.tar.gz ./jdk1.8.0_162
cd ~
scp ./hadoop.master.tar.gz Slave:/home/hadoop
scp ./jdk.master.tar.gz Slave:/home/hadoop
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Slave从节点执行如下命令

sudo rm -r /usr/local/hadoop    # 删掉旧的(如果存在)
sudo rm -r /usr/local/jdk1.8.0_162
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo tar -zxf ~/jdk.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop
sudo chown -R hadoop /usr/local/jdk1.8.0_162
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

接着修改从节点环境变量

vim ~/.bashrc

空白位置输入

export JAVA_HOME=/usr/local/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
  • 1
  • 2
  • 3
  • 4
  • 5

可能有同学看了好多教程,好多没有配置从节点的环境变量 接下来我就来为大家解释与解答

当我们的Hadoop搭建完成后,经常会因为某些操作会有主从节点不匹配的问题,但是,我们要求配置高可用的集群。这些问题网上好多方法就是格式化主节点,并不高效,并且繁琐。而我们可以运用更加简便的方法----------------------手动启动从节点
这也就是为什么我们要配置从节点的环境变量的原因

Master主节点格式化namenode

hdfs namenode -format

配置完成

开启集群

start-dfs.sh

主节点和从节点分别输入jps如下
在这里插入图片描述
在这里插入图片描述

编写查看所有节点的脚本

cd /usr/bin

vim jpsall

输入如下内容

#!/bin/bash 
    
# 执行jps命令查询每台服务器上的节点状态
echo ======================集群节点状态====================
    
for i in Master Slave
do
        echo ====================== $i ====================
        ssh hadoop@$i '/usr/local/jdk1.8.0_162/bin/jps'
done
echo ======================执行完毕==================== 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
:wq!保存后下一步

sudo chmod 777 jpsall

接着输入jpsall
在这里插入图片描述

恭喜:成功~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/605378
推荐阅读
相关标签
  

闽ICP备14008679号