hadoop3.1.3版本完全分布式集群搭建搭建

注意:

一,jdk使用版本号为1.8.x版本即可

二,hadoop使用版号为3.1.3版本

三,所有软件均解压在"/opt/"文件目录下

四,本次集群搭建需要四台虚拟机


1,基础准备工作

在jdk与hadoop安转部署前需要做好以下准备工作:

###创建好四台虚拟机###

节点配置
主机名IP地址关系对应
hadoop01192.168.137.131主节点
hadoop02192.168.137.132从节点一
hadoop03192.168.137.133从节点二
hadoop04192.168.137.134从节点三

(需要修改主机名,IP地址,hosts文件)

1.1,修改主机名

主节点:

[root@hadoop01 ~]# hostnamectl set-hostname hadoop01

从节点一:

[root@hadoop02 ~]# hostnamectl set-hostname hadoop02

从节点二:

[root@hadoop03 ~]# hostnamectl set-hostname hadoop03

从节点三:

[root@hadoop04 ~]# hostnamectl set-hostname hadoop04

1.2,修改IP地址

命令:vim /etc/systemctl/network-scripts/ifcfg-ens33

#将第四行内容第四行内容修改为以下内容(每个节点均要修改)
#修改前
BOOTPROTO="dchp"
#修改后
BOOTPROTO="static"

#在文件最后添加 
IPADDR=192.168.137.131
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS1=192.168.137.2

1.2.1,网络重启

注意:修改IP地址后需重启网络

命令:systemctl restart network

 1.3,修改"/etc/hosts"文件

[root@hadoop01 ~]# vim /etc/hosts

#添加
192.168.137.101 hadoop01
192.168.137.102 hadoop02
192.168.137.103 hadoop03
192.168.137.104 hadoop04

1.4,防火墙配置与软件安装配置

1.4.1,永久关闭防火墙

[root@hadoop01 ~ ]# systemctl stop firewalld                 //暂时性关闭防火墙

[root@hadoop01 ~ ]# systemctl disable firewalld            //永久性关闭防火墙

                   systemctl status firewalld             -----查看防火墙状态命令

1.4.2,程序访问权限文件配置

[root@hadoop01 ~ ]# vim /etc/sysconfig

#修改前
SELINUX=enforcing

 ||
\  /

#修改后
SELINUX=disable

1.5,克隆虚拟机

###在克隆主节点虚拟机时需要先把虚拟机关闭在方可克隆###

步骤:

右键关闭的主节点

管理->克隆

注意:需要克隆完整虚拟机,切记不要误选链接克隆虚拟机

注意:需要克隆三台虚拟机,克隆后的三台虚拟机节点需要再次修改IP地址,主机名并重启网络

2,免密登录

#需要在四个节点同时进行

2.1,创建公钥文件

命令:ssh-keygen -t rsa              //需要在四台节点都要执行

注意:输入后一直回车知道出现以下类似图案才可接着输入一下命令

+---[RSA 2048]----+
|        o o      |
|       = + +     |
|      . + o o    |
|       . . o     |
|  .   . S o o    |
|   +  .o . +     |
|o =+ +..= o o    |
|ooo=O+o..* o .   |
|+.+BX+ ...+.E    |
+----[SHA256]-----+

2.2,节点连接

命令:

ssh-copy-id hadoop01

ssh-copy-id hadoop02

ssh-copy-id hadoop03

ssh-copy-id hadoop04

//这四条命令需要在四台节点都要执行一遍

2.3,测验免密登录

命令:

ssh hadoop01   //在每一个节点执行

#退出登录

命令:exit

3,JDK安装部署

###以下步骤所用jdk版本号为1.8.0_162版本

#为了更加方便快速便捷完成jdk安装部署可先在主节点完成配置,再将文件拷贝至其他节点

3.1,上传压缩包并解压

可直接将压缩包直接拉入xshell或虚拟机

[root@hadoop01 ~]# tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt

#将jdk压缩包解压到"/opt/"文件目录下

3.2,修改文件名

[root@hadoop01 opt]# mv jdk1.8.0_162 jdk

3.3,JDK环境变量配置

[root@hadoop01  opt]# vim /etc/profile

#在文件结尾添加

export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin

#执行文件

[root@hadoop01 ~]# . /etc/profile

3.4,JDK安转部署验证

[root@hadoop01 ~]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

3.5,其他节点JDK文件及环境变量文件拷贝

#jdk文件

[root@hadoop01 ~]# scp -r /opt/jdk root@hadoop01:/opt/ 
[root@hadoop01 ~]# scp -r /opt/jdk root@hadoop02:/opt/ 
[root@hadoop01 ~]# scp -r /opt/jdk root@hadoop03:/opt/ 
[root@hadoop01 ~]# scp -r /opt/jdk root@hadoop04:/opt/ 

#环境变量文件

[root@hadoop01 ~]# scp -r /etc/profile hadoop01:/etc/profile
[root@hadoop01 ~]# scp -r /etc/profile hadoop02:/etc/profile
[root@hadoop01 ~]# scp -r /etc/profile hadoop03:/etc/profile
[root@hadoop01 ~]# scp -r /etc/profile hadoop04:/etc/profile

注意:在传输完后记得执行文件并查看版本java信息

3.6,JDK安装配置可能出现问题一

#查询结果的java版本信息可能与我们所安转部署的java版本不同

*********************解决方法如下*************************

3.6.1,删除系统自带java版本

[root@hadoop01 ~]# rm -rf /usr/bin/java

3.6.2,java版本替换

[root@hadoop ~]# ln -s /opt/jdk/bin/java /usr/bin/java

 4,Hadoop安装部署

###以下步骤所用hadoop版本号为3.1.3版本

#为了更加方便快速便捷完成hadoop安装部署可先在主节点完成配置,再将文件拷贝至其他节点

4.1,上传压缩包并解压

[root@hadoop01 ~ ]# tar -zxvf hadoop-3.1.3.tar.gz -C /opt/

4.2,hadoop文件重命名

[root@hadoop01 opt ]# mv hadoop-3.1.3 hadoop

4.3,环境变量文件配置

[root@hadoop01 ~ ]# vim /etc/profile

#添加
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

#执行文件

[root@hadoop01 ~ ]# . /etc/profile

#完成以上操作后即可查询版本号

[root@hadoop01 ~]# hadoop version
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/hadoop/share/hadoop/common/hadoop-common-3.1.3.jar

4.4,文件配置

[root@hadoop01 ~ ]# cd /opt/hadoop/etc/hadoop

4.4.1,配置hadoop-env.sh文件

[root@hadoop01 hadoop ]# vim hadoop-env.sh 

# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
# export JAVA_HOME=

#在以上代码下一行添加
export JAVA_HOME=/opt/jdk

4.4.2,配置mapred-env.sh文件

[root@hadoop01 hadoop ]# vim mapred-env.sh 

# Specify the JVM options to be used when starting the HistoryServer.
# These options will be appended to the options specified as HADOOP_OPTS
# and therefore may override any similar flags set in HADOOP_OPTS
#export MAPRED_HISTORYSERVER_OPTS=

#在以上代码下一行添加
export JAVA_HOME=/opt/jdk

4.4.3,配置yarn-env.sh文件

[root@hadoop01 hadoop ]# vim yarn-env.sh 

###
# Node Manager specific parameters
###

#在以上代码的上一行加入以下内容
export JAVA_HOME=/opt/jdk

4.4.4,配置core-site.xml文件

4.4.4.1,在/opt/hadoop文件目录下创建tmp新文件夹用来保存临时文件

[root@hadoop01 hadoop ]# mkdir tmp

 [root@hadoop01 hadoop ]# cd /opt/hadoop/etc/hadoop

#开始配置文件 

[root@hadoop01 hadoop ]# vim core-site.xml

#进入文件后先删除原始文件最后两行蓝色字体代码


#添加
<configuration>
<property>
    <!-- 配置hdfs地址 -->
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:9000</value>
</property>
<property>
    <!-- 保存临时文件目录,需先在/opt/hadoop下创建tmp目录 -->
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
</property>
<!--Hive安转配置-->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
</configuration>

4.4.5.配置hdfs-site.xml文件

[root@hadoop01 hadoop ]# vim hdfs-site.xml

#进入文件后先删除原始文件最后两行内容

#添加
<configuration>
    <property>
        <!-- 主节点地址 -->
        <name>dfs.namenode.http-address</name>
        <value>hadoop01:50070</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/dfs/data</value>
    </property>
    <property>
        <!-- 备份份数 -->
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <!-- 第二节点地址 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop02:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
        <description>配置为false后,可以允许不要检查权限就生成dfs上的文件,需防止误删操作</description>
    </property>
</configuration>

4.4.6,配置mapred-site.xml文件

[root@hadoop01 hadoop ]# vim mapred-site.xml

#进入文件后先删除原始文件最后两行内容

#添加
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>
    </property>
</configuration>

4.4.7,配置yarn-site.xml文件

[root@hadoop01 hadoop ]# vim yarn-site.xml

#进入文件后先删除原始文件最后一行内容

#添加
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop01:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop01:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop01:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoop01:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoop01:8088</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <!-- NodeManager中的配置,这里配置过小可能导致nodemanager启动不起来
                          大小应该大于 spark中 executor-memory + driver的内存 -->
        <value>6144</value>
    </property>
    <property>
        <!-- RsourceManager中配置
                          大小应该大于 spark中 executor-memory + driver的内存 -->
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>61440</value>
    </property>
    <property>
        <!-- 使用核数 -->
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>2</value>
    </property>
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不易出问题。</description>
    </property>
    <property>
      <!-- 调度策略,设置为公平调度器 -->
      <name>yarn.resourcemanager.scheduler.class</name>
      <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    </property>
</configuration>

4.4.8,配置workers文件

[root@hadoop01 hadoop ]# vim workers

#添加
hadoop02
hadoop03
hadoop04

4.4.9,修改/opt/hadoop/sbin目录下的集群启动与关闭文件

[root@hadoop01 hadoop ]# cd /opt/hadoop/sbin

4.4.9.1,配置start-dfs.shstop-dfs.sh文件

[root@hadoop01 sbin ]# vim start-dfs.sh

[root@hadoop01 sbin ]# vim stop-dfs.sh

#修改上面两个文件在文件头部添加如下配置:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
4.4.9.1,配置start-yarn.shstop-yarn.sh文件

[root@hadoop01 sbin ]# vim start-yarn.sh

[root@hadoop01 sbin ]# vim stop-yarn.sh

#修改上面两个文件在文件头部添加如下配置:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

5,文件拷贝并执行

###hadoop文件需每个节点都存在

5.1,hadoop文件拷贝

5.1.1,环境变量文件拷贝

[root@hadoop01 ~ ]# scp -r /etc/profile hadoop02:/etc/profile

[root@hadoop01 ~ ]# scp -r /etc/profile hadoop03:/etc/profile

[root@hadoop01 ~ ]# scp -r /etc/profile hadoop04:/etc/profile

###执行文件###

[root@hadoop02 ~ ]# . /etc/profile

[root@hadoop03 ~ ]# . /etc/profile

[root@hadoop04 ~ ]# . /etc/profile

5.1.2,hadoop文件拷贝

[root@hadoop01 ~ ]# scp -r /opt/hadoop root@hadoop02:/opt/

[root@hadoop01 ~ ]# scp -r /opt/hadoop root@hadoop03:/opt/

[root@hadoop01 ~ ]# scp -r /opt/hadoop root@hadoop04:/opt/

6,集群启动

#需要在/opt/hadoop文件目录下执行

6.1,集群格式化

[root@hadoop01 hadoop-3.1.3]# bin/hdfs namenode -format

6.2,启动集群

[root@hadoop01 hadoop-3.1.3]# sbin/start-dfs.sh
[root@hadoop01 hadoop-3.1.3]# sbin/start-yarn.sh 

 7.集群检验

7.1,进程检验

####hadoop01####


[root@hadoop01 ~]# jps
5895 Jps
5624 ResourceManager
5356 NameNode

####hadoop02####


[root@hadoop02 ~]# jps
5152 SecondaryNameNode
5085 DataNode
5245 NodeManager
5357 Jps

####hadooop03####

[root@hadoop03 ~]# jps
5080 DataNode
5178 NodeManager
5278 Jps

####hadooop04####

[root@hadoop04 opt]# jps
5090 NodeManager
5190 Jps
4991 DataNode

7.2,网页版测试

在默认浏览器打开网址:https://主机名:50070

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值