大数据运算系统一

 目录

一、MapReduce/Hadoop

1.编程模型

2.系统实现

3.典型算法

二、Microsoft Dryad

(本文为陈世敏老师课程笔记)

----------------------------------------

一、MapReduce/Hadoop

Google 2014年推出。

1.编程模型

整体思路:程序员串行写程序 ,系统分布式并行完成,但要有很多限制,牺牲程序的功能。

数据模型:<key,value> 记录之间无序。

MapReduce执行过程:

+Map(ik, iv) ->{<mk, mv>} 输入是一个记录,输出0~多个

+shuffle 系统完成,等于group by mk <mk,{mv} list>

+ Reduce(mk, {mv}) ->{<ok, ov>}

word count 为例子:

2.系统实现

2.1 架构组成

JobTracker:控制协调作业的运行
  TaskTracker:执行Map Task 或Reduce Task

包括Map函数、Reduce函数(Jar)、配置信息(例如,几个Mappers,几个Reducers)、输入路径、输出路径等

2.2 处理过程

(1)Split代表一个HDFS数据块,Split的个数可能多于Mapper的个数,每个split对应一个Map Task,每个Mapper需要处理多个Task.JobTracker采用就近原则,让机器尽量处理本机,减少网络传输。

(2)对于每个记录,调用一次Map函数生成<mk,mv>,每个mk调用partitioner(可以是Hash Partitioner)计算对应的Reduce task id,属于同一个id从小到达,存储在同一个本地硬盘文件。

(3)Mapper一端对重复mk进行本地累计,即collection,减少网络传输。

(4)Reducer从Mapper得到数据,由于每个文件已经排序,对多个结果进行归并实现group by.

(5)Reduce对每一项调用一次Reduce函数-> OutputFormat

2.3 Fault Tolerance 容错

JobTracker发现宕机会把任务分配给另一个worker。

+如果Mapper宕机,其split分配给其它Mapper,通知所有Reduce这些splite对应的新Mapper

+如果Reduce宕机,新的Reducer重新从Mappers传输数据。

3.典型算法

3.1 Grep 找到符合特定模式的文本

3.2 sorting

3.3 Equi-join

二、Microsoft Dryad

时间: 2024-08-19 01:08:51

大数据运算系统一的相关文章

使用Stack堆栈集合大数据运算

使用Stack堆栈集合大数据运算 package com.sta.to; import java.util.Iterator; import java.util.Stack; public class DaMax { public void jiaFa(String value1, String value2) { /** * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫 */ // 把字符串用toCharArray拆成字符 char[] c1

大数据运算模型 MapReduce 原理

大数据运算模型 MapReduce 原理 2016-01-24 杜亦舒 MapReduce 是一个大数据集合的并行运算模型,由google提出,现在流行的hadoop中也使用了MapReduce作为计算模型 MapReduce 通俗解释 图书馆要清点图书数量,有10个书架,管理员为了加快统计速度,找来了10个同学,每个同学负责统计一个书架的图书数量 张同学 统计 书架1王同学 统计 书架2刘同学 统计 书架3...... 过了一会儿,10个同学陆续到管理员这汇报自己的统计数字,管理员把各个数字加

java -&gt;大数据运算(BigInteger)

大数据运算 BigInteger java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符. BigInteger类的构造方法: BigInteger b = new BigInteger(str); 构造方法中,采用字符串的形式给出整数 四则运算代码: public static void main(Str

Date、DateFormat类、Calendar类、基本类型包装类、System类、Math类、Arrays类、大数据运算类

1.Date (1)概述: 时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 注意:时间和日期的计算,必须依赖毫秒值 ----------------Date()获取当前时间 import java.util.Date; public class Demo06boke { public static void main(String[] args) { Date sdf=new Date(); System.out.println(sdf); } } Date(lon

Java Array和大数据运算

1.Array类 ?sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序) //源arr数组元素{1,5,9,3,7}, 进行排序后arr数组元素为{1,3,5,7,9} int[] arr = {1,5,9,3,7}; Arrays.sort( arr ); ?toString方法,用来返回指定数组元素内容的字符串形式 int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str的值为[1, 3, 5, 7

7、包装类、System、Math、Arrays、大数据运算

基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等 *b.八种基本类型对应的包装类 char Character int Integer byte Byte short Short long Long float Float double D

math,Arrays和大数据运算

Math类 概念 类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象. 常用方法 Arrays类 概念 此类包含用来操作数组(比如排序和搜索)的各种方法 大数据运算 BigInteger 原文地址:https://www.cnblogs.com/www1842564021/p/12101179.html

Java基础知识回顾-18(Math类,Arrays类和大数据运算)

public class MathDemo { public static void main(String[] args) { double x=12.2; //取绝对值 System.out.println(Math.abs(-99)); //向上取整 System.out.println(Math.ceil(x)); //向下取整 System.out.println(Math.floor(x)); //取最大值 System.out.println(Math.max(2,5)); //取

小明哥教你使用c++实现大数据之加减乘除以及模除运算

在c++中常用的数据类型有 char:1 bit,short 2 bit,int 4 bit,long long 8 bit等等,以上数据类型标识的数据大小非常有限,如果遇到大于他们能表示的范围时,计算结果就会有误,日常生活中的计算器也是如此,我国计算两个比较大的数的运算,也会出现错误,或者不能正常显示, 例如计算123456789123456789*987654321987654321 计算结果如下: 为了解决上述问题,我写了一个计算大数据四则运算以及求模的小项目,实现的功能有 + - * /