zoukankan      html  css  js  c++  java
  • Hadoop 2.2.0集群搭建

    一、环境说明

    1、虚拟机平台:VMware10

    2、Linux版本号:ubuntu-12.04.3-desktop-i386

    3、JDK:jdk1.7.0_51

    4、Hadoop版本号:2.2.0

    5、集群节点:3个,各自是hadoopMaster。hadoopSlave1。hadoopSlave2

           注明:文中fyzwjd是虚拟机username。

    二、准备工作

    1、安装虚拟机平台,并新建一个Ubuntu虚拟机,记为hadoopMaster。

    2、在hadoopMaster上安装JDK。

           Jdk一般有两个版本号:Open JDK、SunJDK,建议使用Sun JDK。安装过程例如以下:

          先去 Oracle下载Linux下的JDK压缩包。http://www.oracle.com/technetwork/java/javase/downloads/index.html,下好后直接解压。

          进入在存放jdk文件夹的当前文件夹,将解压好的jdk1.7.0_51文件夹用最高权限复移动到/usr/lib/jvm文件夹里,此时即使没有jvm文件夹也能够运行例如以下命令。jvm文件夹将得到创建。   

            sudo mv jdk1.7.0_51 /usr/lib/jvm/
           接下来须要环境变量设置,进入当前username的主目录,改动.profile文件。注意。该文件是当前用户的配置文件,假设要对使用计算机的全部用户生效,那么须要设置的文件应该是 /etc/profile。             
            sudo gedit ~/.profile
            在末尾加上:
            export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51
            exportJRE_HOME=/usr/lib/jvm/jdk1.7.0_51/jre
            exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
            export PATH=$JAVA_HOME/bin:$PATH

           然后保存关闭。此时在命令行输入java -version将会仍然显示java没有安装。

    此时。须要使用source更新下.profile文件:

            $ source ~/.profile
           再次使用java -version命令能够看到例如以下输出:              
            fyzwjd@ubuntu:~$ java -version
            java version "1.7.0_51"
            Java(TM) SE Runtime Environment (build1.7.0_51-b18)
          到此,已经将oracle jdk配置完毕。

    假设之前系统里面已经安装了openjdk。能够使用例如以下方法将默认jdk更改过来:

            $ sudo update-alternatives --install/usr/bin/java java /usr/lib/jvm/jdk1.7.0_51/bin/java 300
         输入sun jdk前的数字就好了
            $ sudo update-alternatives --install/usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_51/bin/javac 300
            $ sudo update-alternatives --config java
            $ sudo update-alternatives --config javac
    3、安装SSH

           能够先检查是否已经有ssh,也能够跳过这步,直接安装。

           $ sudo ps -ef | grep ssh  
           假设仅仅有 ssh-agent  就须要安装openssh-server了。 
           $ sudo apt-get install ssh openssh-server  
    4、配置SSH公钥
           $ ssh-keygen -t rsa -P "yourPassWord"  
    
           $ ssh-keygen -t rsa -P "yourPassWord" 
    
           ssh-kengen 是用连字符连着的。千万不要分开。另外,password是你的虚拟机password,而不是空(当然,假设你的虚拟机password为空,另当别论)。

    5、建立IP和hadoop节点的映射关系

           改动etc/hosts文件,在上面增加hadoop节点IP和名称的映射关系。

           $ sudo gedit /etc/hosts
    
           在当中加上(ip是节点可配置的ip。自己设定):
          192.168.32.***   hadoopMaster
          192.168.32.***   hadoopSlave1
          192.168.32.***   hadoop Slave2
    6、克隆两个Ubuntu虚拟机,作为hadoop的其它两个节点

    7、分别改动三个Ubuntu虚拟机的名称

          $  sudo gedit /etc/hostname  
           分别将三个虚拟机名称改为:hadoopMaster,hadoopSlave1,hadoopSlave2。
    8、改动三个Ubuntu虚拟机的IP
         

     三、配置SSH无password登陆。

           其目的是让hadoopMaster免password登陆hadoopSlave1和hadoopSalve2。过程例如以下:

           1、在hadoopMaster上创建授权文件authorized_keys

           进入~/.ssh/文件夹下运行”ls –a”,发现開始是没有authorized_keys文件的,能够使用下面两种方法来生成:

          (1) 将id_rsa.pub追加到authorized_keys授权文件里;

          $ cat id_rsa.pub >> authorized_keys  
         (2) 复制id_rsa.pub 为 authorized_keys
          $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys  
           完毕后就能够无password登录本机了,能够尝试登陆localhost
          $ ssh localhost  
           2、将授权文件复制到hadoopSlave1、hadoopSlave2同样目录下
          $ scp authorized_keys fyzwjd@hadoopSlave1:~/.ssh/authorized_keys
          $ scp authorized_keys fyzwjd@hadoopSlave2:~/.ssh/authorized_keys
                拷贝过程须要password,拷贝之后就能够免password登陆hadoopSlave1和hadoopSlave2了。

     四、安装Hadoop2.2,搭建集群

          1、在hadoopMaster上安装hadoop

           首先到Apache官网上下载hadoop2.2的压缩文件,将其解压到当前用户的根目录中(home/fyzwjd/)。将解压出的目录改名为hadoop。

          $ sudo mv hadoop-2.2.0 hadoop  
    
          配置之前,先在本地文件系统创建下面目录:~/hadoop/tmp、~/dfs/data、~/dfs/name。

    主要涉及的配置文件有7个:都在/hadoop/etc/hadoop目录下,能够用gedit命令对其进行编辑。


    ~/hadoop/etc/hadoop/hadoop-env.sh
    ~/hadoop/etc/hadoop/yarn-env.sh
    ~/hadoop/etc/hadoop/slaves
    ~/hadoop/etc/hadoop/core-site.xml
    ~/hadoop/etc/hadoop/hdfs-site.xml
    ~/hadoop/etc/hadoop/mapred-site.xml
    ~/hadoop/etc/hadoop/yarn-site.xml
            (1)     配置文件1:hadoop-env.sh
                  改动JAVA_HOME值(export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51)
            (2)     配置文件2:yarn-env.sh
                  改动JAVA_HOME值(export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51)
            (3)     配置文件3:slaves
    hadoopSalve1
    hadoopSlave2
    
            (4)    配置文件4:core-site.xml
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoopMaster:9000</value>
    </property>
    <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/fyzwjd/hadoop/tmp</value>
    <description>Abasefor other temporary directories.</description>
    </property>
    <property>
    <name>hadoop.proxyuser.fyzwjd.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.fyzwjd.groups</name>
    <value>*</value>
    </property>
    </configuration>
    
            (5)     配置文件5:hdfs-site.xml
    <configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoopMaster:9001</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/fyzwjd/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/fyzwjd/dfs/data</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    </configuration>
    
             (6)    配置文件6:mapred-site.xml
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoopMaster:10020</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoopMaster:19888</value>
    </property>
    </configuration>
    
             (7)    配置文件7: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.address</name>
    <value>hadoopMaster:8032</value>
    </property>
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hadoopMaster:8030</value>
    </property>
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hadoopMaster:8035</value>
    </property>
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hadoopMaster:8033</value>
    </property>
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoopMaster:8088</value>
    </property>
    </configuration>
    
         2、将hadoop目录复制到hadoopSlave1和hadoopSlave2上。
    scp –r/home/fyzwjd/hadoop fyzwjd@hadoopSlave1:~/
    scp –r/home/fyzwjd/hadoop fyzwjd@hadoopSlave2:~/
    五、验证与执行
        全部的组件启动和停止服务都在/hadoop/sbin文件夹下。一般启动hadoop前会格式化namenode。详细命令參考例如以下:
    进入安装文件夹: cd ~/hadoop/
    格式化namenode:./bin/hdfs namenode –format
    启动hdfs: ./sbin/start-dfs.sh
    此时在hadoopMaster上面执行的进程有:namenodesecondarynamenode
    hadoopSlave1和hadoopSlave2上面执行的进程有:datanode
    启动yarn: ./sbin/start-yarn.sh
    此时在hadoopMaster上面执行的进程有:namenodesecondarynamenoderesourcemanager
    hadoopSlave1和hadoopSlave2上面执行的进程有:datanode nodemanaget
    
    查看集群状态:./bin/hdfs dfsadmin –report
    查看文件块组成: ./bin/hdfsfsck/ -files -blocks
    查看HDFS: http://hadoopMaster:50070
    查看RM: http:// hadoopMaster:8088





  • 相关阅读:
    集合框架(三)
    集合框架(二)
    集合框架(一)
    第九章 持有你的对象
    UML类图
    用a标签设置锚点
    设计原则
    第八章 接口与内部类
    装配Bean
    第33条:用EnumMap代替序数索引
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6824780.html
Copyright © 2011-2022 走看看