91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop有什么用

發布時間:2021-12-08 10:37:48 來源:億速云 閱讀:125 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關Hadoop有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、Hadoop簡介

A.什么是Hadoop

1.Hadoop是一個開源分布式計算平臺,以HDFS(Hadoop Distributed Filesystem,Hadoop分布式文件系統)和MapReduce為核心,為用戶提供了系統底層細節透明的分布式基礎架構

2.使用HDFS分布式存儲方式,提高了讀寫速度,擴大了存儲容量,采用MapReduce來整合分布式文件系統上的數據,可以保證分析和處理數據的高效,還采用存儲冗余數據的方式保證了數據的安全性;HDFS的高容錯特性,使得Hadoop可以部署在低廉的計算機集群中,同時不限于某個操作系統

3.Hadoop優勢:高可靠性、高擴展性、高效性、高容錯性

B.Hadoop項目及其結構

1.Core/Common,是為Hadoop其他子項目提供支持的常用工具,包括FileSystem、RPC和串行化庫

2.Avro,用于數據序列化的系統

3.MapReduce,是一種編程模型,用于大規模數據集(大于1TB)的并行去處

4.HDFS,分布式文件系統

5.Chukwa,開源的數據收集系統,用于監控和分析大型分布式系統的數據

6.Hive,是一個建立在Hadoop基礎之上的數據倉庫,提供了一些用于數據整理、特殊查詢和分析存儲在Hadoop文件中的數據集工具

7.HBase,分布式的、面向列的開源數據庫

8.Pig,是一個對大型數據集進行分析和評估的平臺

C.Hadoop的體系結構

1.HDFS采用了主從(Master/Slave)結構模型,一個集群由一個NameNode和若干個DataNode組成

  • NameNode:主服務器,管理文件系統的命名空間和客戶端對文件的訪問操作,執行文件系統的命名空間操作,也負責數據塊到具體DataNode的映射

  • DataNode:管理存儲的數據,文件被分成若干個數據塊,這些個數據塊存放在一組DataNode上,負責處理文件系統客戶端的文件讀寫請求

2.MapReduce是由一個單獨運行在主節點上的JobTracker和運行在每個集群從節點上的TaskTracker共同組成

D.Hadoop與分布式開發

1.Hadoop是分布式軟件系統中文件系統這一層的軟件,實現了分布式文件系統和部分分布式數據庫的功能

2.MapReduce編輯模型的原理是:利用一個輸入的key/value對集合來產生一個輸出的key/value對集合,三個主要函數:map、reduce、main

E.Hadoop計算模型——MapReduce

1.一個MapReduce作業(job)通常會把輸入的數據集切分為若干個獨立的數據塊,由map任務(task)以完全并行 的方式處理它們

F.Hadoop的數據管理

1.HDFS三個重要的組件:NameNode、DataNode、Client,Client是需要獲取分布式文件系統文件的應用程序

2.HBase在分布式集群上主要領先由HRegion、HMaster、HClient組成的體系結構從整體上管理數據

3.Hive是建立在Hadoop上的數據倉庫基礎架構,它提供了一系列的工具,用來進行數據提取、轉化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制

二、Hadoop的安裝與配置

1.hadoop-3.0.0-alpha3,默認locahost:9870和localhost:50090

三、Hadoop應用案例分析

1.大規模的數據處理經常分為三個不同的任務:數據收集、數據準備和數據表示

  • 數據準備,通常被認為是提取、轉換和加載(Extract Transform Load, ETL)數據的階段,或者認為這個階段是數據工廠

  • 數據表示階段一般指的是數據倉庫,數據倉庫存儲了客戶所需要的產品,客戶會根據需要選取合適的產品

四、MapReduce計算模型

A.MapReduce計算模型

1.在Hadoop中,用于執行MapReduce任務的機器角色:一個是JobTracker,用于調度工作,一個集群中只有一臺;另一個是TaskTracker,用于執行工作;

2.JobTracker調度任務給TaskTracker,TaskTracker執行任務時,會返回進度報告。JobTracker則會記錄進度的進行狀況,如果某個TaskTracker上的任務執行失敗,那么JobTracker會把這個任務分配給另一臺TaskTracker,直到任務執行完成

B.Hadoop流

1.Hadoop流提供了一個API,允許用戶使用任何腳本語言編寫map函數或reduce函數,使用UNIX標準流作為程序與Hadoop之間的接口

2.Hadoop Pipes提供了一個在Hadoop上運行C++程序的方法,pipes使用的是Sockets

五、開發MapReduce應用程序

1.Hadoop自帶的網絡用戶界面:http://xxx:50030

2.性能調優:

  • 輸入的文件盡量采用大文件,避免使用小文件

  • 考慮壓縮文件

3.MapReduce工作流

  • Mapper通常用來處理輸入格式轉化、投影(選擇相關的字段)、過濾(去掉那些不感興趣的記錄)等

  • Hadoop工作流調度器(HWS)作為一個服務器,允許客戶端提交一個工作流給調度器

六、MapReduce引用案例

七、MapReduce工作機制

A.MapReduce作業的執行流程

1.MapReduce任務的執行總流程:代碼編寫->作業配置->作業提交->Map任務的分配和執行->處理中間結果->Reduce任務的分配和執行->作業完成,每個任務又包括輸入準備->任務執行->輸出結果

2.4個獨立實體:

  • 客戶端(client):編寫MapReduce代碼,配置作業,提交作業

  • JobTracker:初始化作業,分配作業,與TaskTracker通信,協調整個作業的執行

  • TaskTracker:保持JobTracker的通信,在分配 的數據片段上執行Map或Reduce任務,可以包含多個TaskTracker

  • HDFS:保存作業的數據、配置信息,保存作業結果

B.錯誤處理機制

1.在集群中,任何時候都只有唯一一個JobTracker,所以JobTracker故障就是單點故障,一般是創建多個備用JobTracker節點

2.TaskTracker故障很正常,會由MapReduce處理

C.作業調度機制

1.Hadoop默認FIFO調度器,還提供了支持多用戶服務和集群資源公平共享的調度器,即公平調度器(Fair Scheduler Guide)和容量調度器(Capacity Scheduler Guide)

2.shuffle過程包含在map和reduce兩端中,map端是對map的結果進行劃分、排序和分割,然后將屬于同一個劃分的輸出合并在一起;reduce端又會將各個map送來的屬于同一個劃分 的輸出進行合并,然后對合并結果進行排序,最后交給reduce處理

D.任務執行

1.推測式執行,指當作業的所有任務都開始運行時,JobTracker會統計所有任務的平均進度,如果某個任務所在的TaskTracker節點由于配置比較低或CPU負載過高,導致任務執行的速度比總體任務的平均速度慢,此時JobTracker就會啟動一個新的備份任務,原有任務和新任務哪個先執行完就把另一個kill掉,缺點是對于代碼缺陷導致的問題,備份并不能解決

2.任務JVM重用、跳過壞記錄

八、Hadoop I/O操作

1.Hadoop采用CRC-32(Cyclic Redundancy Check,循環冗余校驗,其中的32指生成 的校驗和是32位的)的方式檢查數據完整性

2.Hadoop使用RPC來實現進程間通信,使用Writables序列化機制

九、HDFS詳解

A.HDFS簡介

1.特點:處理超大文件;流式訪問數據;運行于廉價的商用機器集群上;

2.局限性:不適合低延遲數據訪問;無法高效存儲大量小文件;不支持多用戶寫入及任意修改文件

B.HDFS體系結構

1.HDFS分布式文件系統中的文件也被劃分成塊進行存儲,它是文件存儲處理的單元,默認塊為64MB

2.NameNode就是Master管理集群中的執行調度,DataNode就是Worker具體任務的執行節點

3.一個HDFS集群是由一個NameNode和一定數目的DataNodes組成的,一個文件其實被分成了一個或多個數據塊,這些塊存儲在一組DataNode上

十、Hadoop的管理

1.監控工具:Metrics、Ganglia

2.備份工具:distcp

3.Hadoop管理命令:dfsadmin,獲取HDFS的狀態信息;fsck,檢測文件塊

十一、Hive詳解

1.Hive是一個基于Hadoop文件系統上的數據倉庫架構,它為數據倉庫提供了許多功能:數據ETL(抽取、轉換和加載)工具、數據存儲管理和大型數據集的查詢與分析能力,同時Hive還定義了類SQL語言——Hive QL

2.Hive中主要包含四類數據模型:表(Table)、外部表(External Table)、分區(Partition)、桶(Bucket)

十二、HBase詳解

A.HBase簡介

1.特點:向下提供了存儲,向上提供了運算

B.HBase的基本操作

1.單機模式可以直接運行,分布式模式需要Hadoop

C.HBase體系結構

1.HBase的服務器體系結構遵從簡單的主從服務器架構,由HRegion服務器群和HBase Master服務器構成。HBase Master服務器負責管理所有的HRegion服務器,而HBase中所有的服務器都是通過ZooKeeper來進行協調,并處理HBase服務器運行期間可能遇到的錯誤的。HBase Master Server本身并不存儲HBase中的任何數據,HBase邏輯上的表可能會被劃分成多個HRegion,然后存儲到HRegion Server群中。HBase Master Server中存儲的是從數據到HRegion Server的映射

D.HBase數據模型

1.HBase是一個類似Bigtable的分布式數據庫,它是一個稀疏的長期存儲的(存在硬盤上)、多維度的、排序的映射表。這張表的索引是行關鍵字、列關鍵字和時間戳。HBase中的數據都是字符串,沒有類型

2.列名字的格式是“<family>:<qualifier>”,都是由字符串組成的,每一張表有一個一列族(family)集合,這個集合是固定不變的,只能通過改變表結構來改變;寫操作是鎖行的;所有數據庫更新都有一個時間戳標記,每個更新都是一個新的版本,HBase會保留一定數量的版本

E.HBase與RDBMS

1.只有簡單的字符串類型

2.只有很簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有復雜的表間關系

3.是基于列存儲的,每個列族都由幾個文件保存

4.更新操作會保留舊版本,不是傳統關系數據庫里的替換修改

5.能夠輕易地增加或減少硬件數量,對錯誤兼容性高

6.適應海量存儲和互聯網應用的需要,利用廉價的硬件設備組建數據倉庫,原本就是作為一個搜索引擎的一部分開發出來的

十三、Mahout詳解

A.Mahout簡介

1.Apache Mahout的主要目標是建立可伸縮的機器學習算法,這種可伸縮性是針對大規模的數據集而言的

B.Mahout中的聚類和分類

1.Mahout中三種向量:稠密向量(DenseVector)、隨機訪問向量(RandomAccessSparseVector)和序列訪問向量(SequentialAccessSparseVector)

十四、Pig詳解

A.Pig簡介

1.Pig包括用來描述數據分析程序的高級程序語言,以及對這些程序進行評估的基礎結構。突出的特點就是它的結構經得起大量并行 任務,使得它能夠對大規模數據集進行處理

2.Pig使用Pig Latin語言,類似SQL,偏重查詢

十五、Zookeeper詳解

A.ZooKeeper簡介

1.ZooKeeper是一個為分布式應用所設計的開源協調服務,可以為用戶提供同步、配置管理、分組和命名等服務

2.設計目標:

  • 簡單化:允許分布式的進程通過共享體系的命名空間來進行協調,這個命名空間組織與標準的文件系統非常相似,它是由一些數據寄存器組成的

  • 健壯性:組成ZooKeeper服務的服務器必須互相知道其他服務器的存在

  • 有序性:可以為每一次更新操作賦予一個版本號,并且此版本號是全局有序的,不存在重復的情況

  • 速度優勢:在上千臺機器節點上運行

B.ZooKeeper的Leader選舉

1.ZooKeeper需要在所有的服務(可以理解為服務器)中選舉出一個Leader,然后讓這個Leader來負責管理集群,其他為Follower。當Leader出現故障時,ZooKeeper要能夠快速地在Follower中選舉出下一個Leader,這就是ZooKeeper的Leader機制

C.ZooKeeper鎖服務

1.在ZooKeeper中,完全分布的鎖是全局同步的,也就是說,在同一時刻,不會有兩個不同的客戶端認為他們持有了相同的鎖

E.典型應用場景(網上找的)

1.統一命名服務

2.配置管理:配置信息完全可以交給 Zookeeper 來管理,將配置信息保存在 Zookeeper 的某個目錄節點中,然后將所有需要修改的應用機器監控配置信息的狀態,一旦配置信息發生變化,每臺應用機器就會收到 Zookeeper 的通知,然后從 Zookeeper 獲取新的配置信息應用到系統中

3.集群管理:實現方式都是在 Zookeeper 上創建一個 EPHEMERAL 類型的目錄節點,然后每個 Server 在它們創建目錄節點的父目錄節點上調用 getChildren(String path, boolean watch) 方法并設置 watch 為 true,由于是 EPHEMERAL 目錄節點,當創建它的 Server 死去,這個目錄節點也隨之被刪除,所以 Children 將會變化,這時 getChildren上的 Watch 將會被調用,所以其它 Server 就知道已經有某臺 Server 死去了。新增 Server 也是同樣的原理

4.共享鎖

5.隊列管理

十六、Avro詳解

A.Avro簡介

1.Avro是一個數據序列化的系統,可以將數據結構或對象轉化成便于存儲或傳輸的格式,特別是設計之初它可以用來支持數據密集型應用,適合于大規模數據的存儲和交換

2.Avro模式是用JSON定義的,提供與Thrift和Protocol Buffers等系統相似的功能

十七、Chukwa詳解

A.Chukwa簡介

1.Chukwa能通過擴展處理大量的客戶端請求,并且能匯聚多路客戶端的數據流,采用的是流水式數據處理方式和模塊化結構的收集系統,在每一個模塊中有一個簡單規范的接口

B.Chukwa架構

1.有三個主要組成部分:

客戶端(Agent):使內部進程通信協議能夠兼容處理本地的日志文件

收集器(Collector)和分離器(Demux):利用了Collectors策略

HICC(Hadoop Infrastructure Care Center):數據可視化頁面

十八、Hadoop的常用插件與開發

1.Hadoop Studio

2.Hadoop Eclipse

3.Hadoop Streaming:幫助用戶創建和運行一類特殊的MapReduce作業,這些作業由一些可執行文件或腳本文件充當mapper或reducer,也就是允許使用非Java語言

4.Hadoop Libhdfs:是一個基于C編程接口的為Hadoop分布式文件系統開發的JNI,提供了一個C語言接口以結合管理DFS文件和文件系統

關于“Hadoop有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栖霞市| 仁布县| 浦城县| 平利县| 广丰县| 福安市| 南江县| 巴林左旗| 台中县| 南昌市| 福海县| 黄山市| 比如县| 堆龙德庆县| 江口县| 五峰| 都安| 朝阳区| 安新县| 同江市| 甘孜县| 商城县| 普宁市| 临武县| 荣昌县| 梁山县| 兰州市| 宁安市| 政和县| 吉木乃县| 贵定县| 茂名市| 合川市| 文水县| 克山县| 平乐县| 阜城县| 鸡东县| 留坝县| 阿城市| 广东省|