自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MapReduce的基礎(chǔ)知識

開發(fā) 前端
MapReduce 是一種面向海量數(shù)據(jù)處理的一種指導(dǎo)思想,也是一種用于對大規(guī)模數(shù)據(jù)進(jìn)行分布式計算的編程模型。

1、什么是MapReduce

1. Hadoop MapReduce 是一個 分布式計算框架,用于輕松編寫分布式應(yīng)用程序,這些應(yīng)用程序以可靠,容錯的方式并行處理大型硬件集群(數(shù)千個節(jié)點(diǎn))上的大量數(shù)據(jù)(多TB數(shù)據(jù)集)

2. MapReduce 是一種面向海量數(shù)據(jù)處理的一種指導(dǎo)思想,也是一種用于對大規(guī)模數(shù)據(jù)進(jìn)行分布式計算的編程模型。

2、Map Reduce的優(yōu)缺點(diǎn)

2.1 優(yōu)點(diǎn)

? MapReduce易于編程: 它簡單的實(shí)現(xiàn)一些接口,就可以完成一個分布式程序

? 良好的擴(kuò)展性: 當(dāng)你的計算資源不能得到滿足的時候,你可以通過簡單的增加機(jī)器來擴(kuò)展它的計算能力。

? 高容錯性: MapReduce設(shè)計的初衷就是使程序能夠部署在廉價的PC機(jī)器上,這就要求它具有很高的容錯性。比如其中一臺機(jī)器掛了,它可以把上面的計算任務(wù)轉(zhuǎn)移到另外一個節(jié)點(diǎn)上運(yùn)行,不至于這個任務(wù)運(yùn)行失敗,而且這個過程不需要人工參與,而完全是由Hadoop內(nèi)部完成的。

? 適合PB級以上海量數(shù)據(jù)的離線處理: 可以實(shí)現(xiàn)上千臺服務(wù)器集群并發(fā)工作,提供數(shù)據(jù)處理能力。

2.2 缺點(diǎn)

? 實(shí)時計算性能差: MapReduce 主要應(yīng)用于離線作業(yè),無法做到秒級或者是亞秒級別的數(shù)據(jù)響應(yīng)。

? 不能進(jìn)行流式計算: 流式計算的輸入數(shù)據(jù)是動態(tài)的,而MapReduce的輸入數(shù)據(jù)集是靜態(tài)的,不能動態(tài)變化。這是因?yàn)镸apReduce自身的設(shè)計特點(diǎn)決定了數(shù)據(jù)源必須是靜態(tài)的。

? 不擅長DAG(有向無環(huán)圖)計算 多個應(yīng)用程序存在依賴關(guān)系,后一個應(yīng)用程序的輸入為前一個的輸出。在這種情況下,MapReduce并不是不能做,而是使用后,每個MapReduce作業(yè)的輸出結(jié)果都會寫入到磁盤,會造成大量的磁盤IO,導(dǎo)致性能非常的低下。

3、 MapReduce進(jìn)程

一個完整的MapReduce程序在分布式運(yùn)行時有三類實(shí)例進(jìn)程: (1)MrAppMaster:負(fù)責(zé)整個程序的過程調(diào)度及狀態(tài)協(xié)調(diào)。 (2)MapTask:負(fù)責(zé)Map階段的整個數(shù)據(jù)處理流程。 (3)ReduceTask:負(fù)責(zé)Reduce階段的整個數(shù)據(jù)處理流程。

4、MapReduce編程規(guī)范

? 用戶編寫的程序代碼分成三個部分: Mapper、Reducer和Driver(客戶端提交作業(yè)驅(qū)動程序)

? 用戶自定義的Mapper和Reducer都要繼承各自的父類。

Mapper階段:

1. 用戶自定義的Mapper要繼承自己的父類

2. Mapper的輸入數(shù)據(jù)是KV對的形式(KV的類型可自定義)

3. Mapper中的業(yè)務(wù)邏輯寫在map()方法中

4. Mapper的輸出數(shù)據(jù)是KV對的形式(KV的類型可自定義)

5. map()方法(MapTask進(jìn)程)對每一個<K,V>調(diào)用一次

Reducer階段:

1. 用戶自定義的Reducer要繼承自己的父類

2. Reducer的輸入數(shù)據(jù)類型對應(yīng)Mapper的輸出數(shù)據(jù)類型,也是KV

3. Reducer的業(yè)務(wù)邏輯寫在reduce()方法中

4. ReduceTask進(jìn)程對每一組相同k的<k,v>組調(diào)用一次reduce()方法

Driver: 描述的是提交Job對象需要的各種必要的信息。

MapReduce內(nèi)置了很多默認(rèn)屬性,比如: 排序(key的字典序)、分組(reduce階段key相同的為一組,一組調(diào)用一次reduce處理)等,這些都和數(shù)據(jù)的K有關(guān),所以說kv的類型數(shù)據(jù)確定是及其重要的。

5、常用數(shù)據(jù)序列化類型

Java類型

Hadoop Writable類型

Boolean

BooleanWritable

Byte

ByteWritable

Int

IntWritable

Float

FloatWritable

Long

LongWritable

Double

DoubleWritable

String

Text

Map

MapWritable

Array

ArrayWritable

Null

NullWritable


責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-11-05 15:31:01

UbuntuLinux

2011-11-04 17:26:12

2013-03-27 15:56:05

Android開發(fā)Andriod繪圖

2021-08-18 16:09:39

NestJS

2009-09-23 11:07:11

Hibernate基礎(chǔ)

2010-07-16 10:53:30

Perl基礎(chǔ)

2015-06-01 13:35:43

數(shù)據(jù)中心DCIM

2009-04-17 14:22:40

XPathXML基礎(chǔ)

2011-09-16 10:13:02

Emacs

2011-03-29 14:11:20

Cacti基礎(chǔ)知識

2009-04-10 09:35:00

WCDMA基礎(chǔ)無線網(wǎng)絡(luò)

2010-07-16 11:22:31

Perl

2014-08-20 10:15:45

2022-03-21 13:59:36

云計算云遷移技術(shù)

2011-03-18 09:26:13

Iptables規(guī)則

2011-03-18 09:26:14

iptableslimit

2009-09-18 11:29:23

.NET CLR

2010-04-15 13:19:29

Oracle架構(gòu)

2022-08-08 11:53:02

區(qū)塊鏈CIO

2023-07-14 15:10:17

PythonAsyncIO庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號