Hadoop 2.2.0集群搭建

1、环境说明html

一、虚拟机平台:VMware10java

二、Linux版本:ubuntu-12.04.3-desktop-i386node

三、JDK:jdk1.7.0_51web

四、Hadoop版本:2.2.0apache

五、集群节点:3个,分别是hadoopMaster,hadoopSlave1,hadoopSlave2ubuntu

       注明:文中fyzwjd是虚拟机用户名。oracle

2、准备工做app

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

二、在hadoopMaster上安装JDK。webapp

       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文件夹将获得建立。   

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. sudo mv jdk1.7.0_51 /usr/lib/jvm/  

       接下来须要设置环境变量,进入当前用户名的主文件夹,修改.profile文件。注意,该文件是当前用户的配置文件,若是要对使用计算机的全部用户生效,那么须要设置的文件应该是 /etc/profile。             

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. sudo gedit ~/.profile  

        在末尾加上:

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51  

  2. exportJRE_HOME=/usr/lib/jvm/jdk1.7.0_51/jre  

  3. exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  

  4. export PATH=$JAVA_HOME/bin:$PATH  

       而后保存关闭,此时在命令行输入java -version将会仍然显示java没有安装。此时,须要使用source更新下.profile文件:

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ source ~/.profile  

       再次使用java -version命令能够看到以下输出:              

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. fyzwjd@ubuntu :~$ java -version  

  2. java version "1.7.0_51"  

  3. Java(TM) SE Runtime Environment (build1.7.0_51-b18)  

      到此,已经将oracle jdk配置完成。若是以前系统里面已经安装了openjdk,可使用以下方法将默认jdk更改过来:

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ sudo update-alternatives --install/usr/bin/java java /usr/lib/jvm/jdk1.7.0_51/bin/java 300  

     输入sun jdk前的数字就行了

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ sudo update-alternatives --install/usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_51/bin/javac 300  

  2. $ sudo update-alternatives --config java  

  3. $ sudo update-alternatives --config javac  

三、安装SSH

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

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ sudo ps -ef | grep ssh    

       若是只有 ssh-agent  就须要安装openssh-server了。 

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ sudo apt-get install ssh openssh-server    

四、配置SSH公钥

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ ssh-keygen -t rsa -P "yourPassWord"    

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ ssh-keygen -t rsa -P "yourPassWord"   

       ssh-kengen 是用连字符连着的,千万不要分开。另外,密码是你的虚拟机密码,而不是空(固然,若是你的虚拟机密码为空,另当别论)。

五、创建IP和hadoop节点的映射关系

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

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ sudo gedit /etc/hosts  

       在其中加上(ip是节点可配置的ip,本身设定):

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. 192.168.32.***   hadoopMaster  

  2. 192.168.32.***   hadoopSlave1  

  3. 192.168.32.***   hadoop Slave2  

六、克隆两个Ubuntu虚拟机,做为hadoop的其余两个节点

七、分别修改三个Ubuntu虚拟机的名称

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $  sudo gedit /etc/hostname    

       分别将三个虚拟机名称改成:hadoopMaster,hadoopSlave1,hadoopSlave2。
八、修改三个Ubuntu虚拟机的IP
     

 3、配置SSH无密码登录。

       其目的是让hadoopMaster免密码登录hadoopSlave1和hadoopSalve2,步骤以下:

       一、在hadoopMaster上建立受权文件authorized_keys

       进入~/.ssh/目录下执行”ls –a”,发现开始是没有authorized_keys文件的,可使用如下两种方法来生成:

      (1) 将id_rsa.pub追加到authorized_keys受权文件中;

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ cat id_rsa.pub >> authorized_keys    

     (2) 复制id_rsa.pub 为 authorized_keys

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys    

       完成后就能够无密码登陆本机了,能够尝试登录localhost

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ ssh localhost    

       二、将受权文件拷贝到hadoopSlave一、hadoopSlave2相同文件夹下

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ scp authorized_keys fyzwjd@hadoopSlave1:~/.ssh/authorized_keys  

  2. $ scp authorized_keys fyzwjd@hadoopSlave2:~/.ssh/authorized_keys  

            拷贝过程须要密码,拷贝以后就能够免密码登录hadoopSlave1和hadoopSlave2了。

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

      一、在hadoopMaster上安装hadoop

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

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. $ sudo mv hadoop-2.2.0 hadoop    

      配置以前,先在本地文件系统建立如下文件夹:~/hadoop/tmp、~/dfs/data、~/dfs/name。 主要涉及的配置文件有7个:都在/hadoop/etc/hadoop文件夹下,能够用gedit命令对其进行编辑。

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. ~/hadoop/etc/hadoop/hadoop-env.sh  

  2. ~/hadoop/etc/hadoop/yarn-env.sh  

  3. ~/hadoop/etc/hadoop/slaves  

  4. ~/hadoop/etc/hadoop/core-site.xml  

  5. ~/hadoop/etc/hadoop/hdfs-site.xml  

  6. ~/hadoop/etc/hadoop/mapred-site.xml  

  7. ~/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

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. hadoopSalve1  

  2. hadoopSlave2  

        (4)    配置文件4:core-site.xml

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. <configuration>  

  2. <property>  

  3. <name>fs.defaultFS</name>  

  4. <value>hdfs://hadoopMaster:9000</value>  

  5. </property>  

  6. <property>  

  7. <name>io.file.buffer.size</name>  

  8. <value>131072</value>  

  9. </property>  

  10. <property>  

  11. <name>hadoop.tmp.dir</name>  

  12. <value>file:/home/fyzwjd/hadoop/tmp</value>  

  13. <description>Abasefor other temporary directories.</description>  

  14. </property>  

  15. <property>  

  16. <name>hadoop.proxyuser.fyzwjd.hosts</name>  

  17. <value>*</value>  

  18. </property>  

  19. <property>  

  20. <name>hadoop.proxyuser.fyzwjd.groups</name>  

  21. <value>*</value>  

  22. </property>  

  23. </configuration>  

        (5)     配置文件5:hdfs-site.xml

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. <configuration>  

  2. <property>  

  3. <name>dfs.namenode.secondary.http-address</name>  

  4. <value>hadoopMaster:9001</value>  

  5. </property>  

  6. <property>  

  7. <name>dfs.namenode.name.dir</name>  

  8. <value>file:/home/fyzwjd/dfs/name</value>  

  9. </property>  

  10. <property>  

  11. <name>dfs.datanode.data.dir</name>  

  12. <value>file:/home/fyzwjd/dfs/data</value>  

  13. </property>  

  14. <property>  

  15. <name>dfs.replication</name>  

  16. <value>3</value>  

  17. </property>  

  18. <property>  

  19. <name>dfs.webhdfs.enabled</name>  

  20. <value>true</value>  

  21. </property>  

  22. </configuration>  

         (6)    配置文件6:mapred-site.xml

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. <configuration>  

  2. <property>  

  3. <name>mapreduce.framework.name</name>  

  4. <value>yarn</value>  

  5. </property>  

  6. <property>  

  7. <name>mapreduce.jobhistory.address</name>  

  8. <value>hadoopMaster:10020</value>  

  9. </property>  

  10. <property>  

  11. <name>mapreduce.jobhistory.webapp.address</name>  

  12. <value>hadoopMaster:19888</value>  

  13. </property>  

  14. </configuration>  

         (7)    配置文件7:yarn-site.xml

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. <configuration>  

  2. <property>  

  3. <name>yarn.nodemanager.aux-services</name>  

  4. <value>mapreduce_shuffle</value>  

  5. </property>  

  6. <property>  

  7. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  

  8. <value>org.apache.hadoop.mapred.ShuffleHandler</value>  

  9. </property>  

  10. <property>  

  11. <name>yarn.resourcemanager.address</name>  

  12. <value>hadoopMaster:8032</value>  

  13. </property>  

  14. <property>  

  15. <name>yarn.resourcemanager.scheduler.address</name>  

  16. <value>hadoopMaster:8030</value>  

  17. </property>  

  18. <property>  

  19. <name>yarn.resourcemanager.resource-tracker.address</name>  

  20. <value>hadoopMaster:8035</value>  

  21. </property>  

  22. <property>  

  23. <name>yarn.resourcemanager.admin.address</name>  

  24. <value>hadoopMaster:8033</value>  

  25. </property>  

  26. <property>  

  27. <name>yarn.resourcemanager.webapp.address</name>  

  28. <value>hadoopMaster:8088</value>  

  29. </property>  

  30. </configuration>  

     二、将hadoop文件夹拷贝到hadoopSlave1和hadoopSlave2上。

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. scp –r/home/fyzwjd/hadoop fyzwjd@hadoopSlave1:~/  

  2. scp –r/home/fyzwjd/hadoop fyzwjd@hadoopSlave2:~/  

5、验证与运行
    全部的组件启动和中止服务都在/hadoop/sbin目录下,通常启动hadoop前会格式化namenode。具体命令参考以下:

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. 进入安装目录: cd ~/hadoop/  

  2. 格式化namenode:./bin/hdfs namenode –format  

  3. 启动hdfs: ./sbin/start-dfs.sh  

  4. 此时在hadoopMaster上面运行的进程有:namenodesecondarynamenode  

  5. hadoopSlave1和hadoopSlave2上面运行的进程有:datanode  

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. 启动yarn: ./sbin/start-yarn.sh  

  2. 此时在hadoopMaster上面运行的进程有:namenodesecondarynamenoderesourcemanager  

  3. hadoopSlave1和hadoopSlave2上面运行的进程有:datanode nodemanaget  

[plain] view plaincopy在CODE上查看代码片派生到个人代码片

  1. 查看集群状态:./bin/hdfs dfsadmin –report  

  2. 查看文件块组成: ./bin/hdfsfsck/ -files -blocks  

  3. 查看HDFS: http://hadoopMaster:50070  

  4. 查看RM: http:// hadoopMaster:8088 

相关文章
相关标签/搜索