歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Ubuntu Linux >> Linux下安裝Hadoop完全分布式(Ubuntu12.10),hadoopubuntu12.10

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

日期:2017/3/3 18:05:56   编辑:Ubuntu Linux

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