hadoop(04)、Hadoop 集群模式搭建实践


声明:本文转载自https://my.oschina.net/zss1993/blog/1579933,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

     在《hadoop(01)、windows平台下hadoop环境搭建》一文中,我们在windows平台上搭建了单机模式的hadoop,本文我们将在linux(CentOS7)下搭建hadoop集群模式,以便实践更多场景下hadoop的使用,尤其是在实际的生产模式中,必定是以集群模式存在。

一、准备工作

      1.三台CentOS7-64的机器(本文已经在VM中搭建好了)

      2.JDK-LINUX-64的程序包(jdk-8u151-linux-x64.tar.gz)

      3.hadoop-2.8.2的程序包(hadoop-2.8.2.tar.gz)

      4.SSH连接工具(git bash)

      5.FTP传输工具(8uftp)

      

       准备的三台虚拟机:

       192.168.100.10   Master主节点

       192.168.100.20   Slaver从节点1

       192.168.100.30   Slaver从节点2

       

        准备的相关程序包

二、环境准备

       分别打开三台虚拟机:

      1.向三台主机使用FTP传文件

        打开FTP工具

      注意:如果最小化安装的系统,需要在centos安装ftp服务:yum -y install vsftpd

      特别注意:如果安装ftp服务时不能解析域名,需要配置dns解析:vi /etc/resolv.conf

      nameserver 8.8.8.8

      nameserver 8.8.4.4

      

     安装完成FTP服务,这时候使用FTP服务还是连接不上,我们修改vsftpd的配置文件:

     vi /etc/vsftpd/vsftpd.conf

     

     此时,使用命令: netstat -ntlp,此时FTP服务的21端口已经打开,

     

     使用FTP服务上传hadoop的服务包到/home/hadoop/目录下:

     

     

    上传JDK的程序包/home/java/目录下:

     

     

     2.因为hadoop是java环境下的,于是我们首先安装jdk环境

        进入/home/java 目录使用 ls命令查看文件:

        

       这时能看到刚才使用FTP上传的hadoop的程序包,然后我们使用解压命令:tar -zxvf <file>

       经过一会解压过程,文件解压完成:

       注:文件名太长可写首字母后用tab自动补齐

       

       然后在/etc/profile文件中,配置环境变量,让JDK在所有用户生效:vi /etc/profile

       在文件的最后添加以下设置:

       注:使用某些SSH工具可以直接ctrl+c+v操作,不用手动输入,文本使用的git bash就可以

       export JAVA_HOME=/home/java/jdk1.8.0_151
       export JRE_HOME=$JAVA_HOME/jre 
       export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib 
       export PATH=$JAVA_HOME/bin:$PATH

       

       保存退出后,让修改的环境变量生效:source /etc/profile

       此时环境变量已经生效,我们验证下jdk安装的是否成功: java -version

       

       特别提醒:

       1.禁止防火墙:

                           systemctl stop firewalld.service  停止防火墙

                           systemctl disable firewalld.service 静止开机启动

       2.禁止Selinux:

                           /usr/sbin/sestatus -v  查看Selinux状态                 

                           修改/etc/selinux/config 文件将SELINUX=enforcing改为SELINUX=disabled

三、集群搭建

      经过前面的所有工作,此时准备工作已经完成。

      1.解压hadoop的程序包

       进入/home/hadoop 目录使用 ls命令查看文件:

       

       这时能看到刚才使用FTP上传的hadoop的程序包,然后我们使用解压命令:tar -zxvf <file>

       经过一会解压过程,文件解压完成:

       

       2.配置环境变量

         执行vi /etc/profile命令,并在文件末尾添加以下:

        export HADOOP_HOME=/home/hadoop/hadoop-2.8.2

        export HADOOP_CONF_HOME=$HADOOP_HOME/etc/hadoop

        export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

        

        保存退出后,让修改的环境变量生效:source /etc/profile

     3.修改配置文件

        <1>.修改启动脚本

        vi /home/hadoop/hadoop-2.8.2/etc/hadoop-env.sh

        vi /home/hadoop/hadoop-2.8.2/etc/yarn-env.sh

        在这来那个文件都添加export JAVA_HOME=/home/java/jdk1.8.0_151

        <2>.修改配置信息

               首先配置核心文件:vi  /home/hadoop/hadoop-2.8.2/etc/hadoop/core-site.xml

               <configuration>
               <property>
               <name>fs.defaultFS</name>
               <value>hdfs://192.168.100.10:10000</value>
               </property>
               <property>
               <name>io.file.buffer.size</name>
               <value>131072</value>
               </property>
               <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoop/hadoop-2.8.2/tmp</value>
               <description>Abase for other temporary directories.</description>
               </property>
               <property>
               <name>hadoop.proxyuser.root.hosts</name>
               <value>*</value>
               </property>
               <property>
               <name>hadoop.proxyuser.root.groups</name>
               <value>*</value>
               </property>
               </configuration>

               

               然后配置HDFS文件:vi  /home/hadoop/hadoop-2.8.2/etc/hadoop/hdfs-site.xml

              <configuration>
              <property>
              <name>dfs.namenode.name.dir</name>
              <value>file:/home/hadoop/hadoop-2.8.2/data/hdfs/name</value>
              </property>
              <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/home/hadoop/hadoop-2.8.2/data/hdfs/data</value>
              </property>
              <property>
              <name>dfs.replication</name>
              <value>3</value>
              </property>
              <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>192.168.100.10:20000</value>
              </property>
              <property>
              <name>dfs.webhdfs.enabled</name>
              <value>true</value>
              </property>
              </configuration>

               

               再配置YARN文件:yarn-site.xml

               <configuration>
               <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
               </property>
               <property>
               <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
               </property>
               <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>192.168.100.10:8030</value>
               </property>
               <property>
               <name>yarn.resourcemanager.address</name>
               <value>192.168.100.10:8032</value>
               </property>
               <property>
               <name>yarn.resourcemanager.admin.address</name>
               <value>192.168.100.10:8033</value>
               </property>
               <property>
               <name>yarn.resourcemanager.resource-tracker.address</name>
               <value>192.168.100.10:8035</value>
               </property>
               <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>192.168.100.10:8088</value>
               </property>
               </configuration>

               

               最后修改slaves配置文件:

               192.168.100.10

               192.168.100.20

               192.168.100.30

               

     4.从节点安装

       将刚刚主节点配置的hadoop复制到我们准备好的两个从节点的机器上,如果目录一致则不需要修改环

       境变量,不一样修改对应的环境变量。(本文使用了快捷的方式,直接将主节点的虚拟机镜像手动克隆

       了两份作为从节点,该方法快捷简单,可以参考《VMware Workstation player 克隆多个CentOS实

        》),这样两个从节点也都配置好了。

     5.配置主结点SSH免密登录子结点

       在主节点机器上执行:ssh-keygen -t rsa

       然后回车一直到完成:

       

       将id_rsa.pub重定向到authorized_keys:cat id_rsa.pub>>authorized_keys

        

       同理,两个从节点也都执行此步骤。

       

       

      在主节点机器上将两个从节点的id_rsa.pub追加到authorized_keys

      ssh hdpc02 cat /root/.ssh/id_rsa.pub>>authorized_keys

      ssh hdpc03 cat /root/.ssh/id_rsa.pub>>authorized_keys

      

      出现不能解析域名的问题,我们需要在三个节点的机器上配置下hosts:vi /etc/hosts

      

      然后执行:

      

      在主节点机器将authorized_keys分发到两个从节点的/root/.ssh目录下

      scp authorized_keys hdpc02:/root/.ssh/

      scp authorized_keys hdpc03:/root/.ssh/

       

       此时主节点机器对两个从节点机器的免密登陆配置完成,我们测试下:

       ssh hdpc02

       

       ssh hdpc03

         

四、集群验证

      1.在主节点上格式化

        hadoop namenode -format 或者 hdfs namenode -format

        

       此时已经成功格式化。

      2.在主节点启动集群

        执行start-all.sh

        

        

        

        

       使用hadoop dfsadmin -report查看个节点信息:

       

       

      3.web页面查看:192.168.100.10:50070

        

         4.web查看集群信息:192.168.100.10:8088

           

         5.停止集群

           执行stop-all.sh

           

五、总结

      本文是完整的hadoop集群搭建过程,通过这过hadoop集群的工作方式有了更深的认识,同时也是整体能力的一个考验,为什么这么说,因为搭建过程中遇到很多额外的知识,比如我在搭建过程中遇到很多坑,FTP21号端口被防火墙拦截等问题。最后一步步解决各种问题,成功实践hadoop集群的搭建,在此记录一下,顺道帮助更多学习的同学。

        

本文发表于2017年11月27日 00:37
(c)注:本文转载自https://my.oschina.net/zss1993/blog/1579933,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2342 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1