简单的写了一份CentOS7安装Hadoop3.2.0部署伪分布式的教程,已多次实验成功,简单粗暴,全程带图,有手就行(

  • 2020.4.11 DEBUG 修复了个别CV错误的配置文件,并且作者于1:27开始完全跟着文章1:48成功部署,如果你跟着这篇文章还有问题,那肯定不是作者的问题
  • 不胎教了,我不配,小学生教育总可以了吧
  • 如果你真的有问题,请帮帮你自己
  • 加个补丁,所有操作都在root账户下执行

如果你心情好或者闲的无聊,可以看看我整理的hadoop笔记思维导图,里面有hadoop配置文件的简单说明

主要环境与软件版本:
VMware Workstation 15 Pro
CentOS 7
Hadoop3.2.0
jdk-8u181-linux-x64
MobaXterm V20.1

准备

Centos7安装与设置

  • 创建虚拟机->典型->选择Centos7镜像->下一步->填写全名-用户名-密码,请记好密码,这同时会成为你root账户的密码->下一步->修改虚拟机名称(我的是hadoop-test)->选择虚拟机存放目录->下一步->指定磁盘容量,建议往大了选(我的是70GB),其余默认->去掉**创建后开启虚拟机**,点击完成。
  • 选中刚才创建的虚拟机,点击编辑虚拟机设置(我们主要调整网络适配器,其他内存处理器等参数请读者自己仁者见仁智者见智,对于实验影响不大)
  • 点击网络适配器,网络桥接模式选择NAT模式,点击确定。

网络适配器

VMware网络配置

  • 点击VMware界面左上方编辑->虚拟网络编辑器
    虚拟网络编辑器
  • 点击右下角的更改设置,选中VMnet8,将下方的使用本地DHCP服务将IP地址分配给虚拟机选项去掉,如果你下方的子网IP与图中不一致,请点击还原默认设置后修改为192.168.174.0,然后点击确定
    点击更改设置
    反勾选DHCP与修改子网IP
  • 选中VMnet8,点击NAT设置,查看并记下显示的内容(特别是网关)
    NAT设置

    虚拟机网络配置

    启动虚拟机

  • 耐心等待安装完毕
  • 登录(使用root账户登录)

    查看网卡信息

  • 输入 ls /etc/sysconfig/network-scripts/ 查看网卡信息配置文件
    网卡信息配置文件
  • 如图,我的网卡信息配置文件名为 ifcfg-eno16777736 ,请注意,不同电脑有可能配置文件名不一样,请输入命令确定自己的网卡信息配置文件名
  • 输入 vi /etc/sysconfig/network-scripts/**** (****为你的网卡信息配置文件名)
  • 如果你真的使不来vi编辑器,请自行根据路径找到文件打开修改
  • 请做以下修改

    BOOTPROTO=static  #修改为static
    ONBOOT=yes      #修改为yes
    IPADDR=192.168.174.200   #添加自己想固定成的IP,但是一定要与上面的VMnet8的子网IP在同一网段
    GATEWAY=192.168.174.2    #这里的填写值就是上面NAT设置中让你记下的网关
    NETMASK=255.255.255.0    #子网掩码,没啥好说的
    DNS1=192.168.174.2      #同样也是上面NAT设置中让你记下的网关

  • 可以参考我的修改情况
    我的情况
  • 保存,重启虚拟机
  • 输入ifconfig -a 查看ip是否与自己固定的一致
    查看IP

网卡设置

  • 如果你上方设置和显示都与我一样,请如图设置VMnet8网卡信息,否则请自行对比参考填入你的信息。(不设置这一步可能会导致你的物理机SSH与SFTP连接不上虚拟机)

固定网卡

关闭防火墙并停止开机自启

sudo systemctl stop firewalld.service  #关闭防火墙
sudo systemctl disable firewalld.service  #停止防火墙开机自启
sudo firewall-cmd --state  #查看防火墙状态

保存快照1

为了你的身心健康,强烈建议你根据我的提示保存好每一步的快照,不然你可能会在某些问题发生的时候失去梦想

安装java

jdk

  • 准备好jdk,如果你没有认真看开头,这篇文章使用的是jdk-8u181-linux-x64,我也仅保证与我使用该jdk相同的是没有问题的,使用其他版本的请自行斟酌参考

    将jdk放入虚拟机中

  • 打开MobaXtrem(或其他SFTP软件,甚至你可以直接通过VMware拖进虚拟机,要问为什么我用它,因为我觉得这个软件帅因为它可以使用多种连接方式,包括SSH和SFTP)
  • 登入你的虚拟机(使用ROOT账户)
  • /usr/ 下创建一个文件夹 java(或者别的什么名字) ,将你的jdk-8u181-linux-x64.tar.gz文件丢进去
    创建文件夹并放入JDK压缩包
  • 在/root/下创建一个文件夹 app(爱叫啥叫啥)
  • (如果你也下载了MobaXtrem,那就直接拿SSH连接或者使用其他的SSH连接软件,不然就切回虚拟机在虚拟机终端中输入命令吧) 
  • 在终端中使用 cd 命令进入你刚才存放jdk的目录,输入命令解压jdk tar -zxvf jdk-8u181-linux-x64.tar.gz -C ~/app/(如果你上面是跟我一样的操作,这段命令直接复制粘贴,不然请自行修改后面的~/app/,这是你解压的目标路径)
  • cd 进入你刚才解压的目标路径底下的bin目录下(~/app/jdk1.8.0_181/bin),输入 ./java -version 查看是否安装成功
    解压jdk

    配置java路径

  • 我承认我也使不来vi编辑器,接下来的所有要操作文件内容修改的环节我都会直接用MobaXtrem内置的编辑器打开文件修改,有梦想的小伙伴可以继续使用vi编辑器
  • 首先cd进你的jdk文件夹底下,输入pwd,获取你的JAVA_HOME的值(如果你是完美复刻我的操作,接下来复制就行了,不用特地去查看JAVA_HOME的值)
    修改环境路径
  • 打开/etc/profile文件( vi /etc/profile )
  • 在文件底下添加四行

    export JAVA_HOME=/root/app/jdk1.8.0_181  #填写你上面获取到的JAVA_HOME的值
    export JRE_HOME=/root/app/jdk1.8.0_181/jre   #自行类比上一条 export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar   #照抄就行了 export PATH=$PATH:$JAVA_HOME/bin  #照抄

  • 保存文件,在终端输入 source /etc/profile
  • 在任意目录底下输入java -version 查看java环境是否正确配置,如果显示版本与你配置的java不一致,请执行下一步,否则跳过接下来的操作,直接去hadoop安装环节
  • 在终端输入 rpm -qa | grep java 查看你的虚拟机自带的java版本,一般开启图形化界面的centos都自带java,所以我们要删除它
  • 记下来如图箭头所指的名字(如果显示不一致请自行类比)
    自带java
  • 在终端输入命令删除它们(千万别把其他的删了!)
    • rpm -e --nodeps java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
    • rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
  • 此时你再执行 java -version ,显示的就是配置的java版本(最后先再运行一下 source /etc/profile )

    保存快照2

    安装Hadoop

    Hadoop

    准备好Hadoop,如果你没有认真看开头,这篇文章使用的是Hdoop3.2.0,我也仅保证与我使用该Hadoop相同的是没有问题的,使用其他版本的请自行斟酌参考

    将Hadoop放入虚拟机中

  • /usr/ 下创建一个文件夹 hadoop(或者别的什么名字) ,将你的hadoop-3.2.0.tar.gz文件丢进去
    创建文件夹并放入hadoop压缩包
  • 参考安装java的步骤,解压去/root/app/文件夹下
    • tar -zxvf hadoop-3.2.0.tar.gz -C ~/app/
  • 打开/etc/profile( vi /etc/profile ),在最底下添加修改

    export HADOOP_HOME=/root/app/hadoop-3.2.0    #添加HADOOP_HOME路径,值为你的Hadoop解压后的目标路径 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin  #修改PATH的值

  • 终端中输入 source /etc/profile ,然后任意目录运行 hadoop version 查看Hadoop路径是否正确配置,如果版本号正常出现,就说明没问题
    Hadoop版本

    修改Hadoop配置文件

  • 创建三个后面会用到的文件夹

    mkdir /root/app/tmp
    mkdir -p /root/app/hdfs/name
    mkdir /root/app/hdfs/data

  • 进入你Hadoop目录下的 /etc/hadoop ,打开 hadoop-env.sh 进行修改  
    • 找到JAVA_HOME注释区
    • 去掉注释,并将值修改为你上面填写的JAVA_HOME的值(/root/app/jdk1.8.0_181)
      修改JAVA_HOME
  • 同一目录下,修改yarn-env.sh,在文件头加入export JAVA_HOME=/root/app/jdk1.8.0_181
    yarn-env.sh
  • 同一目录下,修改core-site.xml,在configuration标签中添加下面的内容(如果与我操作有些不同的读者请自行进行修改)

    fs.default.name hdfs://master:9000 fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /root/app/tmp

core-site.xml

  • 同一目录下,修改hdfs-site.xml,在configuration标签中下入下面的内容(如果与我操作有些不同的读者请自行进行修改)

    dfs.namenode.name.dir file:/root/app/hdfs/name dfs.datanode.data.dir file:/root/app/hdfs/data dfs.replication 1

hdfs-site.xml

  • 同一目录下,修改mapred-site.xml,在configuration标签中下入下面的内容(如果与我操作有些不同的读者请自行进行修改)

    mapreduce.framework.name yarn

mapred-site.xml

  • 同一目录下,修改yarn-site.xml,在configuration标签中下入下面的内容(如果与我操作有些不同的读者请自行进行修改)

    yarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle

yarn-site.xml

  • 切换至目录/root/app/Hadoop-3.2.0/sbin,在start-dfs.sh,stop-dfs.sh文件头部加入下面的内容

    HDFS_DATANODE_USER=root
    HADOOP_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root

  • 依旧是在该目录下,在start-yarn.sh,stop-yarn.sh文件头部加入=下面的内容

    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root

保存快照3

部署

设置SSH免密码登录

  • 打开/etc/hostsnamevi /etc/hostname ),将里面的内容修改为 master
  • 打开/etc/hosts( vi /etc/hosts ),在下方添加一行192.168.174.200 master (注意IP和主机名间有一个空格)
    hostname
  • 输入 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa ,于~/.ssh/id_dsa创建一个无密码的公钥
  • 输入 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ,将公钥id_dsa.pub添加进keys

    格式化

  • 输入 hadoop namenode -format  格式化namenode

    启动

  • 输入 start-dfs.sh
  • 输入 start-yarn.sh
    • 如果上面的两条命令运行不了,说明你的PATH中没有配置hadoop/sbin目录,请自行去etc/profile修改
  • 输入 jps 查看进程,如果你上面的操作都没有问题,那么你就会显示一共6个进程,这代表你成功了,如果少了,请仔细检查有没有步骤操作失误或遗忘操作某些步骤(特别是防火墙)
    成功!

    测试

    访问网址

  • 访问 192.168.174.200:9870 (3.1.0之前端口号是50070)
    测试访问HadoopWebUI
  • 访问 192.168.174.200:8088 
    yarn管理界面

    花絮

  • 这篇文章诞生于一个神奇的实验文档.....那篇文档实在过于意识流,以至于我看着部署Hadoop的时候硬是部署到凌晨2点才解决,而且我当时偷工减料了....所以我才重新写一篇符合实验实际规定的教程
  • 事实上,我第一遍写这个实验的时候使用的是Hadoop3.0.0(这就是偷工减料的地方),在3.0.0以及之前版本中的WebUI访问端口是50070.........于是我被这玩意从9点钟坑到10点钟......
  • 原本还想写个openstack部署教程的,但是我想起来openstack的部署纯粹是时间长,过程并没有什么尿点,还是算了吧,如果有同学问到我再重新写一篇查漏补缺的文章出来充数吧
  • 找头图找了半小时,奥里给!

参考

参考来源

Last modification:April 12th, 2020 at 11:17 pm
如果觉得我的文章对你有用,请随意赞赏