草庐IT

python - 将python协同过滤代码转换为使用Map Reduce

我使用Python计算项目之间的余弦相似度。给定表示购买(用户、项目)的事件数据,我有一个由我的用户“购买”的所有项目的列表。给定这个输入数据(user,item)X,1X,2Y,1Y,2Z,2Z,3我建立了一个python字典{1:['X','Y'],2:['X','Y','Z'],3:['Z']}从那个字典中,我生成了一个购买/未购买矩阵,也是另一个字典(bnb)。{1:[1,1,0],2:[1,1,1],3:[0,0,1]}从那里开始,我通过计算(1,1,0)和(1,1,1)之间的余弦来计算(1,2)之间的相似度,得到0.816496我这样做是为了:items=[1,2,3]fo

configuration - 为什么 Hadoop 中正确的 reduce 数量是 0.95 或 1.75?

hadoop文档指出:Therightnumberofreducesseemstobe0.95or1.75multipliedby(*mapred.tasktracker.reduce.tasks.maximum).With0.95allofthereducescanlaunchimmediatelyandstarttransferringmapoutputsasthemapsfinish.With1.75thefasternodeswillfinishtheirfirstroundofreducesandlaunchasecondwaveofreducesdoingamuchbett

map - 配置Hadoop集群时应该设置多少个mapper/reducer?

配置Hadoop集群时,为集群设置映射器/缩减器数量的科学方法是什么? 最佳答案 没有公式。这取决于你有多少核心和多少内存。mapper的个数+reducer的个数一般不要超过core的个数。请记住,该机器还运行着TaskTracker和DataNode守护进程。一般建议之一是映射器多于缩减器。如果我是你,我会使用合理数量的数据运行我的一项典型工作来尝试一下。 关于map-配置Hadoop集群时应该设置多少个mapper/reducer?,我们在StackOverflow上找到一个类似的

hadoop - 使用 HBASE MAP REDUCE API 将数据加载到 Hbase 表中

我对Hbase和MapReduceAPI很陌生。我对MapReduce概念很困惑。我需要使用MAPReduceAPI将文本文件加载到Hbase表中。我用谷歌搜索了一些示例,但在那里我可以找到MAPPER()而不是reducer方法。我对什么时候使用mapper以及什么时候使用Reducer()感到困惑。我的想法是这样的:我们使用映射器将数据写入Hbase从中读取数据HBASE我们使用mapper和reducer()。请任何人清除我详细解释。我正在尝试将数据从文本文件加载到HBASE表。我用谷歌搜索并尝试了一些代码,但我不知道如何加载文本文件并在HBASEmapreduceAPI中读取。

Hadoop 溢出故障

我目前正在使用Hadoop0.21.0、985326和一个由6个工作节点和一个头节点组成的集群来开发一个项目。提交常规mapreduce作业失败,但我不知道为什么。有人以前见过这个异常吗?org.apache.hadoop.mapred.Child:Exceptionrunningchild:java.io.IOException:Spillfailedatorg.apache.hadoop.mapred.MapTask$MapOutputBuffer.checkSpillException(MapTask.java:1379)atorg.apache.hadoop.mapred.Ma

hadoop - Map Reduce 插槽定义

我即将成为一名ClouderaHadoop管理员。从一开始,我就听到很多关于Hadoop集群中每台机器计算槽的信息,比如定义MapSlot和Reduce槽的数量。我在互联网上搜索了一个日志时间来获取MapReduceSlot的新手定义,但没有找到。浏览PDF解释MapReduce配置时,我真的很生气。当涉及到集群机器中的计算插槽时,请解释它的确切含义。 最佳答案 在map-reducev.1中,mapreduce.tasktracker.map.tasks.maximum和mapreduce.tasktracker.reduce.t

Hadoop 似乎在对给定 reduce 调用的值进行迭代期间修改了我的关键对象

Hadoop版本:0.20.2(在AmazonEMR上)问题:我有一个在映射阶段编写的自定义key,我在下面添加了它。在reduce调用期间,我对给定键的值进行了一些简单的聚合。我面临的问题是,在reduce调用的值迭代期间,我的key发生了变化,我得到了那个新key的值。我的key类型:classMyKeyimplementsWritableComparable,Serializable{privateMyEnumtype;//MyEnumisasimpleenumeration.privateTreeMapsubKeys;MyKey(){}//forhadooppublicMyKe

java - Hadoop MapReduce、Java实现问题

目前我正在研究ApacheHadoop(使用MapReduce作业的Java实现)。我查看了一些示例(例如WordCount示例)。我在编写自定义mapreduce应用程序方面取得了成功(我正在使用ClouderaHadoopDemoVM)。我的问题是关于一些实现和运行时问题。作业类原型(prototype)如​​下:publicclassWordCount{publicstaticclassMapextendsMapReduceBaseimplementsMapper{publicvoidmap(LongWritablekey,Textvalue,OutputCollectorout

hadoop - 为什么 map 和 reduce 同时运行?

我是Hadoop的新手。我记得我从某个地方了解到,在Hadoop中,所有map函数都必须在reduce函数开始之前完成。但是当我运行这样的mapreduce程序时,我只是得到了打印输出:map(15%),reduce(5%)map(20%),reduce(7%)map(30%),reduce(10%)map(38%),reduce(17%)map(40%),reduce(25%)为什么它们并行运行? 最佳答案 在真正的Reduce阶段开始之前,Shuffle、Sort和Merge在Mappers不断完成时发生。这个百分比表明了这一点

hadoop - Hadoop 上理想的 reducer 数量是多少?

Hadoopwiki给出的计算reducer的理想数量是0.95或1.75*(nodes*mapred.tasktracker.tasks.maximum)但是什么时候选择0.95,什么时候选择1.75?决定这个乘数时考虑的因素是什么? 最佳答案 假设您的集群中有100个可用的reduce插槽。负载因子为0.95时,所有95个reduce任务将同时启动,因为有足够的reduce槽可用于所有任务。这意味着没有任务会在队列中等待,直到其余任务之一完成。当reduce任务“小”时,我会推荐此选项,即完成相对较快,或者它们都需要相同的时间,