草庐IT

mapreduce_shuffle

全部标签

python - 迪斯科/MapReduce : Using results of previous iteration as input to new iteration

目前正在Disco上实现PageRank。作为迭代算法,一次迭代的结果作为下一次迭代的输入。我有一个代表所有链接的大文件,每一行代表一个页面,行中的值代表它链接到的页面。对于Disco,我将这个文件分成N个block,然后运行​​MapReduce一轮。结果,我得到了一组(page,rank)元组。我想将此排名提供给下一次迭代。但是,现在我的映射器需要两个输入:图形文件和pageranks。我想“压缩”在一起图形文件和页面排名,这样每一行代表一个页面,它是排名,它是外链。由于这个图形文件分为N个block,我需要将pagerank向量分成N个并行block,并压缩区域pagerank向

python - 在 Python3 中使用 `random.shuffle` 作为关键字参数时 `random.random` 的运行时间更短

我只是观察到,当使用Python3时,使用random.shuffle对列表进行洗牌需要大约一半的运行时间,而当为显式提交函数random.random>random关键字参数。我检查了Python2是否有同样的问题,发现它只出现在Python3。我使用下面的代码来测量两个版本的运行时间:fromtimeitimportTimert1=Timer("random.shuffle(l)","importrandom;l=list(range(100000))")t2=Timer("random.shuffle(l,random=random.random)","importrandom;

python - 使用 appengine-mapreduce 达到内存限制

我正在研究appengine-mapreduce功能,并修改了演示以符合我的目的。基本上我有以下格式的一百万多行:userid、time1、time2。我的目的是找出每个用户标识的time1和time2之间的差异。但是,当我在GoogleAppEngine上运行它时,我在日志部分遇到了这条错误消息:在为总共130个请求提供服务后,超过了180.56MB的软专用内存限制在处理此请求时,发现处理此请求的进程使用了​​太多内存并被终止。这很可能会导致对您的应用程序的下一个请求使用新进程。如果您经常看到此消息,则您的应用程序可能存在内存泄漏。deftime_count_map(data):""

python - 我应该学习/使用 MapReduce 或其他类型的并行化来完成这项任务吗?

在与Google的一位friend交谈后,我想实现某种工作/worker模型来更新我的数据集。该数据集反射(reflect)了3rd方服务的数据,因此,要进行更新,我需要对其API进行多次远程调用。我认为等待这个3rd方服务的响应会花费很多时间。我想加快处理速度,并更好地利用我的计算时间,通过并行处理这些请求并在它们等待各自的响应时同时保持其中许多请求打开。在我解释我的特定数据集并进入问题之前,我想澄清我正在寻找的答案:这是一个非常适合与MapReduce并行化的流程吗?如是,这在Amazon的mapreduce模块上运行是否具有成本效益,该模块按小时计费,并在工作完成后按小时计算?(

python - tf.train.shuffle_batch 和 `tf.train.batch 发生了什么?

我使用Binarydata训练DNN。但是tf.train.shuffle_batch和tf.train.batch让我很困惑。这是我的代码,我将对其进行一些测试。首先Using_Queues_Lib.py:from__future__importabsolute_importfrom__future__importdivisionfrom__future__importprint_functionimportosfromsix.movesimportxrange#pylint:disable=redefined-builtinimporttensorflowastfNUM_EXAMP

python - 如何在生成器上使用 random.shuffle()? Python

如何在不从生成器初始化列表的情况下在生成器上使用random.shuffle()?这可能吗?如果不是,我还应该如何在列表中使用random.shuffle()?>>>importrandom>>>random.seed(2)>>>x=[1,2,3,4,5,6,7,8,9]>>>defyielding(ls):...foriinls:...yieldi...>>>foriinrandom.shuffle(yielding(x)):...printi...Traceback(mostrecentcalllast):File"",line1,inFile"/usr/lib/python2.7

c# - 在 C# 中随机 "sort"(Shuffle) 整数列表的最有效方法

我需要以最有效的方式对整数列表(0-1999)进行随机“排序”。有什么想法吗?目前,我正在做这样的事情:bool[]bIndexSet=newbool[iItemCount];for(intiCurIndex=0;iCurIndex 最佳答案 一个好的线性时间混洗算法是Fisher-Yatesshuffle.您会发现您提出的算法存在的一个问题是,当您接近洗牌结束时,您的循环将花费大量时间来寻找尚未交换的随机选择的元素。一旦到达要交换的最后一个元素,这可能需要一段不确定的时间。此外,如果要排序的元素数量为奇数,您的算法似乎永远不会终止

java - 如果我使用 golang 编写一个 NoSQL 数据库,但想在其上运行 Hadoop mapreduce,我会遇到什么困难?

我想用golang搭建一个分布式的NoSQL数据库或者key-valuestore,学习golang和实践我在学校学到的分布式系统知识。我能想到的目标用例是在其上运行MapReduce,并实现一个与HDFS兼容的“文件系统”以将数据公开给Hadoop,类似于在Ceph和AmazonS3上运行Hadoop。我的问题是,将这样一个NoSQl数据库与Hadoop集成应该遇到什么困难?或者与其他语言集成(例如,提供Ruby/Python/Node.js/C++API?)如果我使用golang构建系统。 最佳答案 好吧,我不是一个Hadoop

mapreduce - 是否有分布式数据处理管道框架,或者组织一个的好方法?

我正在设计一个需要一组分布式处理工作器的应用程序,这些工作器需要在特定流中异步使用和生成数据。例如:组件A获取页面。组件B分析来自A的页面。组件C存储来自B的经过分析的点点滴滴。显然不仅仅涉及三个组件。进一步的要求:每个组件都需要是一个单独的进程(或一组进程)。生产者对其消费者一无所知。换句话说,组件A只是产生数据,并不知道哪些组件使用该数据。这是一种由面向拓扑的系统解决的数据流,如Storm.虽然Storm看起来不错,但我持怀疑态度;它是一个Java系统,并且基于Thrift,我不喜欢这两者。我目前倾向于使用AMQP作为数据传输,使用HTTP作为数据共享/存储协议(protocol)

debugging - MongoDB:mapReduce 的副作用

在我们的map-reduce作业的开发过程中,我们的MR代码独立于被map-reduce的数据生成有用的诊断数据结构。有没有一种简单的方法可以将这些数据导出到调用mapReduce的代码中或将它们保存在Mongo中?仅仅写入日志文件是非常次优的,因为(a)那里已经有很多数据,并且(b)我们的诊断信息是高度结构化的,事实上,我们希望针对它。到目前为止,我的调查表明MR数据结构是按值传递的(通过序列化),因此任何内存中的数据结构都会丢失,包括那些与“全局”范围Hook的数据结构。命名空间与主要的JS服务器端命名空间是隔离的,因此dbeval似乎无法访问它们(或者,至少,我不知道去哪里寻找)