CentOS_虚拟机搭建Hadoop伪分布

本文详细介绍了如何在CentOS虚拟机中搭建Hadoop伪分布环境,包括设置静态IP、免密登录、配置环境变量、安装JDK和Hadoop、修改配置文件以及启动和关闭Hadoop集群。特别强调了云服务器环境下需注意的内网IP设置和防火墙端口开放。此外,还提供了Xshell和Xftp的下载与使用指南,帮助用户更便捷地管理远程Linux系统。
摘要由CSDN通过智能技术生成

Developer&Author:Robit Wong, Apr 3rd 2021
User_Objects:搭建全分布环境过于占用电脑资源导致实验进程困难的同学
Postscript:包含对云服务器搭建Hadoop伪分布的说明

CentOS虚拟机_搭建Hadoop伪分布环境

前言说明

在执行本教程前,需要具备以下条件

  • Linux_CentOS 系统的静态IP已设置完毕
  • Linux_CentOS执行ping www.baidu.com 结果为真,即可接入互联网
  • 可通过SSH工具远程登录Linux_CentOS
  • 已安装好用的SSH远程登录管理工具(如Xshell [学生版不收费])

附:下载Xshell & Xftp 远程登录管理工具说明,这是极其好用的SSH远程登录管理工具

学生版申请页面https://www.netsarang.com/zh/free-for-home-school/
在这里插入图片描述

邮件一栏填写自己的QQ邮箱即可,如标红位置,选择两者,点击下载后,你的邮箱会收到两封邮件,这两封邮件分别是Xshell和Xftp的免费下载使用链接,学生版性能无区别,只是限制Linux终端远程登录数量。Xftp是远程文件可视化管理工具,可方便下载或上传或编辑文件,Xshell则只是终端命令行工具,但可以通过Xshell内部直接点开Xftp并自动定位到当前工作目录,非常方便。

在这里插入图片描述
在这里插入图片描述

如上图为软件商发送的软件下载链接,上图邮件是自动翻译后的界面,原始邮件是英文的,见标红的地方,分别点击即可开始下载两个软件。下载后正常安装即可,关于Xshell和Xftp的使用请自行百度,不在赘述!

正式配置教程

1、在虚拟机客户端启动CentOS后,无需在虚拟机客户端完成Linux登录,可直接通过Xshell SSH工具远程登录Linux,如下图

在这里插入图片描述

2、配置/etc/hosts文件

  • 静态IP查看命令ip addr,圈红为静态IP
    在这里插入图片描述
  • 主机名的修改可通过编辑 /etc/hostname文件后重启Linux系统(reboot)实现
vim /etc/hostname  #编辑 /etc/hostname 文件

在这里插入图片描述

注:重启CentOS会断开SSH远程连接,重启完成后,重新连接即可

  • hosts文件配置
#如我的静态IP为192.168.56.103,主机名为mainMaster,则添加如下内容
192.168.56.103  mainMaster

在这里插入图片描述
提示:如果你使用的是云服务器部署hadoop伪分布,则将静态IP改为你的内网IP,注意:不是公网IP,要不然你无法正常启动Hadoop!!

3、设置免密登录

注:如果不设置免密登录,在启动或关闭Hadoop时你会不断的输入你的系统密码,非常麻烦!!!

#键入如下命令,连续回车即可
ssh-keygen -t rsa 

在这里插入图片描述

  • 关闭SELinux
#键入如下命令关闭SELinux
vim /etc/selinux/config  #打开配置文件

将SELINUX值修改设为disabled ,SELINUX=disabled,如下图
在这里插入图片描述

  • 拷贝公钥
#拷贝公钥,格式ssh-copy-id 你的主机名
#如我的主机名为mainMaster,所以键入如下命令即可完成公钥拷贝
ssh-copy-id  mainMaster

在这里插入图片描述

以上三步骤缺一不可,否则无法完成免密登录

4、在root用户下创建Hadoop工作目录

mkdir -p /export/softwares  #JDK和Hadoop软件安装包目录
mkdir -p /export/servers    #JDK和Hadoop软件安装目录
  • 进入/export/software目录后,点击红圈标注位置即可打开Xftp文件可视化管理工具,Xftp会自动定位到当前工作目录
    在这里插入图片描述
Xftp页面如下图

在这里插入图片描述

左边是Windows目录,右边是Linux目录,通过拖动文件即可完成文件传输,标红的位置,即为上传的JDK和Hadoop安装目录,这里选用版本为

  • java version “1.8.0_281”
  • Hadoop版本:2.7.5(已重新编译)

注:Hadoop最好使用重编译后的版本,这是为了后续学习更好使用Hadoop,无需知道太多理由!网上没有资源,以下给出Hadoop和JDK的超星云盘下载链接,超星云盘下载速度快。下载完成后通过Xftp工具上传到/export/softwares目录即可

超星云盘下载链接: http://pan-yz.chaoxing.com/share/info/c8bc5aead19d0457 提取码 : n7za69

百度网盘下载链接: https://pan.baidu.com/s/1Xv9xbQqTEvvM60joeVrd3A 提取码 : iy46

5、解压安装JDK和Hadoop

进入/export/softwares目录

cd /export/softwares   #进入/export/softwares目录

在这里插入图片描述

键入解压命令解压JDK和Hadoop

#解压JDk安装到/export/servers 目录
tar zxvf jdk-8u281-linux-x64.tar.gz -C ../servers/  
#解压hadoop安装到/export/servers 目录
tar zxvf hadoop-2.7.5.tar.gz -C ../servers/        

执行完成后进入/export/servers 目录,可见JDK和Hadoop已成功安装

cd ../export/servers   #从softwares目录进入/export/servers目录

在这里插入图片描述

6、配置JDK及Hadoop环境变量

方法1:键入命令打开编辑 /etc/profile 文件

 #编辑环境变量文件,没有vim可使用vi或安装vim
 vim /etc/profile  
 或
 vi /etc/profile  
 
# vim是优点多于vi的Linux文件编辑器,建议安装使用

vim安装配置教程 :https://www.php.cn/blog/detail/21541.html

=======复制粘贴以下内容到/etc/profile 文件末尾,保存退出即可!=========

#JAVA_HOME
export JAVA_HOME=/export/servers/jdk1.8.0_281
export PATH=:$JAVA_HOME/bin:$PATH
 
#HADOOP_HOME
export HADOOP_HOME=/export/servers/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

:wq   #底行模式保存退出/etc/profile文件

在这里插入图片描述

方法2:使用Xftp工具进入etc目录,定位到profile文件,点击鼠标右键,选择“用记事本编辑”
在这里插入图片描述
在这里插入图片描述

通过方法2,完成环境变量配置后,点击记事本的保存即可退出,这种方法比较方便

  • 键入如下命令使环境变量文件即可生效
 source /etc/profile  #使环境变量文件即可生效
  • 键入如下命令,可查看JDK和Hadoop的版本,如下图则代表环境变量配置成功
java -version
hadoop version

在这里插入图片描述

7、配置Hadoop

  • 创建 hadoop的临时数据文件存储目录tempDatas
 mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas

在这里插入图片描述

  • 修改hadoop-env.sh文件如下,添加Java路径到如下位置

    # The java implementation to use.
    export JAVA_HOME=/export/servers/jdk1.8.0_281   
    

在这里插入图片描述

  • 修改core-site.xml文件如下

    • fs.defaultFS的值为hdfs://你的主机名:端口

    • hadoop.tmp.dir的值为hadoop的临时数据文件存储目录tempDatas

    <configuration>
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mainMaster:8520</value>
            </property>
             <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/export/servers/hadoop-2.7.5/hadoopDatas/tempDatas</value>
            </property>
    </configuration>
    

在这里插入图片描述

  • 修改hdfs-site.xml文件如下

    • dfs.replication的值为集群主机数量,由于这里是伪分布只有一台主机,所以值为1,如果你是全分布有3台主机,那么这个值就为3

    • dfs.namenode.http.address的值为你的主机名:50070,必须配置这个值,否则你无法通过50070端口访问Hadoop网页

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
            <property>
                    <name>dfs.client.use.datanode.hostname</name>
                    <value>true</value>
            </property>
            <property>
                    <name>dfs.datanode.use.datanode.hostname</name>
                    <value>true</value>
            </property>
            <property>
                    <name>dfs.permissions</name>
                    <value>false</value>
            </property>
    
        <property>
                        <name>dfs.namenode.http.address</name>
                       <value>mainMaster:50070</value>
               </property>
    </configuration>
    

在这里插入图片描述

  • 修改mapred-site.xml文件如下,将mapred-site.xml.template文件改名为mapred-site.xml即可
    在这里插入图片描述

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

在这里插入图片描述

  • 修改yarn-site.xml文件如下

    • yarn.resourcemanager.hostname的值为你的主机名
    <configuration>
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>mainMaster</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
    </configuration>
    

在这里插入图片描述

  • 修改slaves文件如下

    你的主机名
    #如我的主机名为 mainMaster,所以只需输入 mainMaster保存退出即可
    

在这里插入图片描述

8、放开50070端口

此步骤作用等同于关闭防火墙,但比关闭防火墙更安全,推荐使用此方式

#防火墙放开50070端口
firewall-cmd --zone=public --add-port=50070/tcp --permanent 

#重载防火墙,每放开一个新的端口都需要重载防火墙
firewall-cmd --reload       
firewall-cmd --list-all #查看防火墙已放开的端口列表

执行以上三个命令后,可以发现CentOS已放开了50070端口

在这里插入图片描述

注:如果你使用的云服务器防火墙放开端口,那么你需要在云服务器控制台安全组先放开50070端口后,在进入CentOS放开50070端口,如下图,等于要放开两道防火墙,这是云服务器服务商为了安全而在CentOS前又搞的一道安全防火墙,但本地虚拟机则只有一层CentOS防火墙

服务器放开50070端口

选作(不推荐):如果你喜欢关闭防火墙也可以,执行以下命令即可

systemctl stop firewalld    #关闭CentOS防火墙
systemctl disable firewalld  #开启开机禁用防火墙
systemctl status firewalld   #查看防火墙状态确定是否关闭

如下图,防火墙关闭了,防火墙状态为inactive

在这里插入图片描述

9、启动Hadoop集群

  • 格式化namenode

    #格式化namenode命令
    hadoop namenode -format
    

在这里插入图片描述

  • 键入命令启动hadoop
start-all.sh

在这里插入图片描述

  • 键入jps命令查看启动情况
jps

在这里插入图片描述

可见Hadoop伪分布启动成功

  • 浏览器访问50070
=========虚拟机访问格式==========
你的静态IP:50070
#如我的静态IP为192.168.56.103,所以浏览器访问地址
192.168.56.103:50070

=========云服务器访问格式========
你的公网IP:50070

在这里插入图片描述

如图可见访问成功!这证明Hadoop在虚拟机的伪分布环境搭建成功

  • 关闭Hadoop集群
stop-all.sh

在这里插入图片描述

可见Hadoop集群已关闭!

如果你在启动Hadoop过程中遇到错误!你可通过查看日志的方式查找问题并解决!值得注意的是,每当启动Hadoop遇到错误时,你都需要键入命令stop-all.sh停止Hadoop启动后,再进行日志的查找,基于日志指出的问题,通过百度查找解决方案,解决问题后需将 hadoop的临时数据文件存储目录tempDatas下的文件清空,而后键入命令hadoop namenode -format重新格式化namenode后,再次键入命令start-all.sh启动集群!

--------------------------------到这里Hadoop在虚拟机上的伪分布环境就搭建完成了-----------------------------

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值