使用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運行環境已經全部搭建完成。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM