栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Hadoop完全分布式集群搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hadoop完全分布式集群搭建

Hadoop 3.x是基于JDK1.8开发的,较其他两个版本而言,在功能和优化方面发生了很大的变化,其中包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化等,所以在学习Hadoop的教程以及多次尝试后,总结了快速搭建Hadoop3.x的完全分布式集群的过程,特此写了这篇博客和大家一起分享,不足之处,请大家多多指教!


文章目录
  • 一、环境依赖
    • 1.VmWare虚拟机
    • 2.hadoop安装包
    • 3.jdk安装包
  • 二、环境准备
    • 1.VmWare创建Linux虚拟机
    • 2.修改静态IP地址
    • 3.下载搭建中所需要的工具
    • 4.克隆虚拟机
    • 修改虚拟机的主机名和IP地址
  • 三、配置免密登录
  • 四、集群搭建步骤
    • 安装jdk和hadoop
    • 进入hadoop配置文件
    • 配置从机node3和node4
    • 启动集群


一、环境依赖 1.VmWare虚拟机 2.hadoop安装包

本次实验使用的是hadoop版本是hadoop-3.3.0.tar.gz
下载地址:https://hadoop.apache.org/release/3.3.0.html

3.jdk安装包

hadoop3只支持java8以上版本,本次实验使用的jdk版本是 jdk-8u271-linux-x64.tar.gz
下载地址:https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html


二、环境准备 1.VmWare创建Linux虚拟机

VmWare安装Linux

2.修改静态IP地址

测试是否连接网络

ping www.caidu.com

如果ping不通,修改以下文件

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

修改内容

ONBOOT=yes

继续修改网络配置文件,设置静态IP

BOOTPROTO=static
IPADDR=192.168.19.135
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
DNS1=192.168.19.2  

配置项内容应保证和你的虚拟机的网络是同一个局域网,查看方式

打开VMware→编辑→虚拟机网络编辑器
点击VMnet8的NAT模式–>点击NAT设置,查看网关地址

修改完成后重新启动网络即可

systemctl restart network
3.下载搭建中所需要的工具

下载vim或nano工具

yum -install vim -y
yum -install nano -y

下载远程同步工具rsync(rsync 是一个常用的 Linux 应用程序,用于文件同步,实现增量覆盖。rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分,默认规则是文件大小或修改时间有变动)

yum install rsync -y
4.克隆虚拟机

克隆两台hadoop02虚拟机,并分别命名为Hadoop03和Hadoop04(虚拟机名称可以是其他的,配置集群时真正起作用的是主机名),克隆具体步骤如下图:




修改虚拟机的主机名和IP地址

分别设置三台虚拟机的主机名: hadoop02为node2,hadoop03为node3, hadoop04为node4(为什么我的虚拟机名称和主机名名称都是从2开始,因为我的hadoop01用来搭建了伪分布集群)

[root@localhost ~]# hostnamectl set-hostname node1

同样的方法修改hadoop03的主机名为node3
hadoop04的主机名为node4

分别设置三台虚拟机的IP地址(请根据你的实际情况修改)

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

node2 ip设置为 192.168.19.135
node3 ip设置为 192.168.19.136
node4 ip设置为 192.168.19.137

重启网络

[root@localhost ~]# systemctl restart network

修改ip与主机名的映射

[root@localhost ~]# nano /etc/hosts

添加如下内容

192.168.19.135 node2
192.168.19.136 node3
192.168.19.137 node4

node3和node4同样的步骤

[root@localhost ~]# reboot

重启虚拟机

三、配置免密登录

先关闭所有节点防火墙

查看当前节点的防火墙状态

[root@node2 ~]# systemctl status firewalld

若防火墙处于active状态,则关闭该节点的防火墙

[root@node2 ~]# systemctl stop firewalld

同样的方法再次在node3和node4上面操作

配置三台虚拟机之间免密登录

在node2使用如下命令生成私钥文件

[root@node2 ~]# ssh-keygen -t rsa

执行命令后后,连续敲三次回车键

拷贝公钥

[root@node2 ~]# ssh-copy-id node2

执行ssh-copy-id命令后,根据提示输入yes,再输入主机登录密码

继续执行

[root@node2 ~]# ssh-copy-id node3
[root@node2 ~]# ssh-copy-id node4

验证是否配对成功

[root@node2 ~]# ssh node3
Last login: Sun May  1 21:49:15 2022 from node2
[root@node3 ~]# exit
logout
Connection to node3 closed.
[root@node2 ~]# ssh node4
Last login: Sun May  1 21:50:21 2022
[root@node4 ~]# exit
logout
Connection to node4 closed.

相同的步骤在node3、node4主机上操作

四、集群搭建步骤 安装jdk和hadoop

在root用户下的当前目录下创建soft文件夹和installfile文件夹

[root@node2 ~]# mkdir soft
[root@node2 ~]# mkdir installfile

将安装所需要的tar包导入到installfile文件夹中
可以使用sftp文件传输工具将下载好的文件传输到installfile文件夹中

分别解压hadoop-3.3.0.tar.gz和jdk-8u271-linux-x64.tar.gz到soft文件夹中

[root@localhost ~]# tar -zxvf installfile/hadoop-3.3.0.tar.gz -C soft
[root@localhost ~]# tar -zxvf installfile/jdk-8u271-linux-x64.tar.gz  -C soft

创建软连接,方便后面设置环境变量和配置文件

[root@node2 soft]# ln -s hadoop-3.3.0 hadoop
[root@node2 soft]# ln -s jdk1.8.0_271 jdk

配置环境变量

[root@node2 ~]# nano /etc/profile.d/my_env.sh

这里的my_env.sh是新建的脚本文件

添加如下内容

#JAVA_HOME
export JAVA_HOME=/root/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/root/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

使用source命令刷新全局变量,让新增的shell脚本生效

[root@node2 ~]# source /etc/profile

查看jdk和hadoop是否安装成功

[root@node2 ~]# java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
[root@node2 ~]# hadoop version
Hadoop 3.3.0
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r aa96f1871bfd858f9bac59cf2a81ec470da649af
Compiled by brahma on 2020-07-06T18:44Z
Compiled with protoc 3.7.1
From source with checksum 5dc29b802d6ccd77b262ef9d04d19c4
This command was run using /root/soft/hadoop-3.3.0/share/hadoop/common/hadoop-common-3.3.0.jar
进入hadoop配置文件

进入hadoop配置目录

[root@node2 ~]# cd $HADOOP_HOME/etc/hadoop

配置core-site.xml文件

[root@node2 hadoop]# nano mapred-site.xml 

里面添加如下内容



    
    
        mapreduce.framework.name
        yarn
    

    
    
        mapreduce.jobhistory.address
        node2:10020
    

    
    
        mapreduce.jobhistory.webapp.address
        node2:19888
    
    

配置日志采集,修改yarn-site.xml

[root@node2 hadoop]# nano yarn-site.xml 

中添加如下内容




    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

    
    
        yarn.resourcemanager.hostname
        node3
    

    
    
        yarn.nodemanager.env-whitelist
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    

    
    
        yarn.scheduler.minimum-allocation-mb
        512
    
    
        yarn.scheduler.maximum-allocation-mb
        2048
    
    
    
    
        yarn.nodemanager.pmem-check-enabled
        false
    
    
        yarn.nodemanager.vmem-check-enabled
        false
    


配置mapred-site.xml

[root@node2 hadoop]# nano mapred-site.xml 

中添加如下内容



    
    
        mapreduce.framework.name
        yarn
    

    
    
        mapreduce.jobhistory.address
        node2:10020
    

    
    
        mapreduce.jobhistory.webapp.address
        node2:19888
    

配置mapred-site.xml

[root@node2 hadoop]# nano mapred-site.xml 

中添加如下内容



    
    
        mapreduce.framework.name
        yarn
    

    
    
        mapreduce.jobhistory.address
        node2:10020
    

    
    
        mapreduce.jobhistory.webapp.address
        node2:19888
    


修改workers,将原有内容替换为如下内容

[root@node2 hadoop]# nano workers 

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行

node2
node3
node4
配置从机node3和node4

将node2的soft的jdk和hadoop安装文件分发到node3和node4上

[root@node2 ~]# rsync ~/soft

查看node3和node4是否存在文件

[root@node3 ~]# ls soft/
hadoop        hadoop-3.3.0
jdk           jdk1.8.0_271
[root@node4 ~]# ls soft/
hadoop        hadoop-3.3.0
jdk           jdk1.8.0_271

在node3上添加java和hadoop的环境变量

[root@node3 ~]# nano /etc/profile.d/my_env.sh

添加如下内容

#JAVA_HOME
export JAVA_HOME=/root/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/root/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

使用source命令刷新全局变量,让新增的shell脚本生效

[root@node3 ~]# source /etc/profile

查看jdk和hadoop是否安装成功

[root@node3 ~]# java -version
[root@node3 ~]# hadoop version

输出版本号即配置成功

同样的方法配置node4 启动集群

格式化文件系统
在node2机器执行格式化hdfs

[root@node2 ~]# hdfs namenode -format

看到successfully formatted为格式化成功

注意:格式化成功后,以后就不能再次格式化了

启动dfs,在node2机器上执行启动hdfs命令

[root@node2 ~]# start-dfs.sh
[root@node2 ~]# start-dfs.sh
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [node2]
Last login: Sun May  1 20:19:21 CST 2022 from 192.168.19.1 on pts/0
Starting datanodes
Last login: Mon May  2 09:45:44 CST 2022 on pts/0
Starting secondary namenodes [node4]
Last login: Mon May  2 09:45:47 CST 2022 on pts/0

启动yarn,在node3机器上执行启动yarn命令

[root@node3 ~]# start-yarn.sh
[root@node3 ~]# start-yarn.sh
Starting resourcemanager
Last login: Mon May  2 10:33:20 CST 2022 from 192.168.19.1 on pts/0
Starting nodemanagers
Last login: Mon May  2 10:33:29 CST 2022 on pts/0

使用jps查看各节点的进程,验证是否搭建成功

[root@node2 ~]# jps
2759 DataNode
2617 NameNode
3098 NodeManager
3213 Jps
[root@node3 ~]# jps
2256 Jps
1909 NodeManager
1560 DataNode
1771 ResourceManager
[root@node4 ~]# jps
1809 Jps
1557 SecondaryNameNode
1483 DataNode
1693 NodeManager

浏览器验证,使用IP地址和端口号进行访问

浏览器访问node2:输入192.168.19.135:9870或http://192.168.19.135:9870

浏览器访问node3:输入192.168.19.136:8088或http://192.168.19.136:8088

参考:尚硅谷hadoop教程资料,csdn博主:Hadoop_Liang

completed! 不足之处 请多指教


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号