草庐IT

HASH_ALGORITHM

全部标签

algorithm - Hadoop 适合哪种类型的并行算法?

我完全不是Hadoop专家,但我的理解是Hadoop非常适合并行算法,其中并行性表现为map-reduce形式或任何其他类型的分而治之。还有其他类型的算法技术也很适合吗? 最佳答案 Hadoop适用于令人尴尬的并行工作负载(并行任务之间没有依赖性)。进程之间没有消息传递机制。Map和Reduce进程遵循基于IO的通信模式,这本身就是一个很大的开销。MapReduce不适合编写迭代算法(例如KMeans、PageRank),因为每次迭代都是一个单独的mapreduce应用程序,并且由于巨大的IO开销,算法的性能会下降。对于迭代算法,您

algorithm - 为什么我们说 map-reduce 比传统方法更好地解决了 "Paper reference"问题?

据说当我们希望对论文引用进行统计时,map-reduce可以比传统方式做得更好,因为传统方式涉及大量内存/磁盘切换。我不太明白为什么传统方法不好。假设我只在一台机器上运行map-reduce(没有集群),它是否仍然比传统方式更好地解决了一些问题?或者换句话说,“map-reduce”这种算法范式本身,从算法的角度来说,在解决问题上是否有一些优势?谢谢。 最佳答案 AtbestM/R允许重新应用与高级统计包相同的算法。但更典型的是,在使用的算法中会做出一些牺牲——以允许以分布式方式运行。Map/Reduce在交叉采样(或任何其他采样方

algorithm - 通过仅知道开始和结束的集合来估计当前进度

在只知道第一个和最后一个项目而不是项目数量的情况下,如何估算迭代遍历集合的进度?AAAAAAA............?........ZZZZZZZZZZZZ第一项和最后一项保证是整个集合的字典序最小值和最大值。可以假定项目值的分布接近均匀。您收到元素的顺序是未知的,可能无法预测,也可能是有序的。项目保证是唯一的。只要随着时间的推移,估计值通常会接近99.999%,即使它出现波动也没关系。这让我想起了Germantankproblem除了没有(据我所知)一种方法来减去或获取字典顺序中项目之间的距离。例如,我正在考虑获取尚未收到的最大项目并将其与最后一项进行比较,但我不知道如何获得任意

java - 在 Map Reduce 作业 Hadoop 中使用文件中的数据作为 Hash-Map

我有一个包含10,000(“小文件”)行的文件,其中包含键值小文件中的不同键可以具有相同的值。我必须对不同的文件(大文件)进行字数统计。购买我需要用(“小文件”)-inMapper中的值替换(“大文件”)中的键。只有在它在reducer中计数之后。我想在不使用pig/hive的情况下使用单个mapreduce作业来实现它。你能帮我指导我怎么做吗?小文件将在hdfs上,我不确定其他节点将如何从中读取-不认为它甚至被推荐-因为具有小文件的节点将不得不非常努力地向每个节点发送数据maptask。 最佳答案 你可以做一个mapside加入,

algorithm - 对于相似图像有什么好的最近邻算法吗?

我正在寻找一种可以在大型集合中搜索相似图像的算法。我目前正在使用SURFimplementation在OpenCL中。一开始我用的是KNN搜索算法将每个图像的兴趣点与集合的其余部分进行比较,但测试表明它不能很好地扩展。我还尝试了KNN-Join的Hadoop实现这在HDFS中确实占用了大量临时空间,与输入数据量相比太多了。事实上,由于我的输入向量(64)的维度,成对距离方法并不合适。我听说过LocallySensitiveHashing,想知道是否有任何免费的实现,或者是否值得实现它,也许还有另一种我不知道的算法? 最佳答案 IIR

algorithm - 从 mapreduce 中的 n 个元素中选择 k

假设输入x记录,其中n具有所需的属性(例如,它们的值为正)并且所有x具有唯一键。我想做的是,在MapReduce中使用仅限map的作业,恰好发出这些n记录中的k。例如,假设这是我的输入:(a,10)(g,-3)(c,-2)(f,4)(s,2)并且我想发射2个具有正值的元素。在这个例子中,x是5,n是3,k是2。我知道x(我认为不需要),k和n在作业开始之前。问题是具有正值的记录可以由不同的映射器处理。我想到的是,在每个映射器中使用大小为n的哈希表,并使用键的哈希值将具有正值的元素放入该哈希表中。然后,哈希表的前k位置的元素将被发出。但是,如果两个记录落在同一个哈希桶中,这将不起作用。还

algorithm - map-reduce如何用于倒排索引搜索?

很容易理解如何使用map-reduce来收集文本并构建一个大的倒排索引。但是map-reduce如何用于倒排索引搜索呢? 最佳答案 建立一个大的倒排索引,对吧。但不是用于搜索。MapReduce是批处理。我很确定您不想等到MapReduce作业在2mio上运行。项目并对它们进行评分,之后必须运行另一个作业并对分数进行降序排序。但这只是Hadoop的情况。也许如果您在MongoDB中使用MapReduce,这可能是准确的。但是仍然有很多开销。 关于algorithm-map-reduce如

algorithm - 哪些类型/类别的算法可以在 MapReduce 范例中重铸?

一些“快速问题”:哪些类型/类别的算法可以在MapReduce范例中重铸?(例如k-means有一个MR实现)有没有不能这样表达的?哪些算法特征使它们在MR范式中reshape时不那么有吸引力/复杂性在此先感谢您的帮助。最大 最佳答案 我正在为来自MPI世界的一组大数据算法解决这些相同的问题。这是我的看法。MR配方的基本流程似乎是扩展/收缩。该映射应用于一个大集合,可能会创建一个更大的集合,然后使用reduce对该集合进行排序/组织,以便它可以聚合成一个合并的数据集,最好小得多。您需要的map和reduce数量是MR算法的聪明之处。

algorithm - All 对图形上的所有路径

这可能是一个可能没有最佳解决方案的问题。假设我有一个有向图,不知道它是否有任何循环(循环检测将是这个问题的一个方面)。给定一组顶点(可能有数百万个顶点),我需要计算给定图形的所有唯一对之间的所有不同路径(没有重复顶点的路径)。我将如何处理这种情况?让我们看看一个蛮力的方法来做到这一点:计算图中所有可能的对。对于每对图,使用DFS获取从Source到目的地。假设这些对在哈希表中表示,将路径计数作为该对的值。对其余的对重复上述操作。人们能指出哪些地方可能会出错吗?让我们以这种方式思考这个问题,找到地球上所有城市之间的所有不同路径的计算挑战是什么?如果有人试图解决这个问题,应该从哪里开始?编

algorithm - mapreduce中是否有可以并行执行的非交换reducer?

某些运算(例如中位数和均值)是不可交换的。在这种情况下似乎只能有一个reducer,因为reducer需要具有全局View。map-reduce中是否有可以并行执行的非交换reducer?当遇到非交换操作时,人们真的会使用map-reduce吗?或者只是在一些非常强大的机器上运行它?是否有将非交换运算分解为交换运算的通用方法?谢谢 最佳答案 我不知道“交换”这个词用在这里是否合适,但我明白你在说什么。在hadoop中,post-mapping阶段其实分为两步:Combiner和Reducer,签名相同。Combiner在映射器上运行