Hadoop多節點集群安裝配置

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

目錄: 1、集群部署介紹 1.1 Hadoop簡介 1.2 環境說明 1.3 環境配置 1.4 所需軟體 2、SSH無密碼驗證配置 2.1 SSH基本原理和用法 2.2 配置Master無密碼登錄所有Salve 3、Java環境安裝 3.1 安裝JDK 3.2 配置環境變數 3.3 驗證安裝成功 3 ...


目錄:

1、集群部署介紹

1.1 Hadoop簡介

1.2 環境說明

1.3 環境配置

1.4 所需軟體

2、SSH無密碼驗證配置

2.1 SSH基本原理和用法

2.2 配置Master無密碼登錄所有Salve

3、Java環境安裝

3.1 安裝JDK

3.2 配置環境變數

3.3 驗證安裝成功

3.4 安裝剩餘機器

4、Hadoop集群安裝

4.1 安裝hadoop

4.2 配置hadoop

4.3 啟動及驗證

4.4 網頁查看集群

5、常見問題FAQ

 

5.1 關於 Warning: $HADOOP_HOME is deprecated.

5.2 解決"no datanode to stop"問題

5.3 Slave伺服器中datanode啟動後又自動關閉

5.4 從本地往hdfs文件系統上傳文件

5.5 安全模式導致的錯誤

1、集群部署介紹

1.1 Hadoop簡介

Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式文件系統HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)為核心的Hadoop為用戶提供了系統底層細節透明的分散式基礎架構。

對於Hadoop的集群來講,可以分成兩大類角色:MasterSalve。一個HDFS集群是由一個NameNode和若幹個DataNode組 成的。其中NameNode作為主伺服器,管理文件系統的命名空間和客戶端對文件系統的訪問操作;集群中的DataNode管理存儲的數據。 MapReduce框架是由一個單獨運行在主節點上的JobTracker和運行在每個從節點的TaskTracker共同組成的。主節點負責調度構成一 個作業的所有任 務,這些任務分佈在不同的從節點上。主節點監控它們的執行情況,並且重新執行之前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交 時,JobTracker接收到提交作業和配置信息之後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。

從上面的介紹可以看出,HDFS和MapReduce共同組成了Hadoop分散式系統體繫結構的核心。HDFS在集群上實現分散式文件系統,MapReduce在集群上實現了分散式計算和任務處理。HDFS在MapReduce任務處理過程中提供了文件操作和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工作,並收集結果,二者相互作用,完成了Hadoop分散式集群的主要任務。

1.2 環境說明

我的環境是在虛擬機中配置的,Hadoop集群中包括4個節點:1個Master,2個Salve,節點之間區域網連接,可以相互ping通,節點IP地址分佈如下:


虛擬機系統


機器名稱



IP地址



Ubuntu 13.04



Master.Hadoop



192.168.1.141



Ubuntu 9.11



Salve1.Hadoop



192.168.1.142



Fedora 17



Salve2.Hadoop



192.168.1.137



Master機器主要配置NameNode和JobTracker的角色,負責總管分散式數據和分解任務的執行;3個 Salve機器配置DataNode 和TaskTracker的角色,負責分散式數據存儲以及任務的執行。其實應該還應該有1個Master機器,用來作為備用,以防止Master伺服器宕機,還有一個備用馬上啟用。後續經驗積累一定階段後補上一臺備用Master機器(可通過配置文件修改備用機器數)。

    註意:由於hadoop要求所有機器上hadoop的部署目錄結構要求相同(因為在啟動時按與主節點相同的目錄啟動其它任務節點),並且都有一個相同的用戶名賬戶。參考各種文檔上說的是所有機器都建立一個hadoop用戶,使用這個賬戶來實現無密碼認證。這裡為了方便,分別在三台機器上都重新建立一個hadoop用戶。

 

1.3 環境配置

Hadoop集群要按照1.2小節表格所示進行配置,下麵介紹如何修改機器名稱和配置hosts文件,以方便使用。

註意:我的虛擬機都採用NAT方式連接網路,IP地址是自動分配的,所以這裡就使用自動分配的IP地址而未特地修改為某些IP地址。

(1)修改當前機器名稱

假定我們發現我們的機器的主機名不是我們想要的。

1)在Ubuntu下修改機器名稱

修改文件/etc/hostname里的值即可,修改成功後用hostname命令查看當前主機名是否設置成功。

       另外為了能正確解析主機名,最好也修改/etc/hosts文件里對應的主機名
      

2)在Fedora下修改機器名稱

通過對"/etc/sysconfig/network"文件修改其中"HOSTNAME"後面的值,改成我們規定的名稱。

命令:vi /etc/sysconfig/network,修改如下:
   
        

    同樣為了能正確解析主機名,最好也修改/etc/hosts文件里對應的主機名。

(2)配置hosts文件(必須)

"/etc/hosts"這個文件是用來配置主機將用的DNS伺服器信息,是記載LAN內接續的各主機的對應[HostName  IP]用的。當用戶在進行網路連接時,首先查找該文件,尋找對應主機名對應的IP地址。

我們要測試兩台機器之間知否連通,一般用"ping 機器的IP",如果想用"ping 機器的主機名"發現找不見該名稱的機器(這也就是為什麼在修改主機名的同時最好修改該文件中對應的主機名),解決的辦法就是修改"/etc/hosts"這個文件,通過把LAN內的各主機的IP地址和HostName的一一對應寫入這個文件的時候,就可以解決問題。

例如:機器為"Master.Hadoop:192.168.1.141"對機器為"Salve1.Hadoop:192.168.1.142"用命令"ping"記性連接測試。測試結果如下:
   

從 上圖中的值,直接對IP地址進行測試,能夠ping通,但是對主機名進行測試,發現沒有ping通,提示"unknown host——未知主機",這時查看"Master.Hadoop"的"/etc/hosts"文件內容會發現裡面沒 有"192.168.1.142  Slave1.Hadoop"內容,故而本機器是無法對機器的主機名為"Slave1.Hadoop" 解析。

在進行Hadoop集群配置中,需要在"/etc/hosts"文件中添加集群中所有機器的IP與主機名,這樣Master與所有的Slave機器之間不僅可以通過IP進行通信,而且還可以通過主機名進行通信。所以在所有的機器上的"/etc/hosts"文件中都要添加如下內容:

192.168.1.141 Master.Hadoop

192.168.1.142 Slave1.Hadoop

192.168.1.137 Slave2.Hadoop

命令:vi /etc/hosts,添加結果如下:

現在我們在進行對機器為"Slave1.Hadoop"的主機名進行ping通測試,看是否能測試成功。

從上圖中我們已經能用主機名進行ping通了,說明我們剛纔添加的內容,在區域網內能進行DNS解析了,那麼現在剩下的事兒就是在其餘的Slave機器上進行相同的配置。然後進行測試。

1.4 所需軟體

(1)JDK軟體

    下載地址:http://www.oracle.com/technetwork/java/javase/index.html

    JDK版本:jdk-7u25-linux-i586.tar.gz

(2)Hadoop軟體

    下載地址:http://hadoop.apache.org/common/releases.html

    Hadoop版本:hadoop-1.1.2.tar.gz


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

-Advertisement-
Play Games
更多相關文章
  • 從iOS 8起,就有了App Extension。Extension的種類至今也擴充到了19種,應用也很廣泛,值得重點關註起來。 Extension幾乎可以看做一個內嵌的獨立App,擁有獨立的BundleID、證書、概要配置文件、進程空間、沙盒等等。只是需要打包在App內,類似於寄生在宿主App內, ...
  • 前言: 項目中必定用到的數據填寫需求。比如修改用戶名的文字編輯對話框,修改生日的日期選擇對話框等等。現總結一下,方便以後使用。 註: 先寫實現過程,想要學習的同學可以看看,不需要的同學可以直接拉到最下麵複製代碼使用。 一、文字編輯對話框 看下效果圖(仿今日頭條): 包括: 一個標題TextView ...
  • ParagraphString - 段落樣式的簡易處理 效果 源碼 https://github.com/YouXianMing/UI-Component-Collection 中的 ParagraphString ...
  • 作為一個MacBook的使用者,無不感受到蘋果對於系統和硬體的完美匹配. 蘋果電腦不適合玩游戲,所以我只用它開發iOS使用.電腦里除了Xcode和常用辦公軟體與通訊軟體以外,我沒有裝其他的任何大應用.更沒有存儲各種片... 但是使用一年以後,更新軟體的時候提示我存儲空間不足... 於是操作 左上角蘋 ...
  • 通常情況下,我們的程式需要從伺服器讀取圖片,但如果需要不止一次讀取某一張圖片的話,就需要做本地緩存了,這樣既為用戶省一點流量,又能顯得你的APP很快。 假如你已經知道了某一張圖片的地址,那麼第一件事就是要把這張圖片下載下來;當然如果是一次性讀取的話,可以直接把圖片地址給Image控制項或者給Bitma ...
  • 前面的話 數據類型是指列、存儲過程參數、表達式和局部變數的數據特征,它決定了數據的存儲格式,代表了不同的信息類型。mysql中的數據類型主要包括整型、浮點型、日期時間型和字元型。下麵來詳細介紹mysql中的數據類型 整型 浮點型 日期時間 字元型 ...
  • [1]登錄退出 [2]語句規範 [3]常用命令 [4]資料庫操作 ...
  • 一、在Linux下重啟Oracle資料庫及監聽器: 方法1: 用root以ssh登錄到linux,打開終端輸入以下命令: cd $ORACLE_HOME #進入到oracle的安裝目錄 dbstart #重啟伺服器 lsnrctl start #重啟監聽器 cd $ORACLE_HOME #進入到o ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...