主要内容

MapReduce入门

由于数据采集设备的数量和类型每年增长,因此收集的纯粹大小和数据的数据速率正在快速扩展。这些大数据集可以包含千兆字节或数据的千兆字节,并且可以在每天兆字节或千兆字节的顺序增长。虽然这些信息的收集呈现了洞察力的机会,但它也存在许多挑战。大多数算法不设计用于在合理的时间或合理的存储器中处理大数据集。MapReduce允许您满足许多这些挑战,以获得大数据集的重要见解。

什么是mapreduce?

MapReduce是一种用于分析不适合内存的数据集的编程技术。您可能熟悉Hadoop®MapReduce,这是一个与Hadoop分布式文件系统(HDFS™)配合使用的流行实现。马铃薯®通过略微不同地实现MapReduce技术地图还原功能。

地图还原使用数据存储来处理单独适用于内存的小块中的数据。每个块都通过地图阶段,该阶段格式化要处理的数据。然后中间数据块通过缩小阶段,该阶段聚合中间结果以产生最终结果。地图和减少阶段由其编码地图减少函数,是主要输入地图还原. 这个re are endless combinations of map and reduce functions to process data, so this technique is both flexible and extremely powerful for tackling large data processing tasks.

地图还原延伸到若干环境中的延伸。有关这些功能的更多信息,请参阅使用其他产品加快并部署MapReduce下载188bet金宝搏

效用地图还原函数在于它能够在大集合数据上执行计算。因此,地图还原不适合执行计算普通的可直接加载到计算机内存中并使用传统技术进行分析的大小数据集。相反,使用地图还原对不适合内存不适合的数据集执行统计或分析计算。

对map或reduce函数的每次调用地图还原独立于其他人。例如,对地图函数的呼叫不能依赖于对地图函数的先前调用的输入或结果。最好将此类计算分解为多个呼叫地图还原

mapreduce算法阶段

地图还原在到达最终输出之前,将输入数据存储中的每个数据块移动几个阶段。下图概述了算法的各个阶段地图还原

该算法具有以下步骤:

  1. 地图还原使用输入数据存储读取数据块[数据,信息] =读取(DS)然后调用地图函数来处理该块。

  2. map函数接收数据块,对其进行组织或执行前兆计算,然后使用添加addmulti函数将键值对添加到称为keyvaluestore.. 这个number of calls to the map function by地图还原等于输入数据存储中的块数。

  3. 地图函数在数据存储区中的所有数据块上工作后,地图还原将中间体中的所有值组成keyvaluestore.对象的唯一键。

  4. 下一个,地图还原为MAP函数添加的每个唯一键调用Realy函数一次。每个唯一密钥都可以具有许多关联值。地图还原将值传递给减少函数作为avalutierator.对象,它是用于对值进行迭代的对象。这个valutierator.每个唯一键的对象包含该键的所有关联值。

  5. reduce函数使用哈迪文字getNext.函数来迭代的值valutierator.对象一次一个。然后,在聚合map函数的中间结果之后,reduce函数使用添加addmulti功能。输出中键的顺序与reduce函数将它们添加到最终结果的顺序相同keyvaluestore.目的。那是,地图还原没有明确排序输出。

    笔记

    Repend函数将最终键值对写入最终位置keyvaluestore.对象从这个物体上,,地图还原将键值对拉到输出数据存储中,这是一个KeyValueDatastore对象默认情况下。

MapReduce计算示例

此示例使用简单的计算(一组航班数据中的平均行程距离)来说明运行所需的步骤地图还原

准备数据

使用的第一步地图还原是构造数据集的数据存储。除了地图和缩小功能之外,数据集的数据存储是必需的输入地图还原,因为它允许地图还原处理块中的数据。

地图还原适用于大多数类型的数据存储。例如,创建一个表格数据存储对象airlinesmall.csv数据集。

ds = tabulartextdataStore('airlinesmall.csv''尾声''na'
ds=TABLARTEXTDATASTORE,属性:文件:{'.\matlab\toolbox\matlab\demos\airlinesmall.csv'}文件夹:{'.\matlab\toolbox\matlab\demos'}文件编码:'UTF-8'替代文件系统根:{}保留变量名称:假读变量名称:真变量名称:{'Year','Month','DayofMonth'。。。和26更多}DatetimeLocale:en_US文本格式属性:numheaderline:0分隔符:','rowdimiter:'\r\n'TreatAsMissing:'NA'缺失值:NaN高级文本格式属性:TextscanFormats:{'%f','%f','%f','%f'。。。还有26个}TextType:'char'ExponentCharacters:'eEdD'CommentStyle:'Whitespace:'\b\t'multipledLimiterSong:控制预览、读取、readall返回的表的错误属性:SelectedVariableNames:{'Year','Month','DayofMonth'。。。和另外26种}选择的格式:{'%f','%f','%f'。。。还有26个}ReadSize:20000行输出类型:'table'行时间:[]写入特定属性:SupportedOutputFormats:[“txt”“csv”“xlsx”“xls”“parquet”“parq”]默认输出格式:“txt”金宝app

几个先前描述的选项在上下文中是有用的地图还原. 这个地图还原函数执行阅读在数据存储上检索要传递给map函数的数据。因此,您可以使用sedicentvariablenames.SELISENDFORMATS.,及阅读直接配置块大小和数据类型的选项地图还原传递到地图函数。

例如,选择距离(总飞行距离)变量作为唯一感兴趣的变量,指定sedicentvariablenames.

ds.selectedvariablenames =“距离”;

现在,每当阅读读物, 要么预习功能行动DS.,他们将只返回信息距离变量要确认这一点,您可以预览数据存储中的前几行数据。这允许您检查地图还原函数将传递到地图函数。

预览(DS)
ans=8×1工作台距离

查看精确的数据地图还原将传递到地图功能,使用阅读

有关其他信息和可用选项的完整摘要,请参阅数据存储

写映射并减少函数

地图还原功能在执行期间自动调用地图并减少函数,因此这些功能必须符合正确运行的某些要求。

  1. 地图功能的输入是数据信息,及Intermkvstore.

    • 数据信息是呼叫的结果阅读在输入数据存储上的函数,哪个地图还原在每个调用地图函数之前自动执行。

    • Intermkvstore.是中间层的名称keyvaluestore.地图功能需要添加密钥值对的对象。这添加addmulti函数使用此对象名称添加键值对。如果没有对map函数的调用,则将键值对添加到Intermkvstore., 然后地图还原不调用Reals函数,结果数据存储是空的。

    映射函数的简单示例是:

    功能MeanDistMapFun(数据、信息、存储)距离=数据.距离(~isnan(数据.距离));sumLenValue=[总和(距离)长度(距离)];添加(中间存储,'sumandlength',sumlenvalue);结尾

    此映射函数只有三条线,其执行一些直接的角色。第一行过滤掉所有距离数据块中的值。第二行创建一个具有总距离和块的总距离的两个元素向量,第三行增加了值向量Intermkvstore.用关键,'sumandlength'。此映射函数在所有数据块上运行DS., 这Intermkvstore.对象包含每个距离数据块的总距离和计数。

    将此功能保存在当前文件夹中MeanstMapFun.m

  2. reduce功能的输入为intermkey.intermvaliter.,及outkvstore.

    • intermkey.是用于由地图函数添加的活动密钥。每个呼叫减少功能地图还原指定中间键的新唯一键keyvaluestore.目的。

    • intermvaliter.valutierator.与活动密钥关联,intermkey.。这valutierator.对象包含与活动密钥关联的所有值。滚动使用值的值哈迪文字getNext.功能。

    • outkvstore.是最终的名称keyvaluestore.降低功能需要添加密钥值对的对象。地图还原从中获取输出键值对outkvstore.并在输出数据存储中返回它们,这是一个KeyValueDatastore对象默认情况下。如果没有对reduce函数的调用,则将键值对添加到outkvstore., 然后地图还原返回一个空的数据存储。

    缩小功能的一个简单示例是:

    功能含义(Intermkey,Intermvaliter,Outkvstore)Sumlen = [0 0];尽管hasnext(intervaliter)sumLen=sumLen+getnext(intervaliter);结尾添加(outkvstore,“中庸”,sumlen(1)/ sumlen(2));结尾

    这将减少函数循环通过中的每个距离和计数值intermvaliter.每次通过后保持距离和计数的运行总数。在此循环之后,缩小功能计算与简单划分的总体平均飞行距离,然后添加单个键outkvstore.

    将此功能保存在当前文件夹中卑鄙者义乌

有关编写更高级的map和reduce函数的信息,请参阅写一个地图函数写一个缩小功能

跑步地图还原

您有一个数据存储,映射函数和减少函数后,可以调用地图还原执行计算。计算数据集中的平均飞行距离,呼叫地图还原使用DS.含义敏捷杂志,及平均分配数

Outds = MapReduce(DS,@MeandistMapfun,@meandistreducefun);
******************************** * mapreduce进展* ********************************地图0%减少0%地图16%减少0%地图32%减少0%地图48%减少0%地图65%减少0%地图81%减少0%图97%减少0%图100%减少0%图100%减少100%

默认情况下,地图还原函数在命令行显示进度信息并返回aKeyValueDatastore指向当前文件夹中的文件的对象。您可以使用使用的所有三种选项名称,价值对论点'导出目录''OutputType',及“显示”. 有关更多信息,请参阅的参考页地图还原

查看结果

使用读物函数读取输出数据存储的键值对。

readall(odds)
ans = 1×2表键值________ ____________ {'均值'} {[702.1630]}

也可以看看

|

相关话题