hadoop(七) hadoop 集群安装

hadoop 集群安装

      环境准备: 1 vmware ;2 centos7 minial;3 hadoop-2.6.4  ;4 jdk

 新建四台虚拟机,分别命名为mini1,mini2,mini3,mini4

   此处为什么要建四台虚拟机,namenode是管理datanode的,所以把namenode单独放在一个机器上维护,其他三台机器放置datanode和yarn。

  四台虚拟机分别修改为静态ip(可以参考  之前文章hadoop(三) 环境准备

  以为hdfs是运行在jvm上的,要为四台虚拟机分别装上jdk

      1先在mini1上传jdk 到/usr/local/ 目录下

              1.1解压jdk -zxvf jdk-8u171-linux-x64.tar.gz            

              1.2 再把解压后的文件分别复制到其他三台虚拟机上:

                  cd /usr/local/

                    (mini2) scp -r jdk1.8.0_171 (mini2的ip):/usr/local/      选yes 输入你设置的密码

                     (mini3) scp -r jdk1.8.0_171 (mini3的ip):/usr/local/    选yes 输入你设置的密码

                    (mini4) scp -r jdk1.8.0_171 (mini4的ip):/usr/local/    选yes 输入你设置的密码

                 1.3 修改配置文件

                    mini1    vi /etc/profile

                   末尾添加以下内容:

                    export JAVA_HOME=/usr/local/jdk1.8.0_171
                    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
                    export PATH=$PATH:${JAVA_HOME}/bin

                   复制到其他三台虚拟机:

                      cd /etc/profile

                     (mini2) scp -r profile (mini2的ip):/etc/     输入你设置的密码

                     (mini3) scp -r profile (mini3的ip):/etc/     输入你设置的密码

                    (mini4) scp -r profile  (mini4的ip):/etc/     输入你设置的密码

                     在各台机器上让配置生效 source /etc/profile

                     jdk 安装完成

          2修改主机和ip的映射关系

                    vi  /etc/hosts/

                     主机1 ip mini1

                     主机2 ip mini2

                     主机3 ip mini3

                    主机4 ip mini4

          3创建 用户   因为在生产中很少使用root用户进行操作的,我们新建一个用户hadoop

           hadoop(七) hadoop 集群安装

          在连接工具上上图位置选择,将命令发送到全部会话,

           useradd hadoop    # 新建用户hadoop

          passwd hadoop   #为hadoop设置密码

          再两次次输入密码,

          su hadoop 可以切换到hadoop用户

  4     关闭防火墙 

           继续在全部会话的情况下执行关闭防火墙操作:

         直接关闭防火墙:  systemctl stop firewalld.service       

         禁止firewall开机启动 : systemctl disable firewalld.service

        查看防火墙状态:firewall-cmd --state

 5 安装hadoop     

          上传hadoop的文件到一台机器上mini1,

          su hadoop

           mkdir apps

           把hadoop解压到apps

          tar -zxvf hadoop-2.6.4.tar.gz -C apps/


          cd  etc/hadoop/

           hadoop(七) hadoop 集群安装

         修改五个配置文件:hadoop-env.sh ,core-site.xml,hdfs-site.xml,mapred-site.xml.template,yarn-site.xml

         hadoop-env.sh  修改jdk:

          hadoop(七) hadoop 集群安装  

     公共核心参数配置core-site.xml:

             hadoop(七) hadoop 集群安装

             mkdir -p /home/hadoop/hadoop-2.6.4/tmp

                主要配置了命名空间和进程产生数据的目录

     hdfs配置 hdfs-site.xml:

             hadoop(七) hadoop 集群安装

          mapreduce 配置  mapred-site.xml.template

           <!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>   <!--默认是在local上跑,就不形成集群了-->

</property>

        文件重命名:

        mv  mapred-site.xml.template  mapred-site.xml

        yarn 配置yarn-site.xml:

hadoop(七) hadoop 集群安装


6分发到所有机器

   把app复制到其他三台主机上

 scp -r 主机:/home/hadoop/


7格式化  

     启动dfs前要格式化文件系统,因为文件系统是在linux空间上操作的,格式化就相当于在linux文件目录上生成一些文件目录

     把hadoop环境变量添加上

    export HADOOP_HOME=/home/hadoop/apps/hadoop-2.4.1
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

   sudo scp -r /etc/profile  机器2主机:/etc/profile

  sudo scp -r /etc/profile  机器3主机:/etc/profile

  sudo scp -r /etc/profile  机器4主机:/etc/profile

  source /etc/profile

  开始格式化文件系统:

    hadoop namenode -format

hadoop(七) hadoop 集群安装


图中红框内表示格式化成功

但是至此我们还没有看到启动datanode

先尝试启动namenode

cd /home/hadoop/apps/hadoop-2.6.4/sbin/

hadoop-daemon.sh start namenode

hadoop(七) hadoop 集群安装


可以访问namenode节点:

hadoop(七) hadoop 集群安装

去mini2启动一个datanode节点,看namenode和datanode是否已经关联

hadoop-daemon.sh start datanode

hadoop(七) hadoop 集群安装

再次刷新页面:发现datanode跟namenode是有关联的      这里有遇到了一个问题,因为之前在/etc/hosts中配置了自己主机的ip 和主机名 ,datanode启动后并未与namenode关联,应该 把namenode的ip 和绑定映射名也配置在文件中

hadoop(七) hadoop 集群安装

    再启动其余两台datanode,刷新网页查看:

          hadoop(七) hadoop 集群安装

                     hadoop(七) hadoop 集群安装

      现在因为登录机器机器需要输入密码,不便于批量  启动,需要配置ssh免密码登录:

             在namenode机器上生成key,复制到其他datanode节点上

             mini1: ssh-****** (点击三个enter),

             再把key拷贝到各个文件系统:

                ssh-copy-id mini1

                ssh-copy-id mini2

                ssh-copy-id mini3

                ssh-copy-id mini4

                测试是否已经可以免密登录   ssh mini2 ,验证成功后退出 exit 或者 ssh mini1 输入密码                                                   

            要想在集群中使用start-all.sh和stop-all.sh 的话需要配置一下slaves

            cd /home/hadoop/apps/hadoop-2.6.4/etc/hadoop

          vi slaves

         删除localhost(因为不在namenode节点启动datanode节点,单独维护,如果想启动保留localhost)

       添加 mini2 mini3 mini4

 执行 start-all.sh 如下图,在2,3,4,机器上使用jps命令检查datanode是否启动

           hadoop(七) hadoop 集群安装

 至此hadoop的集群安装已经结束。