zoukankan      html  css  js  c++  java
  • 使用VMware搭建3台一模一样的Linux虚拟机 搭建hadoop集群环境

    虚拟机名称      机器名               IP                         作用

    namenode     master      192.168.50.131            Namenode、master、jobtracker

    datanode01   slave1       192.168.50.128            Datanode、slave、tasktracker

    datanode02   slave2       192.168.50.129            Datanode、slave、tasktracker

    1.首先,克隆另外两台完全一模一样的虚拟机。

    分别在3台虚拟机上做一下更新:#yum - y update   后面要安装软件时,如果没有更新,在安装所需软件时,可能会说找不到软件,安装不上。注意选择软件源时不要仅仅是一个网站,建议使用 “中国 的服务器”。

    2.修改机器名和hosts文件。

    第一步:修改三台虚拟机的机器名。

    #vim /etc/profile    #source /etc/profile  将namenode的机器名改为master  

    #vim /etc/profile    #source /etc/profile  将datanode01的机器名改为slave1

    #vim /etc/profile    #source /etc/profile  将datanode02的机器名改为slave2

    可以使用hostname来查看。

    第二步:修改三台虚拟机的/etc/hosts文件。

    分别在master、slave1、slave2下修改:

    #vim /etc/profile

      进入文件后原内容删除加入如下内容。

        127.0.0.1 localhost

        192.168.50.131 master master

        192.168.50.128 slave1 slave1

        192.168.50.129 slave2 slave2

    3.在三台虚拟机上分别配置ssh无密码登录。

    在三台虚拟机的/home/hadoop目录下都建立一个.ssh目录(隐藏的)

    a.[root@master ~]#ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    b.[root@master ~]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    验证ssh,#ssh localhost,不需要输入密码即可登录。
    c.//将id_dsa.pub 文件传送到slave1 这台虚拟机上。slave2 同理。
    scp ~/.ssh/id_dsa.pub hadoop@slave1:/home/hadoop/.ssh/
    scp ~/.ssh/id_dsa.pub hadoop@slave2:/home/hadoop/.ssh/

    d.到slave1 这台虚拟机上执行b的操作。slave2 同理。至此master就可以无密码登录到slave1 和slave2 上了。如果想要slave1 和slave2 都可以无密码登录到master上必须在slave1 和slave2上也生成自己的密钥对而且要将密钥对追加到三台机器的authorized_keys文件里。

    至此各个机器上的SSH配置已经完成,可以测试一下了,比如master向slave1发起ssh连接

    4.在三台虚拟机上分别安装jdk1.8.0_45

    a.将jdk-8u45-linux-x64.gz拷到/home/hadoop目录下。

    b.查看当前jdk版本。

        #java -version

      

        这里我卸载了自带的openjdk: 

      [root@master ~]# rpm -qa|grep jdk
      java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
      java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
    
      [root@master ~]# rpm -qa|grep gcj
      java-1.4.2-gcj-compat-1.4.2.0-40jpp.115  
      libgcj-4.1.2-48.el5  
    
      [root@master ~]# yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
      [root@master ~]# yum -y remove java java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
      [root@master ~]# yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115  
      [root@master ~]# yum -y remove libgcj-4.1.2-48.el5  

    c.解压准备的JDK文件,解压路径/opt。

        [root@master ~]# tar -zxvf /home/hadoop/jdk-8u45-linux-x64.gz -C /opt

    d.修改配置系统变量。

        [root@master ~]#vim /etc/profile

        #set jdk

        export JAVA_HOME=/opt/jdk1.8.0_45

        export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib
        export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
      

        保存退出,运行。

        #source /etc/profile

      

    e.运行命令。

    update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_45/bin/java 60
    update-alternatives --config java

      输入新配置的jdk序号:1

      至此,JDK安装完成。

      你可以在slave1和slave2 上执行同样的操作,也可以使用$

      scp –r 将jdk1.8.0_45文件夹拷到其它两台虚拟机上,然后配置环境变量就OK了。

      这里我选择分别在slave1、slave2上面按上面方法配置。

    5.在三台虚拟机上分别安装Hadoop-1.2.1

    第一步:将hadoop-1.2.1-bin.tar.gz文件拷贝到/home/hadoop目录下。
    第二步:解压Hadoop,解压路径/opt。
    [root@master ~]#tar -zxvf /home/hadoop/hadoop-1.2.1-bin.tar.gz -C /opt
    第三步:配置系统变量
    [root@master ~]#vim /etc/profile

        #set hadoop path

        export HADOOP_HOME=/opt/hadoop-1.2.1

        export PATH=$PATH:$HADOOP_HOME/bin

     [root@master ~]#source /etc/profile


    第四步:更改conf目录下的conf/core-site.xml, conf/hdfs-site.xml, conf/mapred-site.xml,conf/hadoop-env.sh,conf/masters,conf/slaves 文件。
    [root@master ~]#vim /opt/hadoop-1.2.1/conf/hadoop-env.sh

        添加内容:

        export JAVA_HOME=/opt/jdk1.8.0_45

        export PATH=$JAVA_HOME/bin:$PATH

        export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar

      保存退出。

      

    [root@master ~]#vim /opt/hadoop-1.2.1/conf/masters

      进入文件加入如下信息:192.168.50.131

      

    [root@master ~]#vim /opt/hadoop-1.2.1/conf/slaves

      进入文件加入如下信息:

      192.168.50.128

      192.168.50.129

      

    [root@master ~]#vim /opt/hadoop-1.2.1/conf/core-site.xml

      进入文件加入如下信息。  

        <configuration>

             <property>

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

                <value>/home/hadoop/tmp</value>

                <description>A base for other temporary directories.</description>

          </property>

          <!-- file system properties -->

          <property>

                <name>fs.default.name</name>

                <value>hdfs://192.168.50.131:9000</value>

          </property>

        </configuration>

    [root@master ~]#vim /opt/hadoop-1.2.1/conf/hdfs-site.xml

      进入文件加入如下信息。(replication默认是3,如果不修改,datanode少于三台就会报错)。

        <configuration>

             <property>

                <name>dfs.replication</name>

                <value>2</value>

             </property>

        </configuration>

    [root@master ~]#vim /opt/hadoop-1.2.1/conf/mapred-site.xml

      进入文件加入如下信息。

        <configuration>

          <property>

              <name>mapred.job.tracker</name>

              <value>192.168.50.131:9001</value>

          </property>

        </configuration>

      第五步:可以使用scp将hadoop-1.2.1拷贝到其它两个虚拟机上。但是这里我选择在slave1和slave2上按上述方法配置。

    至此hadoop安装完成。

    6.运行hadoop自带的例程 wordcount。

    第一步: hadoop namenode –format

    //格式化文件系统,新建一个文件系统。

     

    第二步: start-all.sh

    //启动hadoop的所有守护进程。

     

    第四步: jps   

    //查看进程,master虚拟机上的结果。

      

    slave1 和 slave2 虚拟机上 jps

        

        第四步:(1)先在本地磁盘建立两个输入文件file01 和file02:

     

    第五步: echo “Hello World Bye World” > file01

     echo “Hello Hadoop Goodbye Hadoop” > file02

    //在本地磁盘建立两个输入文件file01 和file02。将Hello World Bye World语句和Hello Hadoop Goodbye Hadoop语句分别加到file01文件和file02 文件里面。

     

    第六步:hdfs 中建立一个input 目录

     

    第七步:file01 和file02 拷贝到hdfs 中。

    第八步: hadoop jar hadoop-1.2.1-examples.jar wordcount input output

    //执行wordcount。

        

    第九步: hadoop fs -cat output/part-r-00000

    //完成之后,查看结果:

    Bye 1

    Goodbye 1

    Hadoop 2

    Hello 2

    World 2

     

     

    至此hadoop运行环境已经全部搭建完成。


  • 相关阅读:
    适配器模式
    快排变种
    美团面试问题
    gulp前端自动化构建工具新手入门篇
    javascript继承
    .call()和.apply()相同点与不同点
    JavaScript原型,原型链 !
    锚点链接和hash属性
    构造函数与普通函数的比较
    JS的作用域和作用域链
  • 原文地址:https://www.cnblogs.com/hxbbing/p/4549227.html
Copyright © 2011-2022 走看看