基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!

原创声明:近期发现在关键字搜索我的文章时,发现很多文章被其他网站直接一字不落的拿去。在这里我先谢谢大家对我写的内容的肯定,我也会继续努力。但是,很多网站连标明都未标明来源,这就让人很可气,毕竟每一篇文章都是我一个字一个字敲出来的。我也不是在抱怨什么,只是希望那些某些站长在“转载”他人文章时标明来源,注明作者。不要只是简单的一个来源互联网。万分感谢。

此外,本站文章如未标注文章来源,则均为作者原创,请转载附上原文链接,并声明作者。保护原创,从我做起,谢谢合作。

如果是我的项目的话,源码会全部上传到我的Github,大家有需要的可以拿去研究,也可以我们一起交流探讨。最后,祝愿每一个默默努力的人都可以取得理想的结果。

-----------吃土少年8

我的这台服务器是租了一台阿里云学生机,9.5一个月。系统选的是CentOS7.3!

部署Hadoop(伪分布式):

  1. 安装JDK:

    • 因为之前我们将压缩包放在了opt目录下,我们先进入opt目录下,ls一下看看有么有我们的文件。
    • cd /opt
    • ls
    • img-dVSwZMVW-1592386866860
    • 解压缩jdk压缩包到opt目录tar zxvf /opt/jdk-8u161-linux-x64.tar.gz -C /opt/
    • ls查看:img-E0tJYymZ-1592387312205
    • 到这里JDK已经安装好了,但是我们系统环境变量里还没有配置,所以java -version命令会提示没有此命令,我们可以手动进入jdk下的bin目录,手动执行,即可查看到版本信息。
    • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第1张图片
    • 这是因为在终端输入一个命令时,会自动查询PATH变量中的所有配置路径,看里面有没有对应名称的命令,如果有则执行该命令,没有就提示command not found。
  2. 配置Java环境变量

    • 编辑 /etc/profile文件
    • vim /etc/profile
    • 键盘下键按到最下面添加如下两句进行配置
    • export JAVA_HOME=/opt/jdk1.8.0_161
    • export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
    • 按i进入插入模式,插入。
    • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第2张图片
    • 按esc,然后:wq!保存文件,但是当前没有重启,没有生效。但是我们可以利用source /etc/profile命令使当前操作生效,(想永久生效需重启,不必立刻重启)
    • 然后java -version查看一下环境变量生效没
    • image-20200617113745389
    • 成功!
  3. 对hostname和hosts文件进行配置

    • 这个是我之前配置过的,大家可以跟着照做就行。
    • 将当前主机名设为master:hostnamectl set-hostname master
    • 编辑/etc/hosts文件
    • vim /etc/hosts
    • 同理按i进入编辑模式,在末尾添加如下内容
    • xxx.xxx.xxx.xx master
    • 你的云主机内网IP 你的hostname
    • img-k30AZEfY-1592386866878
    • 然后按esc,再按:wq!保存
    • ping master命令看看是否正确
    • img-txZ56b3X-1592386866881
    • 他会停不下来,Ctrl+c强制停止即可。
  4. 关闭防火墙

    • systemctl stop firewalld.service 停止防火墙
    • systemctl disable firewalld.service 禁止防火墙开机启动
    • firewall-cmd --state 查看防火墙运行状态
    • 如显示not running,则配置成功
  5. 配置SSH免密登录

    • 伪分布式下的角色
      • 主节点(Master):运行NameNode进程
      • 从节点(Slave):伪分布就一个,运行NameNode进程
      • 备份节点(没名字,一般是单独的一台主机):运行SecondaryNameNode进程
    • Hadoop集群节点之间的访问是基于网络访问,基于IP地址和端口号进行彼此的访问。
      • 因此有了利用IP的不同模拟出了三个角色,其实都是本机(你的云主机)
      • Mster:主机内网IP,刚才的xxx.xxx.xxx.xx
      • Slave:默认本地IP,127.0.0.1
      • SecondaryNameNode:默认本地IP,0.0.0.0
    • SSH免密登录
      • SSH免密登录指的是配置Master可以SSH免密登录Slave
      • 在Master节点上,通过命令ssh-keygen -t rsa生成公钥和私钥
      • 将公钥发送到Slave节点上的 /用户名/.ssh/authorized_keys 文件中
      • 访问Slave时,会先到authorized_keys 中去匹配有没有对应的key,有就可以直接登录,没有就需要输入密码
    • 配置主节点(master)免密登录从节点
      • Master节点生成公钥和私钥
      • ssh-keygen -t rsa连续按四下回车,产生最后的图案就证明对了!
      • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第3张图片
      • 进入 .ssh目录cd /root/.ssh
      • 将生成的公钥
      • cp id_rsa.pub authorized_keys
      • 如果提示你是否覆盖,按y覆盖之前的空文件
      • img-hzjLztjM-1592386866886
      • ssh localhost测试一下,第一次访问会提示输入密码(或者是问你是不是要访问,yes即可),输入你的云主机密码即可,后续再次使用ssh命令访问时,如果不再提示输入密码,则证明成功!
      • ssh master再检查一下
      • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第4张图片
      • 重复上面两个ssh命令,可以直接进去的就表示成功了!
      • 如果没有配置成功,可以命令删除/root/.ssh文件夹,然后重新执行生成公钥之后的流程。
      • rm -rf /root/.ssh成功了的自动忽略这条命令!!!
  6. 安装Hadoop:

    • 同样的我们之前也将Hadoop压缩文件(hadoop-2.8.5.tar.gz)放到了opt目录下,版本较新,老版本不适配当前的Spark组件,安装的小伙伴记得对应好各组件的适配关系,不适配可是白忙活!
    • 同样的解压缩到opt目录下
    • tar zxvf /opt/hadoop-2.8.5 -C /opt/
    • ls一下ls /opt
    • 如图就表示成功了!image-20200617153717199
  7. 配置Hadoop环境变量:

    • 编辑 /etc/profile文件
    • vim /etc/profile
    • 键盘下键按到最下面添加如下两句进行配置
    • 按i进入插入模式,插入
    • export HADOOP_HOME=/opt/hadoop-2.8.5
    • export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH:$HOME/bin
    • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第5张图片
    • 按esc,再按:wq!保存
    • 输入source /etc/profile使本次配置生效
    • hadoop version检查一下
    • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第6张图片
    • 如图就成功了。
  8. 配置Hadoop:

    • Hadoop目录文件结构

    -基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第7张图片

    • 配置Hadoop,就是对安装路径下的/etc/hadoop文件夹中的配置文件进行配置,而我们只需要进行很简单的配置即可让Hadoop运行起来,因为设计者设计之初就遵循着默认即最优的思想!

    • 修改hadoop-env.sh文件,添加jdk地址

      • vim /opt/hadoop-2.8.5/etc/hadoop/hadoop-env.sh进行编辑
      • 在第25行发现有一个这样的配置img-cLer3lXW-1592386866902
      • 我们改写改配置改为export JAVA_HOME=/opt/jdk1.8.0_161
      • image-20200617161858206
      • 老方法保存退出。
    • 修改core-site.xml

      • hadoop.tmp.dir:配置hadoop的临时文件夹所在的路径,当hdfs格式化完毕后,会在该文件夹下生产格式化结果。这部分内容不能删除,否则hdfs将无法正常启动,该项的默认值是linux系统的tmp文件夹的路径,该文件夹在每次系统重启时,内容会被清空。导致再次启动会失效。

      • fs.defaultFS:NameNode所在的节点和端口号。

      • hadoop.proxyuser.root.hosts和hadoop.proxyuser.root.groups是设置访问HDFS的用户权限,设置为*表示不进行拦截,便于后续使用Hive操作hdfs时,不被拦截。

      • vim /opt/hadoop-2.8.5/etc/hadoop/core-site.xml

      • 插入模式插入内容:基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第8张图片

      •     <property>
                <name>hadoop.tmp.dirname>
                <value>/opt/hadoop/tmpvalue>
            property>
            <property>
                <name>fs.defaultFSname>
                <value>hdfs://master:8020value>
            property>
            <property>
                <name>hadoop.proxyuser.root.hostsname>
                <value>*value>
            property>
            <property>
                <name>hadoop.proxyuser.root.groupsname>
                <value>*value>
            property>
        
      • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第9张图片

      • 保存!

    • 修改hdfs-site.xml

      • dfs.replication:配置HDFS上Block的副本数量,默认是3,在伪分布下,为节省磁盘空间,手动改为1。

      • vim /opt/hadoop-2.8.5/etc/hadoop/hdfs-site.xml

      • 插入模式插入:

      •     <property>
                <name>dfs.replicationname>
                <value>1value>
            property>
        
      • 如图:基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第10张图片

      • 保存!

    • 配置mapred-site.xml

      • mapred-site.xml默认没有,而是有一个他的模板文件mapred-site.xml.template

      • 复制模板文件并配置

      • cp /opt/hadoop-2.8.5/etc/hadoop/mapred-site.xml.template /opt/hadoop-2.8.5/etc/hadoop/mapred-site.xml
        
      • 配置文件内容:vim /opt/hadoop-2.8.5/etc/hadoop/mapred-site.xml

      • 插入:

      •     <property>
                <name>mapreduce.framework.namename>
                <property>yarnproperty>
            property>
        
    • 配置yarn-site.xml

      • vim /opt/hadoop-2.8.5/etc/hadoop/yarn-site.xml

      • 插入,中间会默认带一行注释,不用管它

      •     <property>
                <name>yarn.resourcemanager.addressname>
                <value>master:8032value>
            property>
            <property>
                <name>yarn.resourcemanager.resource-tracker.addressname>
                <value>master:8031value>
            property>
            <property>
                <name>yarn.resourcemanager.scheduler.addressname>
                <value>master:8030value>
            property>
            <property>
                <name>yarn.nodemanager.aux-servicesname>
                <value>mapreduce_shufflevalue>
            property>
            <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>
                <value>org.apache.hadoop.mapred.ShuffleHandlervalue>
            property>
        
    • 配置从节点

      • 伪分布用不到,因为默认是localhost作为从节点,集群分布才需要改,我们这里一带而过
      • 通过对 /opt/hadoop-2.8.5/etc/hadoop/slaves 文件的配置,通知Hadoop将哪些主机作为从节点,该文件中配置的是从节点的hostname,还需要在/etc/hosts文件中配置hostname与ip的对应关系。
  9. 格式化Hadoop:

    • 其实是格式化(或者叫初始化)HDFS,要确保之前的所有操作正常再进行后续操作!!!
    • hdfs namenode -format
    • 在HDFS上创建主从节点信息,该项操作在正式使用Hadoop前执行一次,后续不能再重新格式化HDFS,否则将造成HDFS无法正常运行,或者已经保存的文件无法被访问。
    • 如果一定要再次进行格式化,则需要先删除hadoop本地临时文件夹中的内容,再进行格式化。删除的命令是:
    • rm -rf /opt/hadoop/tmp/
    • 有如图信息则表示成功,否则会在上面提示你哪里有问题,可以按照之前的Java异常文章找错误,一步步解决。
    • 基于阿里云服务器,一步步详解部署Hadoop2.8.5伪分布式并进行配置及原理解释,命令+图解!!!极其详细!!!_第11张图片
    • 到这里表示我们Hadoop配置完成了!

你可能感兴趣的:(大学)