阅读更多

0顶
1踩

开源软件

原创新闻 Hadoop之大数据平台基础(2)

2017-06-08 15:45 by 见习记者 flycw 评论(0) 有3992人浏览

Hadoop之大数据平台基础(2)

一、Map/Reduce工作机制分析-数据的流向分析

在MspReduce算法核心框架中,待处理的数据最开始放在HDFS,然后会背诵网Map的各个节点,输出为中间键值对输出。然后呢,如何将中间数据交给Reduce呢,每个worker节点的分配规则呢?

 

Shuffle:

在Map计算完成后,将会让数据通过一个名为Shuffle的过程在最终交给Reduce处理。这个Shuffle就是我们处理Hadoop数据处理核心,他能够将分散在不同的map阶段worker节点上的数据进行洗牌并按照一定规则合并,组成新的格式后分配给Map节点worker节点处理数据。

steps:

1.map task procedure:imput split  - map - buffer in momory

2.buffer in memory: partition, sort and split to disk,partition是作为中间输出键值对的每个区间下,全局默认的所有节点的数据处理规则无序,每个区间内有序。通过该阶段,将分配处理各个区间,保存处理后的哥哥区间块到disk中。

3.将处理好的各个区间中的数据进行合并merge,sort,统一交给Reduce,输出。

 

Shuffle过程植入于Map端和Reduce端两边

1. Map端工作:

a. 分区:根据键值对的Key值,选定键值对所属的Partition区间(与Reduce节点对应)。

b. 排序:对各分区内的键值对根据键进行排序。

c. 分割:Map端的结果先是存放在缓冲区内的,如果超出,自然就要执行分割的处理,将一部分数据发往硬盘。

d. 合并:对于要发送往同一个节点的键值对,我们需要对它进行合并。(这一步很可能针对硬盘,对于海量数据处理,缓冲区溢出是很正常的事情)

2. Reduce端工作:

a. Copy:以HTTP的方式从指定的Map端拉数据,注意是Map端的本地磁盘。

b. 合并:一个Reduce节点有可能从多个Map节点获取数据,获取到之后

c. 排序:对各分区内的键值对根据键进行排序。和Map端操作一样。

 

 

二、错误处理机制

对于Hadoop集群,但各节点的错误,不会影响到整理,各个分布式的任务仍然通过JodTracker跟踪分配处理。但是对于致命性的错误,一旦JobTracker主程序错误,Hadoop集群就更无法使用,只能从新启动。

TaskTracker节点错误:

JonTracker和TaskTracker的心跳机制:TaskTracker必须保证在1分钟之内向JobTracker回报当前节点的进度,

1.如果超时仍然没有收到汇报,JobTracker仍然没有接收到汇报,就会将TaskTracker从等待调度队列集合移除。

2.当收到报告但是是失败的,就会就爱你个这个TaskTracker移动到等待队列尾部重新排队,但是如果连续四次汇报失败,同样会移除。

 

 

 

 

0
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • c#高级程序员面试题(附部分参考答案).pdf,这是一份不错的文件

    c#高级程序员面试题(附部分参考答案).pdf,这是一份不错的文件

  • 2023最新高级难度C#面试题,包含答案。刷题必备!记录一下。

    装箱和拆箱是C#中的一个重要概念,它涉及到值类型和引用类型之间的转换。装箱是指将值类型的数据转换为其对应的引用类型的过程。在这个过程中,会在托管堆上分配一块内存用来存储值类型的实例,并返回一个指向这块内存的新对象引用。// 这里发生了装箱操作拆箱则是将引用类型的数据还原为其原始值类型的过程。在这个过程中,会检查对象引用是否真的指向一个有效且正确的值类型实例,然后将其内容复制到新的值类型变量中去。// 这里发生了拆箱操作装箱和拆箱会对程序的性能产生一定的影响。

  • C#面试题整理(带答案)

    答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。

  • 面试题

    1) 描述线程与进程的区别? 线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内部

  • C#面试题及详细解析

    这种设计导致yield不可重入,只要其迭代过一次,就无法重新迭代了,需要注意。5、骚操作方面,stackful可以轻松实现完全一致的递归/异常处理等,没有任何影响,但stackless需要编译器作者高超的技艺才能实现(如C#的作者),注意最初的C#5.0在try-catch块中是不能写await的。2、首先是解析阶段的表达式树,C#编译器在编译时,它会将这些语句以表达式树的形式保存起来,在求值时,C#编译器会将所有的表达式树翻译成求值方法(如在数据库中执行SQL语句)。

  • ⭐️c#面试题及答案整理

    在C#中,委托(Delegate)是一种类型安全的函数指针,它允许您将方法作为参数传递给其他方法,或将方法赋值给变量,并在稍后调用它。委托定义了方法的签名,包括返回类型和参数列表。

  • 个人C#面试题系列-更新至2022/09

    C#面试题系列,单独记录一下毕业后这两年所经历的一些关于C#的面试。就当梳理一下知识。

  • 十套C#面试题(几乎包含所有C#知识,含asp.net)

    第一套:英文题目(可以用中文回答)1)  Please describe the different between XML,XSD,XSL through their definition.2)  Do you know the Persistent Object in J2EE;if yes ,please describe some mechanism of it.3)  P

  • C#经典面试题100道

    1. .NET和C#有什么区别 答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。 C#是一种编程语言,可以基于.NET平台的应用。 2.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。 答:pub...

  • C#常用面试题14道

    它将现实世界中的事物抽象成对象,通过定义对象的属性(数据)和行为(方法),以及对象之间的关系和交互,实现软件系统的模块化、可维护性和可扩展性。通过使用泛型,我们可以在编译时指定具体的类型,并在运行时获得类型安全和高效的代码执行。在C#中,属性(Property)是一种特殊的成员,用于封装类的字段,并提供对其读取和写入的访问方式。属性允许我们在访问类的字段时使用类似于字段的语法,同时可以在属性的 getter 和 setter 中添加逻辑以控制对字段的访问。选择适当的集合类型取决于数据结构和操作的要求。

  • c#面试题及答案整理

    C#面试题

  • 50 个最佳 C# 面试问题和答案之1~20

    C# 是最流行的编程语言之一,也是 .NET 开发的首选语言。如果您是一名 .NET 开发人员,参加 .NET 面试,您将被问到有关 C# 编程的问题。以下是针对初学者和专业 C# 开发人员的 50 个最佳 C# 面试问题和答案之1~20。

  • C#高级开发 线上面试题20240711

    Mutex和lock有什么不同?编写一个程序:两个线程交替打印0-100的奇偶数? C#中的Mutex和lock都可以用于同步线程,但它们有C#中的依赖注入依赖注入(Dependency Injection,简称DI)是面向对象编程中的一种设计原则,它属于控制反转(Inversion of Control,简称IoC)的一种实现方式。依赖注入的主要目的是减少代码之间的耦合度,提高模块的可维护性和可测试性。在C#中,依赖注入允许类的依赖项在运行时被外部注入,而不是在类内部通过直接实例化或其他方式硬编码。

  • C#常见面试题目以及答案

    C#视觉检测软件工程师面试题以及答案

  • C# 高级面试题

    很少会有人可以答对,如果你遇到一个来面试的人实在嚣张,就可以用本文的题去打击 本文内容就看着玩,请不要在严肃的面试中问题这样的题目 如果面试到一个人可以回答出下面的题目也不能证明他的技术很强,只能说明他了解很多C#相关,或者他看过我的博客 循环下面的代码 请在下面的代码的注释处填写代码,让函数 Foo 里面的代码输出 static void Main(string[] ar...

  • 10套C#面试题(几乎包含所有C#知识,含asp.net)

    10套C#面试题(几乎包含所有C#知识,含asp.net)2008-06-24 19:14第一套:英文题目(可以用中文回答)1) Please describe the different between XML,XSD,XSL through their definition.2) Do you know the Persistent

  • Net(C#)高级程序员面试题

    .net高级程序员面试题

  • C#高级编程面试考题完整版

    C#高级编程面试考题

  • C# 经典面试题

    1. .NET和C#有什么区别 答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。 C#是一种编程语言,可以基于.NET平台的应用。 2.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。斐波那契数列 答:http://blog.csdn.net/taoerit/article/details/53

Global site tag (gtag.js) - Google Analytics