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

来源:http://www.cnblogs.com/hgc-bky/archive/2016/11/23/6094301.html
-Advertisement-
Play Games

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


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文件。
  • 註意代碼中的粗斜體為具體安裝目錄,要和實際目錄相同。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • vmstat是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,可對操作系統的虛擬記憶體、進程、CPU活動進行監控。他是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。vmstat 工具提供了一種低開銷的系統性能觀察方式。因為 vmstat 本身就是低開銷工具 ...
  • 常用的linux 命令 1查看Linux版本 1.1 查看linux的內核版本 uname -r 或者uname -a 1.2 查看linux的具體版本號 cat /proc/version 1.3 查看Linux系統的主機名 hostname 2 啟動或關閉FTP服務 service vsftp ...
  • Shell十三問 轉載於網路,稍加整理。 <! more (一) 為何叫做Shell? 我們知道電腦的運作不能離開硬體,但使用者卻無法直接對硬體作驅動, 硬體的驅動只能透過一個稱為"操作系統(Operating System)"的軟體來控管 ,事實上, 我們每天所談的linux , 嚴格來說只是一 ...
  • [失敗] ...
  • 系統環境:Centos7 第一步安裝NodeJS 建議採用穩定編譯過的版本,source code稍麻煩,編譯過的直接可用,安裝超級簡單 下載完成後安裝成功 第二步:安裝PM2 正常情況我看到的是簡書上的 http://www.jianshu.com/p/fdc12d82b661 我的centos就 ...
  • Linux系統裁剪筆記 1.什麼裁剪? 本篇文章的主要目的是讓筆者和讀者更深的認識Linux系統的運作方式,大致內容就是把Linux拆開自己一個個組件來組裝,然後完成一個微型的Linux系統.下麵,讓我們來實現吧..寫的不好的地方請指教. 2.原理 大家都知道,操作系統的啟動流程是(主要是Linux ...
  • 最近的想要用android手機藍牙共用wifi網路給ubuntu16.04系統用,查了好多資料,發現網上很少有有用的。自己實踐後分享如下。 第一步:手機與電腦配對: 該步驟比較簡單,網上也可以找到相關的資料,大致步驟記錄如下(因手機不同略有不同): (1)打開手機藍牙,設置為對周圍設備可見(因手機不 ...
  • 前兩天入手一個Macbook air,在裝軟體過程中摸索了一些基本操作,現就常用操作進行總結, 1關於觸控板: 按下(不區分左右) =滑鼠左鍵 control+按下 =滑鼠右鍵 雙指上下拖 滾屏 雙指左右拖 瀏覽器前進/後退 三指左右拖 切換程式 三指上下拖 打開程式縮略圖/恢復 四指抓 打開所有程 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...