Hadoop知識點總結!!! 阿新 • • 發佈:2018-11-10 沒什麼好解釋的,純粹的乾貨分享。。。 Hadoop: 1.Hadoop的四大模組: 1.common:基礎模組,用於支撐其他模組 2.mapruedce:分散式計算框架 3.YARN:分散式資源排程框架 4.HDFS:分散式檔案系統 2.埠: 1.HDFS:8082 webUI埠:8088 2.YARN:8032 webUI埠:50070 3.zookeeper:2181 4.JobHistoryServer:19888 3.Hadoop2.x分散式搭建的詳細過程: 一:linux相關: 1.ip,閘道器,DNS 2.hostname,本地域名解析對映(hosts) 3.關閉防火牆,selinux 4.ssh免金鑰登陸 5.ntp時間同步 6.jdk配置 二:Hadoop相關: 1.上傳,解壓 2.修改配置 -》修改-evn.sh hadoop、yarn、mapred -》core-site.xml hdfs入口,臨時檔案目錄 -》hdfs-site.xml 副本數、訪問許可權、secondary節點 -》mapred-site.xml 執行的框架、JobHistoryServer節點 -》yarn-site.xml resourceManager的地址、mapreduce執行方式、日誌聚集 -》slaves 所有從節點地址 三:分發檔案 四:格式化檔案系統 五:啟動: 先啟動hdfs後啟動yarn 4.Hadoop2.x中HDFS與YARN的四個程序的功能及啟動方式 4個程序的功能: NameNode的功能: -》處理客戶端發過來的請求 -》管理從節點 -》管理元資料 DataNode的功能: 負責資料運輸、負責讀寫資料的功能 ResourceManager的功能: 負責叢集資源的管理和任務排程、處理使用者的請求、管理從節點 NodeManager的功能: 負責處理所有任務 4個程序的啟動: sbin/hadoop-daemon.sh start namenode sbin/hadoop-daemon.sh start datenode sbin/yarn-daemon.sh start resourcemanager sbin/yarn-daemon.sh start nodemanager 5.jar包提交執行在yarn上的執行流程 1.使用者提交jar包,向resourcemanager請求提交任務 2.resourcemanager接受任務,並隨機選擇一臺nodemanager啟動appmaster 3.appmaster向resourcemanager請求資源 4.resourcemanager分配資源,並將資源分配資訊返回給appmaster 5.appmaster聯絡nodemanager啟動相關Task ps:Task:maptask的個數由資料塊的個數決定; ruducetask的個數可以自己設定 每個task都會呼叫各自的方法:map方法的呼叫次數由資料的行數決定; reduce方法的呼叫次數由key的型別個數決定。 6.執行的task時刻向appmaster彙報進度 7.reduce task將執行結果返回給appmaster 8.appmaster將結果返回給resourcemanager,並登出自己 6.請描述MapReduce執行的五大過程,包含詳細的shuffle過程 input 1.讀取HDFS上檔案資料 2.將資料轉成keyvalue形式,key是行偏移量,value是行內容 map 接收input的輸出 根據分片的個數,啟動相應task 每個map task對每條keyvalue呼叫map方法進行處理 shuffle ->Map shuffle 將map輸出的資料輸入環形緩衝區內 在緩衝區進行分割槽,對每個分割槽進行排序 達到閾值80%開始溢寫到磁碟,變成小檔案 溢寫結束,將所有小檔案進行合併,並且對每個分割槽進行排序 map task結束,通知appMaster ->reduce shuffle app master通知reduce,reduce去每個map task拉取屬於自己分割槽的資料。 對屬於自己分割槽的資料進行合併,並排序 對相同key進行分組 reduce 讀取shuffle的輸出,對每一種key,呼叫reduce方法進行處理 output 將reduce的輸出寫入到hdfs中 7.請寫出自定義資料型別時,需要繼承哪些類,以及實現的方法及其功能 ps:編寫MapReduce模板 Driver: -》不繼承也不實現 -》繼承和實現 -官方推薦 extends Configured implements Tool -》不繼承只實現 - 企業用的最多 implements Tool 實現Writable/WritableComparable介面 定義屬性,並生產對應get、set方法。獲取值和賦值 write:序列化 readFiled:反序列化 compareTo:比較 toString:轉換為String型別物件 無參和有參構造方法:初始化構建 hashCode和equals:比較驗證 8.元資料:(描述資料的資料) 元資料在哪裡?????: 儲存在記憶體中,也儲存在磁碟(存放的檔案:fsimage) 由誰來同步元資料: secondaryNameNode功能: 輔助Namnode同步本地元資料 fsimage(old) + edits = fsimage(new)