草庐IT

mapreduce_shuffle

全部标签

hadoop - 为什么我的 BroadcastHashJoin 比 Spark 中的 Shuffle Hash Join 慢

我在Spark中使用javaHiveContext执行连接。大表是1,76Gb,有1亿条记录。第二个表是273Mb,有1000万条记录。我得到一个JavaSchemaRDD并在其上调用count():Stringquery="selectattribute7,count(*)fromft,dtwhereft.chiavedt=dt.chiavedtgroupbyattribute7";JavaSchemaRDDrdd=sqlContext.sql(query);System.out.println("count="+rdd.count());如果我强制执行broadcastHashJo

java - 在 Appengine 上使用 mapreduce 对 200 万条记录进行重复数据删除时性能不佳

我有大约200万条记录,每个记录大约有4个字符串字段,需要检查重复项。更具体地说,我将姓名、电话、地址和父亲姓名作为字段,我必须使用所有这些字段和其余数据来检查重复数据删除。需要将生成的唯一记录记录到数据库中。我已经能够实现mapreduce,迭代所有记录。任务速率设置为100/s,存储桶大小设置为100。启用计费。目前,一切正常,但性能非常非常慢。我已经能够在6小时内完成10,000条记录的测试数据集中的1000条记录的重复数据删除处理。java中目前的设计是:在每次map迭代中,我将当前记录与以前的记录Previousrecord是数据库中的单个记录,其作用类似于全局记录我用每个m

hadoop - 在oozie中覆盖hadoop的mapreduce.fileoutputcommitter.marksuccessfuljobs

mapreduce.fileoutputcommitter.marksuccessfuljobsfalse我想将上述属性重写为true。对于集群上的其余作业,该属性需要为false,但在我的oozie工作流中,我需要hadoop在作业完成后在输出目录中创建_SUCCESS文件。它是写入输出的工作流中的配置单元操作。请帮忙。 最佳答案 不幸的是,Hive通过设置它自己的NullOutputComitter覆盖了这个能力:conf.setOutputCommitter(NullOutputCommitter.class);看src/sh

hadoop - 控制和监视 YARN 中同时进行的 mapreduce 任务的数量

我在少数功能强大的机器上部署了一个Hadoop2.2集群。我有使用YARN作为框架的限制,我不是很熟悉。如何控制并行运行的实际map和reduce任务的数量?每台机器都有很多CPU内核(12-32)和足够的RAM。我想最大限度地利用它们。我如何监控我的设置是否确实提高了机器的利用率?在哪里可以查看在给定作业中使用了多少个内核(线程、进程)?在此先感谢您帮助我熔化这些机器:) 最佳答案 1.在MR1中,mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.task

hadoop - mapreduce.task.io.sort.mb 的最大值是多少?

当我设置mapreduce.task.io.sort.mb=100000时。出现以下异常。java.lang.Exception:java.io.IOException:Invalid"mapreduce.task.io.sort.mb":100000mapreduce.task.io.sort.mb的最大值是多少? 最佳答案 我知道这个问题很老了,但是对于那些提出相同问题的人,您可以查看有关此值被上限的一些错误http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.3/bk_re

java - 运行 Hadoop MapReduce 作业时如何获取文件名/文件内容作为 MAP 的键/值输入?

我正在创建一个程序来分析PDF、DOC和DOCX文件。这些文件存储在HDFS中。当我开始我的MapReduce作业时,我希望map函数将文件名作为键,将二进制内容作为值。然后我想创建一个流阅读器,我可以将其传递给PDF解析器库。如何实现映射阶段的键/值对是文件名/文件内容?我正在使用Hadoop0.20.2这是启Action业的旧代码:publicstaticvoidmain(String[]args)throwsException{JobConfconf=newJobConf(PdfReader.class);conf.setJobName("pdfreader");conf.set

java - 在 Mapreduce 中设置 job.setInputFormatClass 时出错

我正在运行一个MapReduce程序。我需要以KEYVALUE对的格式提供输入文本文件。这样如果我写job.setInputFormatClass(KeyValueTextInputFormat.class);eclipse编译器显示错误,我无法使用InputFormat。无论如何我需要将输入的格式设置为KeyValueTextInputFormat我该怎么做呢??有什么想法吗?????我的代码是`packagecom.iot.dictionary;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;

hadoop - MapReduce 或 Spark 用于 Hadoop 上的批处理?

我知道MapReduce是在Hadoop上进行批处理的一个很好的框架。但是,与MapReduce相比,Spark还可以用作Hadoop上的批处理框架,提供可伸缩性、容错性和高性能。Cloudera、Hortonworks和MapR也开始使用YARN支持SparkonHadoop。但是,很多公司仍然在Hadoop上使用MapReduceFramework来进行批处理,而不是Spark。所以,我想了解Spark目前在Hadoop上用作批处理框架的挑战是什么?有什么想法吗? 最佳答案 对于迭代算法,Spark比mapreduce快一个数量

java - 第一次使用Hadoop,MapReduce Job没有运行Reduce Phase

我编写了一个简单的mapreduce作业,它会从DFS中读取数据并在其上运行一个简单的算法。在尝试调试它时,我决定简单地让映射器输出一组键和值,而缩减器输出一组完全不同的键和值。我在单节点Hadoop20.2集群上运行这个作业。作业完成后,输出仅包含映射器输出的值,让我相信reducer没有运行。如果有人对我的代码产生这种输出的原因提供任何见解,我将不胜感激。我已经尝试将outputKeyClass和outputValueClass设置为不同的东西,以及将setMapOutputKeyClass和setMapOutputValueClass设置为不同的东西。目前注释我们的代码部分是我正

hadoop - Cassandra 和 MapReduce - 最低设置要求

我需要在我的Cassandra集群上执行MapReduce,包括数据局部性,即。每个作业仅查询属于作业运行的本地Casandra节点的行。存在关于如何在较旧的Cassandra版本(0.7)上为MR设置Hadoop的教程。我找不到当前版本的此类内容。自0.7以来在这方面发生了什么变化?最小设置(Hadoop+HDFS+...)需要哪些软件模块?我需要CassandraEnterprise吗? 最佳答案 Cassandra包含一些足以与Hadoop集成的类:ColumnFamilyInputFormat-这是Map函数的输入,当使用C