标签: mapreduce

使用Map/Reduce计算自举算法

这个问题最初是我的作业,但我的回答是错误的,我很好奇这个问题的最佳解决方案是什么.

目标是使用4个map reduce步骤计算"Recommender System bootstrapping algorithm"的关键方面.我的问题是第3步,所以我只带来它的细节.


输入:表格记录:
1.(人口ID,项目,评级用户数,评级总和,平均等级之和)
2.(人口ID,分配器项目,喜欢/不喜欢者,项目,评级用户数量,总和评级,平均等级总和)

第二种形式非常类似于第一种形式,但是每种形式的记录(分离者,喜欢者/不喜欢者) - 喜欢/不喜欢的人是布尔值.

这意味着(我认为)有2 ^ |项目| 来自第一种形式的每条记录的秒形式的记录......(许多同学做错了(再次,我认为......)假设有相同数量的第一和第二形式记录)

任务描述:

此步骤将根据分割器电影计算每部电影引起的平方误差(SE).

  • 输出:表格的记录(人口ID,拆分项目,项目,在拆分器上给出拆分的项目的平方误差).

暗示:

假设存在一个字符串(在系统的排序顺序中)之前的任何分割器影片ID.

这必须在一个mapreduce步骤中完成!

其他背景:
这是在"The Netflix Challange"的背景下学到的.

SE定义: SE定义

编辑:有关问题的其他材料[有关netflix挑战的一些描述和有关问题的数学信息]可以在此链接中找到[幻灯片12-24特别]

EDIT2:请注意,由于我们使用的是map/reduce,因此我们无法假设任何有关ORDER记录的内容将被处理[在map和reduce中].

algorithm mapreduce

18
推荐指数
1
解决办法
981
查看次数

MapReduce中的分区如何正常工作?

我认为我对MapReduce编程模型有一般的了解,但即使在阅读了原始论文和其他一些资料之后,我也不清楚许多细节,特别是关于中间结果的分区.

到目前为止,我将快速总结一下我对MapReduce的理解:我们有一个非常大的输入数据集,它由MR-Framework自动分成M个不同的部分.对于每个部分,框架调度一个映射任务,该任务由我的集群中的一个可用处理器/机器执行.M个映射任务中的每一个输出一组键值对,其本地存储在执行该映射任务的同一机器上.每台机器将其磁盘划分为R个分区,并根据分区之间的中间密钥分配其计算的中间密钥值对.然后,框架为每个不同的中间密钥启动一个reduce任务,该任务再次由任何可用的机器执行.

现在我的问题是:

  1. 在一些教程中,听起来可能有并行执行的map和reduce任务.这是正确的吗?怎么可能,假设每个不同的中间密钥只开始一个reduce任务?在我们开始第一个reduce任务之前,我们不必等到最后一个map任务完成吗?
  2. 由于每个不同的中间密钥有一个reduce任务,每个reduce任务是否需要执行机器从其他每台机器加载相应的分区?潜在地,每台机器都可以具有带有所需中间密钥的键值对,因此对于每个reduce任务,我们可能必须查询所有其他机器.这真的很有效吗?
  3. 原始文件说,分区数(R)由用户指定.但是不是分区输入的减少任务吗?或者更确切地说:在一台减少任务的输入中,并非所有机器中具有相同编号的所有分区的并集?这意味着,R取决于用户通常不知道的不同中间密钥的数量.

从概念上讲,很清楚地图的输入和输出以及减少功能/任务是什么.但我认为我还没有在技术层面上理解MapReduce.有人可以帮我理解吗?

hadoop mapreduce

18
推荐指数
2
解决办法
3万
查看次数

CouchDB:Erlang中的map-reduce

如何在Erlang for CouchDB中编写map-reduce函数?我确信Erlang比JavaScript更快.

erlang couchdb mapreduce

17
推荐指数
2
解决办法
5790
查看次数

Mongoid有Map/Reduce吗?

我使用Ruby代码来计算Mongoid返回的数组的总和.

但也许使用Map/Reduce会更快,除了我在mongoid.org和Google上看不到Map Reduce的任何文档

map reduce site:mongoid.org
Run Code Online (Sandbox Code Playgroud)

也没有给出任何结果.(或使用MapReduceMap/Reduce)

MongoDB的网站上有文档

map reduce site:mongodb.org
Run Code Online (Sandbox Code Playgroud)

但是也需要使用Map Reduce和Mongoid.

mapreduce ruby-on-rails mongodb mongoid

17
推荐指数
1
解决办法
5268
查看次数

mapreduce作业中的"Combiner"类

组合器在Mapper之后运行,在Reducer之前,它将接收Mapper实例在给定节点上发出的所有数据作为输入.然后将输出发送到Reducers.

而且,如果reduce函数既是可交换的又是关联的,那么它可以用作组合器.

我的问题是" 交换和联想 "这个词在这种情况下意味着什么?

hadoop mapreduce reducers combiners

17
推荐指数
2
解决办法
1万
查看次数

Hadoop Map Reduce和Google Map Reduce之间的区别

Hadoop Map Reduce和Google Map Reduce有什么区别?

是否只是Hadoop为map reduce和其他提供标准化?差异之中还有什么.

hadoop mapreduce

17
推荐指数
1
解决办法
2万
查看次数

jobconf和job之间的基本区别是什么?

嗨,我想知道jobconf和job对象之间的基本区别,目前我正在提交我的工作

JobClient.runJob(jobconf);
Run Code Online (Sandbox Code Playgroud)

我看到了提交这样的工作的其他方式

Configuration conf = getConf();
Job job = new Job(conf, "secondary sort");
job.waitForCompletion(true);     
return 0;
Run Code Online (Sandbox Code Playgroud)

如何使用jobconf为作业指定sortcomparator类?

任何人都可以向我解释这个概念吗?

hadoop mapreduce bigdata

17
推荐指数
1
解决办法
1万
查看次数

Hadoop MapReduce vs MPI (vs Spark vs Mahout vs Mesos) - When to use one over the other?

I am new to parallel computing and just starting to try out MPI and Hadoop+MapReduce on Amazon AWS. But I am confused about when to use one over the other.

For example, one common rule of thumb advice I see can be summarized as...

  • Big data, non-iterative, fault tolerant => MapReduce
  • Speed, small data, iterative, non-Mapper-Reducer type => MPI

But then, I also see implementation of MapReduce on MPI (MR-MPI) which does not provide fault tolerance but seems …

parallel-processing hadoop mapreduce mpi

17
推荐指数
2
解决办法
6827
查看次数

可写和可写在Hadoop中的可比性?

有人可以解释一下:

什么是可写和可写的Hadoop中的可比接口?

这两者有什么不同?

请举例说明.

提前致谢,

hadoop mapreduce

17
推荐指数
2
解决办法
2万
查看次数

MapReduce作业挂起,等待分配AM容器

我试图将简单的字数作为MapReduce作业运行.在本地运行时一切正常(所有工作都在名称节点上完成).但是,当我尝试使用YARN(添加mapreduce.framework.name= yarnmapred-site.conf)在集群上运行它时,作业挂起.

我在这里遇到了类似的问题: MapReduce作业陷入了Accepted状态

工作输出:

*** START ***
15/12/25 17:52:50 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
15/12/25 17:52:51 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
15/12/25 17:52:51 INFO input.FileInputFormat: Total input paths to process : 5
15/12/25 17:52:52 INFO mapreduce.JobSubmitter: number of splits:5
15/12/25 17:52:52 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1451083949804_0001
15/12/25 17:52:53 INFO impl.YarnClientImpl: Submitted application application_1451083949804_0001
15/12/25 17:52:53 INFO …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce hadoop-yarn

17
推荐指数
2
解决办法
3万
查看次数