草庐IT

mapreduce_shuffle

全部标签

hadoop - Spark 性能优势 vs. Hadoop MapReduce

这个问题在这里已经有了答案:WhyisSparkfasterthanHadoopMapReduce(2个答案)关闭5年前。我听说Spark比hadoop有优势,因为spark的内存计算。然而,一个明显的问题是并非所有数据都可以装入一台计算机的内存中。Spark也仅限于较小的数据集。同时,还有sparkcluster的概念。所以我没有遵循spark相对于hadoopMR的所谓优势。谢谢

hadoop - 为什么输入输出一般都是 "write once"或者 "immutable"文件?另外,MapReduce 程序的结构是什么?

我这周有考试,我正在学习学习指南。我正在为这两个问题的答案而苦苦挣扎。我已经给我的教授发了邮件,但他还没有回复我,所以我想我会在这里试试。有人知道这两个问题的答案吗?为什么输入和输出一般都是“一次写入”或“不可变”文件?MapReduce程序的结构是什么? 最佳答案 https://developer.yahoo.com/hadoop/tutorial/module4.html相反,MapReduce中的所有数据元素都是不可变的,这意味着它们无法更新。如果在映射任务中更改输入(键、值)对,它不会反射(reflect)在输入文件中;通

amazon-web-services - 登录 Elastic Mapreduce 的最佳实践 - AWS

我计划将AmazonEMR用于SparkStreaming应用程序。亚马逊提供了一个很好的界面来显示标准错误和Controller日志。但是对于流式应用程序,我不确定如何管理日志。亚马逊将数据记录到/var/log/hadoop/steps/和Spark的类似地方。http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-manage-view-web-log-files.html我想知道我们如何轮换日志并且仍然可以通过awsemrWeb界面访问。我们可以通过配置hadoop-log4j轻松更改日志轮换策

java - MapReduce 计数问题

我是hadoop的新手,我尝试制作一个程序,该程序将采用一个输入文件来描述带有边的图形(例如:(A,B),(A,C),(B,D),(A,D))我想计算每个顶点的度数并像这样显示它:(A,B)d(A)=3(A,C)d(A)=3(A,D)d(A)=3(A,B)d(B)=2(B,D)d(B)=2(A,C)d(C)=1(A,D)d(D)=2(B,D)d(D)=2目前我能够使我的map正常工作(拆分2个顶点并将发出为(例如:),但是reduce有一个我无法理解的问题。当我在for循环之外执行context.write(key,result);时,显示的结果始终为1。我尝试调试但变量sum具有正确

python - 在 CDH3 上编写 HBase MapReduce 的最简单的非 Java 方法?

我已经为此工作了很长时间,我感到很疲惫;我希望来自SO社区的[显而易见的?]见解可能会让我的宠物项目重新开始,这样我就可以停止踢自己了。我正在使用ClouderaCDH3、HBase.89和Hadoop.20。我有一个Python/Django应用程序,它使用Thrift接口(interface)将数据写入单个HBase表,效果很好。现在我想将它映射/减少到更多的HBase表中。这里明显的答案是Dumbo或ApachePIG,但是对于Pig,我的版本尚不支持HBaseStorage适配器(Pig能够加载类和定义,但在“映射”步骤卡住,提示“输入拆分”;Pig邮件列表建议这在Pig0.8

hadoop - MapReduce - 如何计算相对值(平均值、前 k 等)?

我正在寻找一种在MapReduce过程中计算“全局”或“相对”值的方法-平均值、总和、最高等。假设我有一个worker列表,他们的ID与他们的薪水相关联(并且一堆其他的东西)。在处理的某个阶段,我想知道谁是收入最高10%的worker。为此,我需要一些我无法理解的“全局”值(value)观。如果我将所有值都发送到一个单一的reducer中,它具有全局View,但是我失去了并发性,这看起来很尴尬。有没有更好的办法?(我想使用的框架是Google的,但我正在尝试找出技术-请不要使用特定于框架的技巧) 最佳答案 我的第一个想法是做这样的事

java - 关于调试 Hadoop MapReduce 作业中二级排序问题的任何提示?

我相信(相信?)我理解二级排序在Hadoop中的工作原理。我创建了一个由4个字段组成的中间键。我按第一个字段分区,按第一个和第二个字段分组,然后按所有4个字段排序。看起来我已经确定了分组和分区,但是值进入reducer的顺序是乱序的。关于如何对此进行调试有什么想法吗? 最佳答案 目前,手动或使用工具进行静态代码审查似乎效果不错。我相信我违反了规则:当覆盖compareTo()时,不要忘记覆盖equals()和hashCode()。如果解决这个问题,我会及时通知大家。 关于java-关于调

java - 多个mysql表的数据到hadoop mapreduce

我们有以下场景:我们有一个用java实现的map-reduce进程链。目前我们正在从一个mysql表中读取数据并将输出保存到另一个mysql表。现在我们可以需要来自另一个表的数据作为map/reduce过程的输入。可能的解决方案:a)要么我们可以有一个连接查询以获取映射过程的输入,要么b)我们可以通过建立简单的jdbc连接并一次又一次地请求数据来读取所需的数据(虽然,我不喜欢它)。问题:在这种情况下,最佳做法是什么?我们将来可能会迁移到mongoDB。在这种情况下,最佳实践是什么? 最佳答案 SQOOP和HIVE可以使用。您可以使用

Eclipse MapReduce 插件错误 : Server IPC version 7 cannot cannot communicate with client version 3

当我尝试连接到MapReduce位置时,我的笔记本电脑(我有我的eclipse和mapreduce插件)是一个namenode和datanode的集群,我得到错误:服务器IPC版本7无法与客户端版本3通信。我试图在谷歌上找到一些信息,但找不到太多。是不是因为我的mapreduceeclipse插件使用旧版本的IPC而hadoop集群有更新的版本。所以只是我使用的是过时的插件?如何找到我的eclipse插件使用的IPC版本?有什么想法吗? 最佳答案 是的,这听起来像是版本不兼容。假设您的hadoop发行版有源代码,您可以为该版本重新编

database - 使用 mapreduce 访问非 JDBC 数据库

我有一个未启用JDBC的数据库,我可以在其中触发查询并使用输入流获取结果。我想使用mapreduce程序访问它。对于支持JDBC的数据库,Hadoop中有“DBInputFormat.java”和“DBConfiguration.java”文件,它们负责访问数据库并在扩展DBWritable和Writable接口(interface)的用户定义类中获取结果。有没有一种方法可以让我以相同的方式访问上述非JDBC数据库? 最佳答案 我不确定您的数据库是否支持ODBC。如果是这样,您可以尝试使用DBInputFormat的jdbc:odb