Hadoop介紹

用途:
數(shù)據(jù)挖掘、日志分析、商務智能、搜索引擎.....

官網(wǎng)介紹:
The Apache? Hadoop? project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

Apache?Hadoop?項目開發(fā)了用于可靠,可擴展的分布式計算的開源軟件。
Apache Hadoop軟件庫是一個框架,允許使用簡單的編程模型跨計算機集群分布式處理大型數(shù)據(jù)集。
它旨在從單個服務器擴展到數(shù)千臺計算機,每臺計算機都提供本地計算和存儲。
庫本身不是依靠硬件來提供高可用性,而是設計用于檢測和處理應用程序層的故障,從而在計算機集群之上提供高可用性服務,每個計算機都可能容易出現(xiàn)故障。

模塊:
Hadoop Common: The common utilities that support the other Hadoop modules.
Hadoop Distributed File System (HDFS?): A distributed file system that provides high-throughput access to application data.
Hadoop YARN: A framework for job scheduling and cluster resource management.
Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
Hadoop Ozone: An object store for Hadoop.

Hadoop Common:支持其他Hadoop模塊的常用實用程序。
Hadoop分布式文件系統(tǒng)(HDFS?):一種分布式文件系統(tǒng),可提供對應用程序數(shù)據(jù)的高吞吐量訪問。
Hadoop YARN:作業(yè)調度和集群資源管理的框架。
Hadoop MapReduce:基于YARN的系統(tǒng),用于并行處理大型數(shù)據(jù)集。
Hadoop Ozone:Hadoop的對象存儲。

Hadoop Common:支持其他Hadoop模塊的常用實用程序。
Hadoop分布式文件系統(tǒng)(HDFS?):一種分布式文件系統(tǒng),可提供對應用程序數(shù)據(jù)的高吞吐量訪問。
Hadoop YARN:作業(yè)調度和集群資源管理的框架。
Hadoop MapReduce:基于YARN的系統(tǒng),用于并行處理大型數(shù)據(jù)集。
Hadoop Ozone:Hadoop的對象存儲。

Hadoop HDFS(Hadoop Distributed File System):
Google GFS(不開源)->HDFS(開源)

Hadoop Yarn
作用:作業(yè)調度、集群資源管理/調度
特點:
1)擴展性
2)容錯性
3)多框架資源統(tǒng)一調度
官方說明:


yarn運行原理

說明:
1)客戶端將作業(yè)提交給Resource Manager
2)Node Manager將節(jié)點的情況匯報給Resource Manager
3)Application Master向Resource Manager申請資源
4)Container向Application Master匯報MapReduce作業(yè)的執(zhí)行情況

The fundamental idea of YARN is to split up the functionalities of resource management and job scheduling/monitoring into separate daemons. The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM). An application is either a single job or a DAG of jobs.
The ResourceManager and the NodeManager form the data-computation framework. The ResourceManager is the ultimate authority that arbitrates resources among all the applications in the system. The NodeManager is the per-machine framework agent who is responsible for containers, monitoring their resource usage (cpu, memory, disk, network) and reporting the same to the ResourceManager/Scheduler.
The per-application ApplicationMaster is, in effect, a framework specific library and is tasked with negotiating resources from the ResourceManager and working with the NodeManager(s) to execute and monitor the tasks.
YARN的基本思想是將資源管理和作業(yè)調度/監(jiān)視的功能分解為單獨的守護進程。
我們的想法是擁有一個全局ResourceManager(RM)和每個應用程序ApplicationMaster(AM)。
應用程序可以是單個作業(yè),也可以是作業(yè)的DAG。
ResourceManager和NodeManager構成了數(shù)據(jù)計算框架。
ResourceManager是在系統(tǒng)中的所有應用程序之間仲裁資源的最終權限。
NodeManager是每臺機器框架代理,負責容器,監(jiān)視其資源使用情況(CPU,內存,磁盤,網(wǎng)絡)并將其報告給ResourceManager / Scheduler。
每個應用程序ApplicationMaster實際上是一個特定于框架的庫,其任務是協(xié)調來自ResourceManager的資源,并與NodeManager一起執(zhí)行和監(jiān)視任務。

YARN架構:
1)ResourceManager: RM
整個集群同一時間提供服務的RM只有一個,負責集群資源的統(tǒng)一管理和調度
處理客戶端的請求: 提交一個作業(yè)、殺死一個作業(yè)
監(jiān)控我們的NM,一旦某個NodeManager掛了,那么該NodeManager上運行的任務需要告訴我們的ApplicationMaster來如何進行處理

  1. NodeManager: NM
    整個集群中有多個,負責自己本身節(jié)點資源管理和使用
    定時向RM匯報本節(jié)點的資源使用情況
    接收并處理來自RM的各種命令:啟動Container
    處理來自AM的命令
    單個節(jié)點的資源管理

  2. ApplicationMaster: AM
    每個應用程序對應一個:MR、Spark,負責應用程序的管理
    為應用程序向RM申請資源(core、memory),分配給內部task
    需要與NM通信:啟動/停止task,task是運行在container里面,AM也是運行在container里面

  3. Container
    封裝了CPU、Memory等資源的一個容器
    是一個任務運行環(huán)境的抽象

  4. Client
    提交作業(yè)
    查詢作業(yè)的運行進度
    殺死作業(yè)

Mapreduce
特點:
1)擴展性
2)容錯性
3)海量數(shù)據(jù)的離線處理


Map-Reduce 流程圖
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容