【Linux】—Hadoop运行环境搭建(完全分布式)


前言

本文主要讲Hadoop运行环境(完全分布式)搭建。三种完全分布式客户机如下:

在这里插入图片描述

Hadoop运行模式有三种:本地、伪分布、完全分布模式。

运行模式 说明
本地模式 数据存储在linux本地
伪分布模式 数据存储在HDFS
完全分布模式 数据存储在HDFS
多台服务器工作

一、模板虚拟机环境准备

1、安装模板虚拟机,请参考链接:https://blog.csdn.net/sodaloveer/article/details/139795882

模板虚拟机信息:

  • IP地址:192.168.10.100
  • 主机名称:QF
  • 内存:2G
  • 硬盘:80G

2、安装XShell远程访问机,请参考链接:https://blog.csdn.net/sodaloveer/article/details/140122338

3、QF虚拟机配置要求如下(本文Linux系统版本以Linux version 3.10.0-957.el7.x86_64为例)

  • 使用 yum 安装前,先执行"ping www.baidu.com"命令测试下虚拟机联网情况。

在这里插入图片描述

如果Linux安装的是最小系统版本,还需要安装"net-tool"工具、"vim"编辑器;如果安装的是Linux桌面标准版,可以跳过,直接执行命令安装epel-release。
  • 安装 net-tool 工具,执行"yum install -y net-tools "命令。
    net-tool:工具包集合,包含ifconfig等命令。

在这里插入图片描述

  • 安装 vim 编辑器,执行"yum install -y vim"命令。

在这里插入图片描述

  • 安装 epel-release ,执行"yum install -y epel-release"命令。

在这里插入图片描述

4、关闭防火墙,关闭防火墙开机自启

  • 执行"systemctl stop firewalld"命令。
  • 执行"systemctl disable firewalld.service"命令。

在这里插入图片描述

5、创建atwqf用户,并修改atwaf用户的密码

  • 执行"useradd atwqf"命令。
  • 执行"passwd w574520."命令。

6、配置atwqf用户具有root权限,方便后期加sudo执行root权限命令。

  • 执行"vim /etc/sudoers"命令,打开文件。
    修改/etc/sudoers文件,在%wheel这行下面添加一行:
    atwqf ALL=(ALL) NOPASSWD:ALL

在这里插入图片描述
注意:atwqf 这一行不要直接放到root下面,因为所有用户都属于wheel组,你先配置了atwqf具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码,所以atwqf要入放到%wheel行下面。

7、在/opt目录下面创建文件夹,并修改所属主和所属组。

7.1. 在/opt目录下创建module、software文件夹。

  • 执行"mkdir /opt/module"命令。
  • 执行"mkdir /opt/software"命令。

7.2. 修改module、software文件夹的所有者和所属组均为atwqf用户。

  • 执行"mkdir atwqf:atwqf /opt/module"命令。
  • 执行"mkdir atwqf:atwqf /opt/software"命令。

7.3. 查看module、software文件夹的所有者和所属组。

  • 执行"cd /opt/"命令。
  • 执行"ll"命令。

在这里插入图片描述

8、卸载虚拟机自带的JDK,如果你的虚拟机是最小化安装可以直接跳过这一步,不需要执行。

  • 执行"rmp -qa | grep -i java | xargs -nl rpm -e --nodes"命令。

9、重启虚拟机

  • 执行"reboot"命令。

在这里插入图片描述

二、克隆虚拟机(以hadoop102为例)

利用模板机QF,克隆三台虚拟机:hadoop102、hadoop103、hadoop104,下面以克隆hadoop102为例。

1、右键"管理"->“克隆”。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、选择"创建完整克隆"。

在这里插入图片描述

3、填写克隆虚拟机的名称和存放位置。

在这里插入图片描述

4、重复上面克隆hadoop102的步骤,完成hadoop103、hadoop104的克隆。

点击"完成"后,

5、如果想要彻底删除克隆机,右键"管理"->“从磁盘中删除”。
右键"移除"只是页面上移除。右键"打开”,选择到对应的文件夹就可以恢复了。(参考链接:如何把vmware中已经移除的虚拟机恢复)

在这里插入图片描述

在这里插入图片描述

三、修改克隆机的IP

1、修改克隆虚拟机的静态IP。

  • 执行"vim /etc/sysconfig/network-scripts/ifcfg-ens32"命令。
    主要是将IPADDR从"192.168.40.100"改成"192.168.40.102"(以hadoop102为例),同理,在hadoop103克隆机上要改成"192.168.40.103",在hadoop104克隆机要改成"192.168.40.104"。

在这里插入图片描述

2、修改克隆机主机名。

  • 执行"vim /etc/hostname"命令。
    将"QF"改成"hadoop102"(以hadoop102为例),同理,在hadoop103克隆机上要改成"hadoop103",在hadoop104克隆机上要改成"hadoop104"。

在这里插入图片描述

3、配置Linux克隆机主机名称映射host文件,执行"vim /etc/hosts"命令打开/etc/hosts。添加下面内容:

  • 192.168.40.100 qf
  • 192.168.40.101 hadoop101
  • 192.168.40.102 hadoop102
  • 192.168.40.103 hadoop103
  • 192.168.40.104 hadoop104

在这里插入图片描述

4、查看Linux虚拟机的"虚拟网络编辑器"

  • 点击"编辑"->“虚拟网络编辑器”->“VMnet8”。

在这里插入图片描述

  • 点击"更改设置”进入编辑。

在这里插入图片描述

  • 点击"VMnet8",设置"子网IP",点击 “NAT 设置” 进入设置 “网关IP”。

在这里插入图片描述

在这里插入图片描述

5、查看Windows系统适配器 VMware Network Adapter VMnet8的IP地址。

  • “设置”->“网络和Internet”->“更改适配器选项”

在这里插入图片描述

  • 右键"VMware Network Adapter VMnet8"->“属性”

在这里插入图片描述

  • "Internet 协议版本4(TPC/IPv4)"的属性

在这里插入图片描述

  • 设置"默认网关"和"DNS服务器地址"。

在这里插入图片描述

保证Linux系统ifcfg-ens32文件中IP地址,虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

6、重启克隆机hadoop102,执行"reboot"命令。

在这里插入图片描述

7、修改Windows的主机映射文件(hosts文件),进入"C:\Windows\System32\drivers"路径hosts,添加如下内容:(提示:操作系统是Windows10,先拷贝出来,修改保存以后,再覆盖即可。)

192.168.40.100 qf
192.168.40.101 hadoop101
192.168.40.102 hadoop102
192.168.40.103 hadoop103
192.168.40.104 hadoop104

在这里插入图片描述

四、安装JDK

以hadoop102为例。先安装到hadoop102上,再拷贝到hadoop103、hadoop104上。

0、jdk下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html,下滑找适合项目的jdk版本,尽量下载.tar.gz后缀的方便安装。

1、卸载现有jdk,在进行安装jdk前,一定要确保提前删除了虚拟机自带的jdk。

  • 执行”rpm -qa|grep java"命令,查看旧JDK,如果有执行"sudo yum -y remove 要删除jdk的名字"。

在这里插入图片描述

2、用XShell传输工具Xftp将JDK导入到/opt/software/文件夹下面。

在这里插入图片描述

3、在Linux系统下的opt目录中查看软件包是否导入成功。

  • 执行"ll"命令。

在这里插入图片描述

4、解压JDK到/opt/module目录下。

  • 执行"tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/"命令。

在这里插入图片描述

5、查看是否解压成功。

在这里插入图片描述

6、配置JDK环境变量。

  • 执行"vim /etc/profile.d/my_env.sh"命令新建文件,添加下面内容:
    #JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin
  • 执行"source /etc/profile"文件,让新的环境变量PATH生效。

在这里插入图片描述

7、测试JDK是否安装成功。

  • 执行"java -version"命令。

在这里插入图片描述

五、安装Hadoop(完全分布式)

以hadoop102为例,再拷贝到hadoop103、hadoop104上。

0、hadoop-3.1.3下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

1、用XShell传输工具Xftp将hadoop-3.1.3.tar.gz导入到/opt/software/文件夹下面。

在这里插入图片描述

2、在Linux系统下的opt目录中查看软件包是否导入成功。

  • 执行"ll"命令。

在这里插入图片描述

3、解压hadoop-3.1.3.tar.gz到/opt/module目录下。

  • 执行"tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/"命令。

在这里插入图片描述

4、查看是否解压成功。

在这里插入图片描述

5、配置Hadoop添加到环境变量。

  • 获取Hadoop安装路径"/opt/module/hadoop-3.1.3"。
  • 执行"vim /etc/profile.d/my_env.sh"命令新建文件,添加下面内容:
    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-3.1.3
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
  • 执行"source /etc/profile"命令,让新的环境变量PATH生效。

在这里插入图片描述

6、测试是否安装成功。

  • 执行"hadoop version"命令。

在这里插入图片描述

7、查看Hadoop目录结构。

  • 执行"ll"命令。

在这里插入图片描述

重要目录说明:

  • bin目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
  • etc目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
  • lib目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
  • sbin目录:存放启动或停止 Hadoop 相关服务的脚本
  • share目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

六、集群常用命令

1、根据上面的安装步骤,现在只有hadoop102这台客户机上安装好jdk和hadoop,因此通过scp命令将hadoop102安装成功的jdk和hadoop拷贝到hadoop103、hadoop104服务器上。如下图:

在这里插入图片描述

命令:scp
功能:安全拷贝,可以实现服务器与服务器之间的数据拷贝。
语法:
scp -r     $pdir/$fname        $user@$host:$pdir/$fname
scp -r   要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

在 hadoop102、hadoop103、hadoop104 都已经创建好的/opt/module、 /opt/software 两个目录,并且已经把这两个目录修改为 atwqf:atwqf。

在这里插入图片描述

在hadoop102上,
执行"scp -r /opt/module/jdk1.8.0_212 atwqf@hadoop103:/opt/module"命令,将hadoop102中/opt/module/jdk1.8.0_212 目录拷贝到hadoop103 上,
执行"scp -r /opt/module/jdk1.8.0_212 atwqf@hadoop104:/opt/module"命令,将hadoop102中/opt/module/jdk1.8.0_212 目录拷贝到hadoop104 上。

在这里插入图片描述

在hadoop102上,
执行"scp -r /opt/modu

### Hadoop 完全分布式模式配置与运行操作指南 #### 1. 环境准备 为了确保Hadoop能够在完全分布式环境中正常工作,需要预先准备好多台机器组成的集群环境。每台机器都需要安装相同版本的Java环境,并且能够通过SSH无密码登录其他节点。 #### 2. 下载并解压Hadoop包 在所有节点上下载相同的Hadoop压缩包,并将其解压到指定位置。假设解压后的路径为`/opt/module/hadoop-2.7.2/`[^2]。 #### 3. 修改核心配置文件core-site.xml 编辑`$HADOOP_HOME/etc/hadoop/core-site.xml`文件,在其中添加如下属性以设置NameNode地址: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode_host:9000</value> </property> </configuration> ``` 此处需替换`namenode_host`为主节点的实际主机名或IP地址。 #### 4. 设置YARN框架名称 继续在同一文件中追加用于指示MapReduce作业提交给YARN调度器的相关参数: ```xml <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> ``` 这一步骤对于启用YARN作为资源管理平台至关重要[^3]。 #### 5. 配置HDFS站点配置(hdfs-site.xml) 同样位于`$HADOOP_HOME/etc/hadoop/`目录下创建或修改名为`hdfs-site.xml`的XML文档,定义数据块副本数量以及两个Namenodes的具体信息(如果启用了HA特性): ```xml <configuration> <!-- 数据冗余度,默认情况下保存三份拷贝 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!-- 如果开启了高可用(HA),则还需要指明Active和Standby NameNodes的信息 --> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>namenode1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>namenode2:8020</value> </property> </configuration> ``` 这里需要注意的是,当涉及到高可用部署时,除了上述基本配置外,还需额外考虑JournalNodes的位置以及其他必要的安全性和性能优化选项[^4]。 #### 6. 初始化HDFS文件系统 回到主控节点(即被选作初始NameNode的那个),执行初始化命令来构建新的命名空间结构体: ```bash hdfs namenode -format mycluster ``` 此过程仅需执行一次即可完成整个集群内所有DataNodes上的元数据同步。 #### 7. 启动Hadoop服务 依次启动各个组件的服务进程,通常顺序是从Zookeeper开始,接着是HDFS,最后才是YARN ResourceManager及其附属的应用程序Master实例。具体可以通过脚本批量处理或者手动逐条输入相应指令实现自动化运维目标。 ```bash # 开始前先确认防火墙已关闭或开放必要端口通信权限 start-dfs.sh # 启动Datanode和Namenode守护线程 start-yarn.sh # 接着开启ResourceManager及相关辅助模块 mr-jobhistory-daemon.sh start historyserver # 可选:使能历史记录服务器以便追踪已完成的任务详情 ``` 以上步骤完成后便标志着一个完整的Hadoop生态系统已经搭建完毕,接下来就可以按照实际需求编写应用程序并通过客户端API接口提交至集群进行大规模数据分析计算了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值