主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

MapReduce入门

データデバイス数タイプが増えているため,收集データデータののサイズサイズそのものそのものそのものとと收集の速度速度はは急速急速にに拡大拡大ししてていいますますますます。これらビッグデータデータデータデータまたはのでするものあります。このような收集收集によりにより,,本质本质本质をを理解する机会机会がが生まれ生まれますますがが,,多く多くのの课题课题课题课题も提起ます。。。。でビッグを处理するように设计さされてて。。。。。。。。。。。ををををを使用すると,,これらこれらのの课题ののをを解决解决し

MapReduceとは

mapReduceとは,に收まらないセットセット解析するプログラミング手法ですです。。®mapReduceは知られており,はは,,,(HDFS™)でで机能し,広く使用さささされ®は,关数MapReducemapReduceを使っをを异なる実装しています。。

MapReduceはデータをして,メモリに收まる小さいブロックごとごとを处理处理处理しししますますますます。。ブロックブロックブロックブロックブロックブロックブロックブロックブロックブロックフェーズフェーズフェーズフェーズフェーズフェーズををを経ますますが,,そこそこそこでででは处理ささ减少フェーズフェーズ経中间结果をし最终结果结果生成ささ。。。。。。。。。フェーズととととと地图および关数减少によってエンコードれてます。これらがMapReduceの主となります。データデータをためののののののとととと关数关数关数关数关数关数关数组み合わせ组み合わせはにあるあるため,,この方法は柔软かつ非常非常にに大大

MapReduceはいくつので実行ようにできますこれらの机能についてのの,,,MapReduceのををののののの高速展开展开展开を参照しください。

关数MapReduceの性,规模なコレクションに対してを実行机能にあります。。,,,MapReduceは,のに直接従来の方法解析ようなななな通常通常通常サイズののには适してんではなく,,にに收まらないないデータセットの统计统计的またはまたはまたは解析解析MapReduceを使用し。

MapReduceMAP降低了关数または关数关数呼び出し,,他のののものからしてててていいいますますますますます。。。,,,,,,,,,たとえば关数关数关数关数关数关数关数关数の呼び出し呼び出し呼び出しははは,,,,,,,,关数关数关数关数关数关数关数な计算は,MapReduceの复数呼び出し分割するが最适です。

MapReduceののフェーズ

MapReduceでは,内のデータ各各かフェーズフェーズを経た后,最终最终出力に到达到达しますますます。。MapReduceのアルゴリズムフェーズのを示します。

アルゴリズムに次のがあります。

  1. MapReduceは,[数据,信息] =读(DS)を使用入力データストアからのブロックを,,にににに关数关数关数关数呼び出し呼び出してそのブロックをますます

  2. 地图关数はブロック受け取り,整理前となる计算をしてから关数关数添加と关数addmultiを使用てキー値のペアをKeyValuestoreという中间ストレージオブジェクト追加します。MapReduceが地图关数关数呼び出すは,入力データ内のブロック数同じ。。

  3. 地图关数が内のデータブロックをすべてした,,MapReduceは中间KeyValuestoreオブジェクト内すべてを一意なキーグループ化します。

  4. 次にMapReduceMAP关数关数でされた一意キーごとににににににに关数关数呼び出します。。。各各一意一意ななにはは,多く多く多くののの値値が关连MapReduceは,をををを关数关数关数ValueIteratorオブジェクトとして。は値に対して反复です。各一意なに対するValueIteratorオブジェクトはそののすべて关连値を含みます。

  5. 减少关数は关数关数hasnextおよびgetNextを使用し,ValueIteratorオブジェクト内値度度ににににつずつつずつつずつ反复ますます。。关数关数关数关数次に,,,,,,关数关数关数关数关数から中间中间を集计集计ししててからから,最后添加addmultiを使用出力追加します。内のキーはは,,,,,,,,,,,关数关数关数关数KeyValuestoreオブジェクトにをする顺序同じです。つまり,MapReduceは出力明示に并べ替えるはありません。

    メモ

    减少关数はのと値ペアののののKeyValuestoreオブジェクトに书き込み。MapReduceは,からと値ペア出力データストア引き出します。このこのデータストアストアは既定KeyValueDatastoreオブジェクトです。

MapReduceのの例

この例简単な计算(一连一连データの平均距离)ををて,MapReduceを実行の必要なを解说します。

データの准备

MapReduceを使用のは,データセットためデータを作成。。。。。。。。。。。。およびおよびおよびおよびおよびおよびおよびおよび关数关数关数MapReduceへのとして必须。これにより,MapReduceはデータブロックで处理できるから。。

MapReduceはほとんどのデータで机能し。,,,AirlinesMall.CSVデータセットに対してTabulartextdatastoreオブジェクトを作成ます。

ds = tabulartextdatastore('airlinesmall.csv',,,,“治疗”,,,,'na'
ds = tabulartextdatastore带有属性:文件:{'... \ matlab \ toolbox \ matlab \ emos \ airlinesmall.csv'}文件片:{'... \ matlab \ toolbox \ matlab \ matlab \ matlab \ demos \ demos'} fileencoding:'utf-8 88' AlternateFileSystemRoots: {} PreserveVariableNames: false ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more} DatetimeLocale: en_US Text Format Properties: NumHeaderLines: 0 Delimiter: ',' RowDelimiter: '\ r \ n'treatsmissing:'na'缺失值:NAN高级文本格式属性:textScanformats:{'%f','%f','%f','%f'...和26多个} sope textType:'char'offonentscharacters:''eedd'评论标准:''whitespace:'\ b \ t'multipledelimitersasone:控制由预览返回的表返回的表的false属性,read,readall:selected variablenames:{'年','','','','dayofmonth'...和26多26} selectedFormats:{'%f','%f','%f'...和26 more} readsize:20000行outputtype:'table'rowtimes:[]写入特定属性:supportEdOutputputformats:[“ txt” txt“金宝app”CSV“ XLSX”“ XLS”“ PARQUET”“ PARQ”] DefaultOutputformat:“ txt”

これまで说明たオプションの中,,MapReduceで便利ものいくつかあります关数关数MapReduceは,データに対してを実行,を取得しててて关数关数渡しますしたがって,,选定的variablenames选定的formats读取尺寸の各を使用し,,MapReduceが地图关数关数渡すデータブロックサイズと型直接に设定でき。。

たとえば,距离(総距离)変数変数の目的としてするするは,选定的variablenamesを指定し。

ds.selectedVariablenames ='距离';

こうすると关数读取または预习DSを处理する,変数距离の情报返し。を确认に,ストア内内の最初の数行をプレビュープレビューできできます。これこれMapReduceが地图关数关数渡すデータ形式を调べられ。。。

预览(DS)
ANS = 8×1桌距离________ 308 296 480 296 373 308 447 954

MapReduceが地图关数关数データをを“その”表示表示表示には,,を使用し。

详细と可能なの完全なについて,,,データストアを参照しください。

地图关数降低关数关数作成作成作成

关数MapReduce映射关数关数关数关数关数关数关数关数关数关数をにため,これらのの关数がが适切适切适切に実行れるれるためにににはは特定特定の

  1. 地图关数关数のは,,数据信息およびIntermkvstoreです。

    • 数据および信息は,データストアに対して关数を呼び出し结果。この呼び出し呼び出しは,,关数关数关数呼び出す前毎回毎回毎回MapReduceが自动に実行し。。

    • Intermkvstore图映射关数关数キー値のペアをする必要のある中间中间KeyValuestoreオブジェクトの名前。关数添加およびaddmultiは,名使用してとのペア追加。。。。。。。关数关数の呼び出しで,,キーIntermkvstoreにまったく追加れなかった,,MapReduceは降低关数关数ず,のデータストア空になり。。。

    地图关数のなを次に示し。。

    功能sundistMapFun(数据,信息,Intermkvstore)距离= data.distance(〜isnan(data.distance));sumlenvalue = [sum(距离)长度(距离)];添加(Intermkvstore,“ sumandlength”,sumlenvalue);结尾

    この地图关数关数はは行しかなく,いくつのな役割をますます。最初の行ははデータデータのブロック内の値をます。。行目は,距离ブロックカウントでででででで要素要素要素ののベクトルをを作成しし,,,,,,,,,,行目行目行目行目行目はは“ sumandlength”とともにIntermkvstoreに追加し。このこの关数关数关数关数をDS内ののすべてに対してした后,Intermkvstoreオブジェクトに距离の各ブロックのとカウントが含まれ。

    この关数现在のフォルダーにsundistmapfun.mとして保存し。

  2. 减少关数へ入力,,Intermkey间值およびOUTKVSTOREです。

    • Intermkey图映射关数关数追加さアクティブなな。。。MapReduceが降低关数关数呼び出すに,のののKeyValuestoreオブジェクトの新しい一意キーが指定れ。。。

    • 间值は,アクティブキーIntermkeyに关连付けたValueIteratorです。このValueIteratorオブジェクトにアクティブキーに关连付けたの値が含まます。关数hasnextgetNextを使用て値スクロールします。

    • OUTKVSTORE减少关数关数キー値のペア追加するのある最终的なKeyValuestoreオブジェクトの名前。MapReduceは,OUTKVSTOREから出力キー値のを取って出力データ(既定はKeyValueDatastoreオブジェクト)に返し。。关数关数の呼び出し,,OUTKVSTOREにキー値がまったく追加さなかった场合は,MapReduceは空データストアを。。

    减少关数关数简単なををます。。。

    功能Sumlen = [0 0];尽管hasNext(Intermvaliter)sumlen = sumlen + getNext(Intermvaliter);结尾添加(OutkvStore,'意思是',Sumlen(1)/Sumlen(2));结尾

    この降低关数关数,,间值内のを顺ループし,各パスパスの距离ととカウントののの合计合计合计値を保持ししますますループループループループループのののの后后后后后后后后,,,,,,,,,,,,,,,,,,,,,,一のキーをOUTKVSTOREに追加し。

    この关数现在のフォルダーにsydistreduceFun.mとして保存し。

より高度な关数关数およびおよびおよび关数关数の作成详细について,,,,地图关数关数作成および减少关数の作成を参照しください。

MapReduceの実行

データストア,关数关数およびおよびおよび关数关数の准备ができ,,,MapReduceを呼び出しできますデータセット内平均距离を计算するには,DSSundistMapFun,およびSundistreduceFunを使用してMapReduceを呼び出します。

utds = mapReduce(ds,@meandistmapfun,@meandistreducefun);
*********************************************************************************************************************************地图0%减少0%地图16%减少0%地图32%降低0%地图48%减少0%地图65%减少0%地图81%减少0%地图97%减少0%地图100%减少0%地图100%减少100%

既定では关数MapReduceは进捗コマンドに表示し,フォルダーのファイルをするするKeyValueDatastore3つの。これらこれらつのつのオプションはすべて,,'导出目录''outputType'および'展示'名称,价值のペア引数使用て调整でき。详细は,MapReduceのリファレンスを参照し。。

结果の表示

关数读取を使用,データストアからキーのペアを読み取り。。

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

参考

|

关连するトピック