《大数据导论》读书笔记——Chapter 6

第六章介绍了大数据处理的相关概念。书中提到理解大数据处理的关键是要认识到大数据处理与传统的关系型数据库的集中处理方式不同,是一种分布式并行的处理方式。

1. Parallel Data processing

并行数据处理是指将一个任务分为多个子任务同时执行以缩短处理时间。并行数据处理通常采用一个机器中的多个处理器完成,而不是在多个机器中完成。

2. Distributed Data processing

分布式数据处理与并行数据处理相同,都是基于“divide-and-conquer”(分而治之,各个击破)的原则,不同的是,分布式数据处理通常采用多个机器互联组成的一个集群来实现,如下图:

3. Hadoop

书中定义Hadoop是用于大规模数据存储与处理的开源框架,是一种大数据解决方案的类工业平台,可用于ETL引擎,或处理大量结构化、半结构化、非结构化数据的分析引擎。在数据分析方面,Hadoop采用MapReduce处理框架。下图展示了Hadoop的一些特点:

4. Processing Workloads

在大数据领域,处理工作量被定义为在一定时间内处理的不同类型数据的量。处理工作量通常被分为两种类型:批处理型和事务型。结合书中的描述,总结对比如下:

5. Cluster

与集群为数据存储提供的可扩展性类似,集群同样可以为数据处理提供可扩展性,也就是说,数据处理可以在存储数据的集群中进行。较大的数据集可被划分为多个小的数据集,以并行分布的方式进行处理,这种方式同时支持批处理型与事务型数据处理模式。

在数据处理方面,同样也具有固有冗余及容错特点。

6. Processing in Batch Mode

在批处理模式中,数据在被处理之前先被保存到磁盘中,其处理响应时间从几分钟到几小时不等,这种处理模式主要针对大数据的Volume和Variety两个特点。

1)Batch Processing with MapReduce

MapReduce被广泛应用于批处理框架中,同样基于“divide-and-conquer”原则,采用并行分布式方式,将一个较大的problem划分为多个较小的problems,快速地分别解决。输入到MapReduce的数据不必遵循某一特定模型。MapReduce最初于2000年由Google在其发布的论文中提出。

在传统的数据处理框架中,数据先被从存储节点传输到处理节点,再在处理节点中进行处理,当数据量增大时,这个传输过程会占用较大的网络带宽并造成较大的处理时延。耗费在数据传输过程中的开支甚至会超过数据处理过程本身需要的开支。

采用MapReduce,可将数据处理算法用于数据存储节点中,即在分布式的数据存储节点中进行数据处理,不需要将数据从存储介质传输到数据处理部分。这大大节约了网络带宽并减少了数据处理时间。

2)Map and Reduce Tasks

每个MapReduce job被分为map task和reduce task,每个task有多个stage组成,如图:

A. Map(映射)

将数据文件分片,每一片以key value pair的方式输入到map中,通常,key表示记录的原始位置,value为实际的记录。每一个分片由一个mapper函数处理,通常一个分片包含多个key value pair,而mapper函数作用于分片中的每个key value pair。

输出的key和value可与输入的key和value相同,也可以是输入key和value的一部分,或是用户定义的某个可串行化的对象。对于一个输入的key value pair来说,可能不会对其产生输出的key value pair(filtering),也可能对其产生多个输出的key value pair(demultiplexing)。

B. Combining(合并)

这个stage是optional(可选的),通常,map task和reduce task是在不同的节点中完成的,这就需要将数据由mapper传输到reducer,当数据量较大时,这需要占用较大的网络带宽和较长的传输时间。基于此,combiner用于对mapper的输出进行summarize,以减少占用的网络带宽和传输时间。

Combiner的本质就是在与mapper同一个节点中进行数据处理的reducer,因此可以用reducer function或用户定义的其他function来作为combiner function。

C. Partition(分区)

在有多个reducer时,partition用于将mapper或combiner输出的数据分配给多个reducer。Partition的数目与reducer的数目相同。

每个partition包含多个key value pair,有着相同key的记录被分配到同一个partition中。必要时,需采用定制的partitioning logic,确保各个reducer所处理的workload被平均分配。

D. Shuffle and Sort(洗牌与排序)

这是reduce task的第一个stage,每个partitioner的输出可能包括同一个key的多条记录,洗牌与排序用于对key value pair进行分组和排序确保所有的key被分门别类,同时同一个key的记录被存放在一起。这个分组和排序的方式可以被用户根据其需求的不同来定制。

E. Reduce(归约)

这是reduce task的最后一个stage,reducer可对它的输入进行summarize,也可不做任何改变。与mapper类似,对于一个输入的key value pair来说,可能不会对其产生输出的key value pair(filtering),也可能对其产生多个输出的key value pair(demultiplexing)。

3)Understanding MapReduce Algorithms

上文中提过,MapReduce基于“divide-and-conquer”原则,通常有两种实现方式:

A. Task Parallelism(任务并行方式)

将一个task分为多个sub-task,每个sub-task在一个独立的处理节点或集群中完成,通常每个sub-task采用不同的算法,每个sub-task的数据汇总形成整个task的处理结果。

B. Data Parallelism(数据并行方式)

将一个dataset分为多个sub-dataset,再将这些sub-dataset分配到多个节点中用同样的算法进行处理,每个sub-dataset被处理后的输出汇总形成整个dataset的处理结果。

7. Processing in Realtime Mode

前文中提到:在批处理模式中,数据在被处理之前先被保存到磁盘中,其处理响应时间从几分钟到几小时不等,这种处理模式主要针对大数据的Volume和Variety两个特点。

而在实时处理模式中,数据先在内存中被处理再存储到磁盘中。实时处理的响应时间从1亚秒到1分钟不等,这种处理模式主要针对大数据的Velocity特点。

在大数据处理中,数据以流的形式连续到达或以事件的形式间隔到达,故实时处理也被称作流处理或事件处理。每个流/事件中的数据量通常较小。

另一个与实时处理相关术语是:交互模式,是指事务型BI或相关数据分析通常以交互的方式进行。

大数据处理相关的一个基本原则是Speed,Consistency and Volume(SCV)原则,描述了实时数据处理中的基本约束。

1)Speed Consistency Volume(SCV)

与分布式数据存储中的CAP定理类似,SCV原则用于约束分布式数据处理,断定一个分布式数据处理系统最多只能满足SCV三个要求中的两个。(下图是不是似曾相识?请见之前推文中的CAP定理《大数据导论》读书笔记——Chapter 5

A.Speed

Speed指数据处理的速度。

B. Consistency

这里的一致性Consistency是指结果的准确和精确。

C. Volume

Volume是指所处理的数据量。

如果同时满足S和C,则不可能满足V,因为大数据量会降低S;

如果同时满足C和V,则不可能满足S,因为S的提高会降低V;

如果同时满足V和S,则不可能满足C,因为对大数据量的高速处理会涉及对数据进行sampling,这会降低C。

在大数据处理场景中,V是不允许降低的,所以通常是在S+V和C+V中选择。

2)ESP & CEP

ESP是Event Stream Processing,即事件流处理,CEP是Complex Event Processing,即复杂事件处理,ESP和CEP是实时大数据处理的两种重要的概念。ESP相对简单,通常是简单的查询或简单算法的应用,以较快的速度执行;而CEP相对复杂,支持丰富的分析方法,是ESP的高级方式,处理速度也相对较慢。ESP的输出也可以用作CEP的输入。

3)Realtime Big Data Processing and MapReduce

MapReduce通常不适用于实时大数据处理,文中提到两个原因:一是MapReduce只用于处理完整的dataset,也就是要求所有的输入数据在执行数据处理时是完整的,而在实时数据处理中,数据是连续的或间隔到达的,现有的数据通常是不完整的。另一个原因是MapReduce中的reduce task需要在map task完成后才能执行,mapper输出的数据需要传输到reducer中,这造成了响应时间的增加,不适用于实时数据处理场景。

相关文章:

《大数据导论》读书笔记——Chapter 1

《大数据导论》读书笔记——Chapter 2

Big Data Adoption and Planning Consideration

《大数据导论》读书笔记——Chapter 4

《大数据导论》读书笔记——Chapter 5

慢火烹茶看图说话——铁路&民航

END



长按二维码关注

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容