標籤:
大資料第一天1.Hadoop生態系統1.1 Hadoop v1.0 架構 MapReduce(用於資料計算) HDFS(用於儲存資料)1.2 Hadoop v2.0 架構MapReduce(用於資料計算,Hadoop提供計算架構) 其他非Hadoop計算架構YARN(使用者管理和分配叢集資源,包括軟硬體資源)HDFS(用於儲存資料)1.3 Hive(基於MR的資料倉儲)類似SQL,通常用於離線資料處理(採用MapReduce)可以理解為HQL->MR的語言翻譯器用途:用於日誌、多維度資料分析1.4 Pig(基於MR的資料分析工具)定義了一種資料流語言Pig Latin用途:用於資料離線分析1.5 Mahout(資料採礦庫)提供多種數學統計演算法庫1.6 HBase(分散式資料庫) 由表、列族、行鍵、時間戳記組成1.7 Zookeeper(分布式協作服務)用途:統一命名、狀態同步、叢集管理、配置同步等1.8 Sqoop(資料同步工具)用途:用於Hadoop與傳統資料庫之間的資料傳遞1.9 Flume(日誌收集工具)用途:收集記錄檔構成:agent、collector1.10 Oozie(作業流調度工具)用途:對不同的架構和作業進行統一的管理和調度,提高資源使用率;作業的狀態監控和預警1.11 版本演化Apache版本————原生態 推薦2.x.xCDH版本————打包發行版 推薦CDH5.0.02.HDFS————HadoopDistributed File System2.1 優點1.高容錯性資料自動儲存多個副本副本丟失後,自動回復2.適合批處理移動計算而非資料資料位元置暴露給計算架構3.適合大資料處理4.流式檔案訪問一次性寫入,多次讀取保證資料一致性5.可構建在廉價的機器上通過多副本提高可靠性提供了容錯和恢複機制2.2 缺點1.低延遲資料訪問2.小檔案存取3.並發寫入、檔案隨機修改2.3 架構1.NameNode————儲存中繼資料Active NameNode:啟用NameNode,主Master(只有一個),管理HDFS的名稱空間,資料區塊映射資訊,配置副本策略等Standby NameNode:熱備NameNode,當Active NameNode出現故障時,快速切換為新的Active NameNode2.Secondary NameNode————備份NameNode3.DataNode————隱藏檔資料Slave(可以有多個),儲存實際資料區塊和執行資料區塊的讀/寫4.資料區塊a.檔案被切成固定大小的資料區塊,其中預設大小為64MB,可配置,如果一個檔案大小不足64MB,則單獨存成一個資料區塊b.一般來說每個資料區塊有三個副本2.4 讀寫原理1.讀檔案1.用戶端發送讀檔案請求給NameNode(通過Distributed FileSystem)2.NameNode尋找是否存在該檔案,將查詢相關結果返回給用戶端3.如果檔案存在,將資料區塊儲存資訊返回給用戶端,用戶端根據資料區塊讀取檔案(通過FSData InputStream)4.用戶端關閉讀資料連線(通過FSData InputStream)2.寫檔案1.用戶端發送寫檔案請求給NameNode(通過Distributed FileSystem)2.NameNode尋找是否存在該檔案,將查詢相關結果返回給用戶端3.如果檔案不存在,用戶端將檔案大小發給NameNode並開闢相關資料區塊(通過FSData OutputStream)4.第一個DataNode接收完第一個資料包後(注意不是資料區塊,網路中的資料包),將資料包傳給下個DataNode節點,並開始接收下一個資料包5.第四步如此類推,接收完畢後,將資訊返回給用戶端6.用戶端關閉寫資料連線(通過FSData OutputStream)並將完成資訊回返給NameNode(通過Distributed FileSystem)2.5 訪問方式1.Shell命令 2.Java API3.REST API4.其他2.6 安裝流程1.硬體準備2.軟體準備(推薦CDH)3.將Hadoop安裝包分發到各個節點下4.安裝JDK5.修改/etc/hosts設定檔6.設定SSH免密碼登陸7.修改設定檔(修改後使用scp命令分發到各個節點)8.啟動服務9.驗證 2.7 常用的shell命令dfs命令namenode -format命令dfsadmin命令fsck命令balancer命令
大資料第一天