歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Ubuntu Linux

Linux下安裝Hadoop完全分布式(Ubuntu12.10),hadoopubuntu12.10

Linux下安裝Hadoop完全分布式(Ubuntu12.10),hadoopubuntu12.10

Linux下安裝Hadoop完全分布式(Ubuntu12.10),hadoopubuntu12.10


Hadoop的安裝非常簡單,可以在官網上下載到最近的幾個版本,最好使用穩定版。本例在3台機器集群安裝。hadoop版本如下:

工具/原料

  • hadoop-0.20.2.tar.gz
  • Ubuntu12.10

安裝步驟:

  1. 1

    安裝ubuntu 

    Ubuntu12.10交換空間4G(內存2G)。具體安裝過程不贅述。

    用戶名統一為:hadoop;

    組群:hadoop;

    機器名:namenode(主節點),datanode1(從節點1),datanode2(從節點2)。

  2. 2

    在Ubuntu下創建hadoop用戶組和用戶(也可在安裝系統時通過界面配置)

    1. 創建hadoop用戶組;

         $ sudo addgroup hadoop  

         記下這裡為 hadoop 用戶設置的密碼,後面使用 hadoop 用戶登錄時需要用到。

    2. 創建hadoop用戶;

         $ sudo adduser -ingroup hadoop hadoop  

    3. 給hadoop用戶添加權限,打開/etc/sudoers文件;

         $ sudo gedit /etc/sudoers 

    4. 給hadoop用戶賦予root用戶同樣的權限。

    在root  ALL=(ALL:ALL)   ALL下添加如下內容:

     hadoop ALL=(ALL:ALL)   ALL    

    Linux下安裝Hadoop完全分布式(Ubuntu12.10)
  3. 3

    在Ubuntu下安裝JDK

    配置環境變量:

    $ sudo gedit /etc/profile

    在文件的末尾加上如下內容,保存並關閉文件

    # for java

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0

    export JRE_HOME=${JAVA_HOME}/jre

    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

    export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

     

    使設置生效:到此部JDK的配置就都完成了

    $ source /etc/profile

    為保證正確性,進行簡單的測試

    $ java -version

    輸出:

    java version "1.8.0"

    Java(TM) SE Runtime Environment (build 1.8.0)

    Java HotSpot(TM) Server VM 

     

    修改默認JDK:

        sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 300

        sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 300 

        sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0/bin/jar 300 

    以下兩句可選(最好執行):

    sudo update-alternatives --config java 

    sudo update-alternatives --config javac  

    Linux下安裝Hadoop完全分布式(Ubuntu12.10) Linux下安裝Hadoop完全分布式(Ubuntu12.10)
  4. 4

    修改機器名(這步驟可以省略)

    每當ubuntu安裝成功時機器名都默認為:ubuntu ,但為了以後集群中能夠容易分辨各台服務器,需要給每台機器取個不同的名字。機器名由 /etc/hostname文件決定。

    1. 打開/etc/hostname文件;

          $  sudo gedit /etc/hostname  

    2. 將/etc/hostname文件中的ubuntu改為對應機器,如主節點中,修改為"namenode"。 重啟生效

     

    3.修改/etc/hosts文件

         $  sudo gedit /etc/hosts

    改為如下所示,並且將每台機器的IP設置為固定IP

    Linux下安裝Hadoop完全分布式(Ubuntu12.10)
  5. 5

    安裝ssh服務  

    這裡的ssh不是指三大框架:spring,struts,hibernate,而是一種遠程登錄協議。

    ubuntu一般只是默認安裝了 ssh-agent, 可以用如下命令查看:

    $ sudo ps -ef | grep ssh  

    如果只有 ssh-agent 就需要安裝openssh-server了。

    $ sudo apt-get install ssh openssh-server  

  6. 6

    建立ssh無密碼登錄本機

    首先要轉換成hadoop用戶,執行以下命令:

        $ sudo su - hadoop  

     

    ssh生成密鑰有rsa和dsa兩種生成方式,默認情況下采用rsa方式。

    1. 創建ssh-key,,這裡我們采用rsa方式;

        $ ssh-keygen -t rsa -P ""  

    請注意, ssh-kengen 是用連字符連著的,千萬不要分開。問題如下:

    按照您的步驟執行的過程中我在ssh -keygen -t rsa -P ""這邊發生的點小狀況輸入之後終端機顯示Bad escape character "ygen"(紅字部分就是問題所在,他將 ssh-keygen 分開了。)

    (注:回車後會在~/.ssh/下生成兩個文件:id_rsa和id_rsa.pub這兩個文件是成對出現的)

     

    2.  創建授權文件authorized_keys

         進入~/.ssh/目錄下,發現開始是沒有authorized_keys文件的,可以使用以下兩種方法:

      (1) 將id_rsa.pub追加到authorized_keys授權文件中;

          $ cd ~/.ssh  

         $ cat id_rsa.pub >> authorized_keys 

      (2) 復制 id_rsa.pub 為 authorized_keys

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

    3. 登錄localhost;

          $ ssh localhost  

    4. 執行退出命令(exit或CTRL+D);  

    Linux下安裝Hadoop完全分布式(Ubuntu12.10)
  7. 7

    安裝hadoop

     

     

    1. 假設hadoop-0.20.2.tar.gz在桌面,將它復制到安裝目錄/usr/local/下;

        $ sudo cp hadoop-0.20.2.tar.gz /usr/local/  

    2. 解壓hadoop-0.20.2.tar.gz;

        $ cd /usr/local  

        $ sudo tar -zxvf hadoop-0.20.2.tar.gz  

    3. 將解壓出的文件夾改名為hadoop;

        $ sudo mv hadoop-0.20.2 hadoop  

    4. 將該hadoop文件夾的屬主用戶設為hadoop,

        $ sudo chown -R hadoop:hadoop hadoop  

    5. 打開hadoop/conf/hadoop-env.sh文件;

        $ sudo gedit hadoop/conf/hadoop-env.sh  

    6. 配置conf/hadoop-env.sh(找到#exportJAVA_HOME=...,去掉#,然後加上本機jdk的路徑);

        export JAVA_HOME=/usr/lib/jvm/jdk1.8.0  

    7. 打開conf/core-site.xml文件;

       $ sudo gedit hadoop/conf/core-site.xml  

     

    <configuration>

         <property>

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

            <value>hdfs://namenode:9000</value>

         </property>

    </configuration>

    8. 打開conf/mapred-site.xml文件;

        $ sudo gedit hadoop/conf/mapred-site.xml  

     

    <configuration>

         <property>

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

            <value>namenode:9001</value>

         </property>

    </configuration>

     

    9. 打開conf/hdfs-site.xml文件;

        $ sudo gedit hadoop/conf/hdfs-site.xml  

     

    <configuration>

         <property>

             <name>dfs.name.dir</name>

             <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>

         </property>

         <property>

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

             <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>

         </property>

         <property>

             <name>dfs.replication</name>

             <value>3</value>

         </property>

    </configuration>

    注意:datalog1,datalog2,data1,data2文件夾最好事先建好。

    10. 打開conf/masters文件,添加作為secondarynamenode的主機名.

    11. 打開conf/slaves文件,添加作為slave的主機名,一行一個。

    作者設置如下:

    Linux下安裝Hadoop完全分布式(Ubuntu12.10) Linux下安裝Hadoop完全分布式(Ubuntu12.10) Linux下安裝Hadoop完全分布式(Ubuntu12.10)
  8. 8

    運行hadoop

     

    1. 進入hadoop目錄下,格式化hdfs文件系統,初次運行hadoop時一定要有該操作, 

        $ cd /usr/local/hadoop/  

        $ bin/hadoop namenode -format  

    2. 啟動bin/start-all.sh

    進入bin目錄下, $ ./start-all.sh         關閉:同目錄下./stop-all.sh

    3. 檢測hadoop是否啟動成功

        $ jps  

    4. Web查看

    http://localhost:50030/ - 一個jobtracker的web訪問接口,為的是方便用戶查看相關信息。 

    類似的還有: 

    http://localhost:50070/ – web UI of theNameNode daemon 

    http://localhost:50030/ – web UI of theJobTracker daemon 

    http://localhost:50060/ – web UI of theTaskTracker daemon  

     

    Linux下安裝Hadoop完全分布式(Ubuntu12.10) Linux下安裝Hadoop完全分布式(Ubuntu12.10) END

注意事項

 
  • 集群中所有機器的登錄用戶名和所屬組都要相同,本文用戶名為hadoop,組群也為Hadoop。
  • 每台機器的IP設置為固定IP,主機名-ip需要在每一台機器裡修改對應的hosts文件。
  • 注意代碼中的粗斜體為具體安裝目錄,要和實際目錄相同。

http://xxxxxx/Linuxjc/1174848.html TechArticle

Copyright © Linux教程網 All Rights Reserved