1. 程式人生 > >Hadoop的安裝及執行配置

Hadoop的安裝及執行配置

尚矽谷大資料技術之Hadoop(入門) 講師:大海哥 官網:www.atguigu.com V1.2 一、從Hadoop框架討論大資料生態 1.1 Hadoop是什麼 1)Hadoop是一個由Apache基金會所開發的分散式系統基礎架構 2)主要解決,海量資料的儲存和海量資料的分析計算問題。 3)廣義上來說,HADOOP通常是指一個更廣泛的概念——HADOOP生態圈 大資料叢集.jpg 1.2 Hadoop發展歷史 1.3 Hadoop三大發行版本: Apache、Cloudera、Hortonworks 1)Apache版本最原始(最基礎)的版本,對於入門學習最好。 2)Cloudera在大型網際網路企業中用的較多。 3)Hortonworks文件較好。 1.4 Hadoop的優勢 1)高可靠性:因為Hadoop假設計算元素和儲存會出現故障,因為它維護多個工作資料副本,在出現故障時可以對失敗的節點重新分佈處理。 2)高擴充套件性:在叢集間分配任務資料,可方便的擴充套件數以千計的節點。 3)高效性:在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。 4)高容錯性:自動儲存多份副本資料,並且能夠自動將失敗的任務重新分配。 1.5 Hadoop組成 概述 1)Hadoop HDFS:一個高可靠、高吞吐量的分散式檔案系統。 2)Hadoop MapReduce:一個分散式的離線平行計算框架。 3)Hadoop YARN:作業排程與叢集資源管理的框架。 4)Hadoop Common:支援其他模組的工具模組。 Hadoop組成.pptx 1.5.1 HDFS架構概述 1)NameNode(nn):儲存檔案的元資料,如檔名,檔案目錄結構,檔案屬性(生成時間、副本數、檔案許可權),以及每個檔案的塊列表和塊所在的DataNode等。 2)DataNode(dn):在本地檔案系統儲存檔案塊資料,以及塊資料的校驗和。 3)Secondary NameNode(2nn):用來監控HDFS狀態的輔助後臺程式,每隔一段時間獲取HDFS元資料的快照。 NameNode1.png NameNode2.png DataNode1.png DataNode2.png 1.5.2 YARN架構概述 1)ResourceManager(rm): 處理客戶端請求、啟動/監控ApplicationMaster、監控NodeManager、資源分配與排程; 2)NodeManager(nm): 單個節點上的資源管理、處理來自ResourceManager的命令、處理來自ApplicationMaster的命令; 3)ApplicationMaster: 資料切分、為應用程式申請資源,並分配給內部任務、任務監控與容錯。 4)Container: 對任務執行環境的抽象,封裝了CPU、記憶體等多維資源以及環境變數、啟動命令等任務執行相關的資訊。 1.5.3 MapReduce架構概述 MapReduce將計算過程分為兩個階段:Map和Reduce 1)Map階段並行處理輸入資料 2)Reduce階段對Map結果進行彙總 1.6 大資料技術生態體系 大資料技術生態體系.pptx 1.7 推薦系統框架圖 推薦系統框架圖.pptx 二、Hadoop執行環境搭建 2.1 虛擬機器網路模式設定為NAT 尚矽谷大資料技術之虛擬機器網路模式設定為NAT.doc 2.2 克隆虛擬機器 尚矽谷大資料技術之克隆虛擬機器.doc 2.3 修改為靜態ip 尚矽谷大資料技術之修改為靜態ip.doc 2.4 修改主機名 尚矽谷大資料技術之修改主機名.doc 2.5 關閉防火牆 1)檢視防火牆開機啟動狀態 chkconfig iptables --list 2)關閉防火牆 chkconfig iptables off 2.6 在opt目錄下建立檔案 尚矽谷大資料技術之在opt目錄下建立檔案.doc 2.7 安裝jdk 1)解除安裝現有jdk 2)用filezilla工具將jdk、Hadoop-2.7.2.tar.gz匯入到opt目錄下面的software資料夾下面 3)在linux系統下的opt目錄中檢視軟體包是否匯入成功。 4)解壓jdk到/opt/module目錄下 5)配置jdk環境變數 (1)先獲取jdk路徑: (2)開啟/etc/profile檔案: (3)儲存後退出: :wq (4)讓修改後的檔案生效: (5)重啟(如果java –version可以用就不用重啟): 6)測試jdk安裝成功 2.8 安裝Hadoop 1)進入到Hadoop安裝包路徑下: 2)解壓安裝檔案到/opt/module下面 3)檢視是否解壓成功 4)

配置hadoop中的hadoop-env.sh (1)Linux系統中獲取jdk的安裝路徑(可以使用echo JAVA_HOME,也可以進入到jdk安裝目錄bin下,使用命令 pwd 獲取路徑) (2)修改hadoop-env.sh檔案中JAVA_HOME 路徑 5)將hadoop新增到環境變數 (1)獲取hadoop安裝路徑: (2)開啟/etc/profile檔案: (3)儲存後退出: :wq (4)讓修改後的檔案生效: (5)重啟(如果hadoop命令不能用再重啟): 三、Hadoop執行模式 概述 1)官方網址 (1)官方網站: http://hadoop.apache.org/ (2)各個版本歸檔庫地址
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
(3)hadoop2.7.2版本詳情介紹 http://hadoop.apache.org/docs/r2.7.2/ 2)Hadoop執行模式 (1)本地模式(預設模式): 不需要啟用單獨程序,直接可以執行,測試和開發時使用。 (2)偽分散式模式: 等同於完全分散式,只有一個節點。 (3)完全分散式模式: 多個節點一起執行。 3.1 本地檔案執行Hadoop 案例 3.1.1 官方grep案例 1)建立在hadoop-2.7.2檔案下面建立一個input資料夾 2)將hadoop的xml配置檔案複製到input 3)執行share目錄下的mapreduce程式 4)檢視輸出結果 3.1.2 官方wordcount案例 1)建立在hadoop-2.7.2檔案下面建立一個wcinput資料夾 2)在wcinput檔案下建立一個wc.input檔案 3)編輯wc.input檔案 4)回到hadoop目錄/opt/module/hadoop-2.7.2 5)執行程式: 6)檢視結果: 3.2 偽分散式執行Hadoop 案例 3.2.1 HDFS上執行MapReduce 程式 1)分析: (1)準備1臺客戶機 (2)安裝jdk (3)配置環境變數 (4)安裝hadoop (5)配置環境變數 (6)配置叢集 (7)啟動、測試叢集增、刪、查 (8)在HDFS上執行wordcount案例 2)執行步驟 (1)配置叢集 (a)配置:
hadoop-env.sh
Linux系統中獲取jdk的安裝路徑: 修改JAVA_HOME 路徑: (b)配置:core-site.xml (c)配置:hdfs-site.xml (2)啟動叢集 (a)格式化namenode(第一次啟動時格式化,以後就不要總格式化) (b)啟動namenode (c)啟動datanode (3)檢視叢集 (a)檢視是否啟動成功 (b)檢視產生的log日誌 (c)web端檢視HDFS檔案系統 (4)操作叢集 (a)在hdfs檔案系統上建立一個input資料夾 (b)將測試檔案內容上傳到檔案系統上 (c)檢視上傳的檔案是否正確 (d)在Hdfs上執行mapreduce程式 (e)檢視輸出結果 命令列檢視: 瀏覽器檢視 瀏覽器檢視.png (f)將測試檔案內容下載到本地 (g)刪除輸出結果 3.2.2 YARN上執行MapReduce 程式 1)分析: (1)準備1臺客戶機 (2)安裝jdk (3)配置環境變數 (4)安裝hadoop (5)配置環境變數 (6)配置叢集yarn上執行 (7)啟動、測試叢集增、刪、查 (8)在yarn上執行wordcount案例 2)執行步驟 (1)配置叢集 (a)配置yarn-env.sh 配置一下JAVA_HOME (b)配置yarn-site.xml (c)配置:mapred-env.sh 配置一下JAVA_HOME (d)配置: (對mapred-site.xml.template重新命名為) mapred-site.xml (2)啟動叢集 (a)啟動resourcemanager (b)啟動nodemanager (3)叢集操作 (a)yarn的瀏覽器頁面檢視 http://192.168.1.101:8088/cluster (b)刪除檔案系統上的output檔案 (c)執行mapreduce程式 (d)檢視執行結果 3.2.3 修改本地臨時檔案儲存目錄 1)停止程序 2)修改hadoop.tmp.dir [core-site.xml] 3)格式化NameNode 4)啟動所有程序 5)檢視/opt/module/hadoop-2.7.2/data/tmp這個目錄下的內容。 3.2.4 Hadoop配置檔案說明 Hadoop配置檔案分兩類:預設配置檔案和自定義配置檔案,只有使用者想修改某一預設配置值時,才需要修改自定義配置檔案,更改相應屬性值。 (1)預設配置檔案:存放在hadoop相應的jar包中 (2)自定義配置檔案:存放在$HADOOP_HOME/etc/hadoop 3.3 完全分散式部署Hadoop 分析: 1)準備3臺客戶機(關閉防火牆、靜態ip、主機名稱) 2)安裝jdk 3)配置環境變數 4)安裝hadoop 5)配置環境變數 6)安裝ssh 7)配置叢集 8)啟動測試叢集 3.3.1 虛擬機器準備 詳見2.2-2.3章。 3.3.2 主機名設定 詳見2.4章。 3.3.3 scp 1)scp可以實現伺服器與伺服器之間的資料拷貝。 2)案例實操 (1)將hadoop101中/opt/module和/opt/software檔案拷貝到hadoop102、hadoop103和hadoop104上。 (2)將192.168.1.102伺服器上的檔案拷貝到當前使用者下。 (3)實現兩臺遠端機器之間的檔案傳輸(hadoop103主機檔案拷貝到hadoop104主機上) 3.3.4 SSH無密碼登入 1)配置ssh (1)基本語法 ssh 另一臺電腦的ip地址 (2)ssh連線時出現Host key verification failed的解決方法 問題再現 解決辦法 2)無金鑰配置 (1)進入到我的home目錄 (2)生成公鑰和私鑰: (3)將公鑰拷貝到要免密登入的目標機器上 ssh-copy-id 192.168.1.102 免密登入原理.pptx 3).ssh資料夾下的檔案功能解釋 (1)~/.ssh/known_hosts :記錄ssh訪問過計算機的公鑰(public key) (2)id_rsa :生成的私鑰 (3)id_rsa.pub :生成的公鑰 (4)authorized_keys :存放授權過得無祕登入伺服器公鑰 3.3.5 rsync rsync遠端同步工具,主要用於備份和映象。具有速度快、避免複製相同內容和支援符號連結的優點。 (1)檢視rsync使用說明 (2)基本語法 rsync -rvl pdir/pdir/fname user@hadoop[email protected]host:$pdir 命令 命令引數 要拷貝的檔案路徑/名稱 目的使用者@主機:目的路徑 選項 -r 遞迴 -v 顯示覆制過程 -l 拷貝符號連線 (3)案例實操 把本機/opt/tmp目錄同步到hadoop103伺服器的root使用者下的/opt/tmp目錄 3.3.6 編寫叢集分發指令碼xsync 1)需求分析:迴圈複製檔案到所有節點的相同目錄下。 (1)原始拷貝: rsync –rvl /opt/module [email protected]:/opt/ (2)期望指令碼: xsync 要同步的檔名稱 (3)在/usr/local/bin這個目錄下存放的指令碼,可以在系統任何地方直接執行,需要制定路徑。 2)案例實操: (1)在/usr/local/bin目錄下建立xsync檔案 (2)修改指令碼 xsync 具有執行許可權 (3)呼叫指令碼形式:xsync 檔名稱 3.3.7 編寫分發指令碼xcall 1)需求分析:在所有主機上同時執行相同的命令 xcall +命令 2)具體實現 (1)在/usr/local/bin目錄下建立xcall檔案 (2)修改指令碼 xcall 具有執行許可權 (3)呼叫指令碼形式: xcall 操作命令 3.3.8 基於偽分散式部署叢集 1)叢集部署規劃 2)配置檔案 (1)core-site.xml (2)Hdfs hadoop-env.sh hdfs-site.xml slaves (3)yarn yarn-env.sh yarn-site.xml (4)mapreduce mapred-env.sh mapred-site.xml 3)在叢集上分發以上所有檔案 4)檢視檔案分發情況 3.3.9 叢集啟動及測試 1)啟動叢集 (0)如果叢集是第一次啟動,需要格式化namenode (1)啟動HDFS: (2)啟動yarn 注意:Namenode和ResourceManger如果不是同一臺機器,不能在NameNode上啟動 yarn,應該在ResouceManager所在的機器上啟動yarn。 2)叢集基本測試 (1)上傳檔案到叢集 上傳小檔案 上傳大檔案 (2)上傳檔案後檢視檔案存放在什麼位置 檔案儲存路徑 檢視檔案內容 (3)拼接 (4)下載 3)叢集效能測試 寫海量資料 讀海量資料 3.3.10 Hadoop啟動停止方式 1)各個服務元件逐一啟動 (1)分別啟動hdfs元件 (2)啟動yarn 2)各個模組分開啟動(配置ssh是前提)常用 (1)整體啟動/停止hdfs start-dfs.sh stop-dfs.sh (2)整體啟動/停止yarn start-yarn.sh stop-yarn.sh 3)全部啟動(不建議使用) start-all.sh stop-all.sh 3.3.11 配置叢集常見問題 1)防火牆沒關閉、或者沒有啟動yarn 2)主機名稱配置錯誤 3)ip地址配置錯誤 4)ssh沒有配置好 5)root使用者和atguigu兩個使用者啟動叢集不統一 6)配置檔案修改不細心 7)未編譯原始碼 8)datanode不被namenode識別問題 四、Hadoop編譯原始碼 尚矽谷大資料技術之Hadoop編譯原始碼.doc