zoukankan      html  css  js  c++  java
  • 搭建分布式hadoop2.x集群

    前期准备:

         1.我这里用了三台虚拟机,.默认已经配置好静态IP和IP域名映射,它们相互之间可以ping通

             第一台:192.168.174.131      hadoopNumber01.medal.com

             第二台:192.168.174.132      hadoopNumber02.meda.com

             第三台:192.168.174.133      hadoopNumber03.medal.com

         2.虚拟机最好不要连上网,因为我们后面用的是离线方式安装

    一、搭建前的系统设置

        1.将三台虚拟机切换到root用户,禁用IPv6

          命令是:#echo "alias net-pf-10 off"  >> /etc/modprobe.d/dist.conf

              #echo "alias ipv6 off"  >> /etc/modprobe.d/dist.conf

        2.配置普通用户的sudo权限

          命令是:#chmod  u+w   /etc/sudoers

              #vi   /etc/sudoers

                 在第一行加上:用户名  ALL=(root)NOPASSWD:ALL

                因为我是以xunzhang这个用户登录的,所以我加上xunzhang ALL=(root)NOPASSWD:ALL

              #chmod  u-w  /etc/sudoers

        3.关闭防火墙

          命令是:$sudo  service iptables stop

              $sudo  chkconfig  iptables  off

        4.禁用selinux

          命令是:$sudo  vi  /etc/sysconfig/selinux

                修改内容:SELINUX= disabled

        5.卸载JdK

          命令是:$sudo  rpm  -qa | grep  java

              $sudo  rpm  -e  --nodeps  xxx   yyy   zzz

        6.设置文件打开数量和用户最大进程数

          命令是:$sudo  vi  /etc/security/limits.conf

              加上内容:

                  *  soft   nofiles   65535

                  *  hard  nofiles   65535

                  *  soft    nproc    32000

                  *  hard   nproc    32000

        7.设置集群时间同步(ntp),前提是三台虚拟机之间已经配置ssh免密钥登录

          比如说我现在设置第二台和第三台虚拟机与第一台虚拟机进行时间同步

              1>首先检查第一台虚拟机有没有安装ntp软件,命令是:#rpm  -qa | grep ntp,默认系统已经自带了

             2>编辑配置文件ntp.conf

              命令是:#vi  /etc/ntp.conf

               去掉一行注释,将#restrict  192.168.1.0  mask 255.255.255.0  nomodify  notrap,去掉注释,并将其改成192.168.174.0,因为我的ip是在这个网段里面

               加上三行注释,将service  0.centos.pool.ntp.ort和service  1.centos.pool.ntp.org还有service  2.centos.pool.ntp.org这三行注释掉

               去掉两行注释,将末尾的server  127.127.1.0    #local   clock 和 fudge  127.127.1.0  stratum   10 ,这两行的注释去掉

           3>编辑配置文件ntpd

             命令是:#vi  /etc/sysconfig/ntpd

                内容是:# Drop  root  to id  'ntp:ntp'  by  default.

                    SYNC_HWCLOCK =yes

                    OPTIONS="-u  ntp:ntp  -p  /var/run/ntpd.pid   -g"

           4>启动服务

             命令是:#service  ntpd  start

                 #chkconfig   ntpd  on

           5>在另外两台虚拟机上,写脚本,进行时间的同步

              在第二台虚拟机上,切换到root用户,设置同步

                 命令是:crontab  -e

                   加上如下内容:

                      0-59 * * * * /usr/sbin/ntpdate  hadoopNumber01.medal.com

                      注意:在这里每个*号之间有一个空格,后面这个域名是我第一台主机的主机名

              在第三台虚拟机上,也做如第二台虚拟机相同的操作

    二、搭建Hadoop2.x集群

      1、安装JDK

        1>上传JDK安装包,并将其解压到/opt/modules目录下

        2>配置环境变量

          命令是:sodu  /etc/profile

          在最后加上:###########  JAVA_HOME ##################

                export  JAVA_HOME=/opt/modules/jdk1.7.0_79 (jdk所在的路径),我的jdk是在/opt/modules/下

                export  CLASSPATH=/opt/modules/jdk1.7.0_79/lib

                export  PATH=$PATH:$JAVA_HOME/bin

        3>重启配置文件/etc/profile

          命令是:source  /etc/profile

        4>将jdk分发到另外两台虚拟机中

          命令是:cd  /opt/modules/

              scp -r * xunzhang@hadoopNumber02.medal.com:/opt/modules

              scp -r * xunzhang@hadoopNumber03.medal.com:/opt/modules

         最后在另外两台虚拟机上配置java环境变量

      2.安装Hadoop2.x(我这里是2.5.0)

        1>上传hadoop安装包,并将其解压到/opt/modules目录下,进入hadoop-2.5.0-cdh5.3.6目录下,创建临时缓存目录

            命令是:mkdir  -p  tmp/dir

        2>进入hadoop-2.5.0-cdh5.3.6/ect/hadoop目录下,修改配置文件

          第一个:core-site.xml       

            <configuration>
              <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoopNumber01.medal.com:8020</value>
              </property>
              <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/modules/hadoop-2.5.0-cdh5.3.6/tmp/dir</value>
              </property>
            </configuration>

          第二个:hdfs-site.xml        

            <configuration>
              <property>
                <name>dfs.replication</name>
                <value>2</value>
              </property>
              <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoopNumber02.medal.com:50090</value>
              </property>
            </configuration>

         第三个:mapred-site.xml

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

         第四个:yarn -site.xml

            <configuration>
              <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoopNumber01.medal.com</value>
              </property>
              <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
              </property>
            </configuration>

         第五个:slaves

              hadoopNumber01.medal.com
              hadoopNumber02.medal.com
              hadoopNumber03.medal.com

         第六个:hadoop-env.sh

              配置java的路径:export JAVA_HOME=/opt/modules/jdk1.7.0_79

         第七个:mapred-env.sh

              配置java的路径:export JAVA_HOME=/opt/modules/jdk1.7.0_79

      3.将hadoop分发到其它虚拟机上

         前提:三台虚拟机它们的目录结构,和用户名完全一样

         命令:  scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves hadoop-env.sh mapred-env.sh                                                                                                          xunzhang@hadoopNumber02.medal.com:/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/

                scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves hadoop-env.sh mapred-env.sh                                                                                                          xunzhang@hadoopNumber03.medal.com:/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/

      4.格式化hdfs文件系统

        在第一台虚拟机上

          命令:bin/hdfs namenode -format

              如果没有错误,就继续向下执行,有错误就查看日志信息,进行改正

             sbin/start-dfs.sh

             sbin/start-yarn.sh

    至此,集群搭建完成

  • 相关阅读:
    配置java 环境变量(jdk)
    R语言的神奇之一--基于向量
    python绘制图形(Turtle模块)
    右键菜单中新建记事本选项丢失的解决办法
    在windows下远程访问linux服务器
    针对Chrome谷歌等浏览器不再支持showModalDialog的解决方案
    导入一个新项目需要注意的几大问题(jdk1.6+eclipse4.4+tomcat6)
    【漏洞公告】Tomcat信息泄漏和远程代码执行漏洞:CVE-2017-12615/CVE-2017-12616
    python基础篇10-py2和py3编码
    python基础篇03-range/for/break/continue/while/if
  • 原文地址:https://www.cnblogs.com/medal-li/p/7460423.html
Copyright © 2011-2022 走看看