草庐IT

mapreduce_shuffle

全部标签

java - 在 Hadoop MapReduce 应用程序中读取 Java 属性文件

我想知道在MapReduce应用程序中读取Java属性文件的标准做法是什么,以及如何在提交(开始)作业时将位置传递给它。在常规Java应用程序中,您可以将位置作为JVM系统属性(-D)或参数传递给属性文件,或传递给main方法。对于MapReduce作业,最佳替代方案(标准做法)是什么?一些很好的例子会很有帮助。 最佳答案 最好的替代方法是使用DistributedCache,但它可能不是标准方法。可以有其他方式。但到目前为止,我还没有看到任何代码使用其他任何东西。想法是将文件添加到缓存中,并在map/reduce的setup方法中

Hadoop MapReduce : Is it possible to only use a fraction of the input data as the input to a MR job?

我的输入数据的关键类是WritableComparable,它以MapFile的形式存在。有没有什么方法可以设置最小和最大键值,并且只将记录传输到键值介于两者之间的映射器? 最佳答案 这是不可能的。因为对于map-reduce作业,我们只是指定输入。我们可以做的一件事是,在映射器中编写一个条件。如果键是黑白最小值和最大值,则只处理键值对并将输出发送到reducer。否则,什么都不做。但即使在这种情况下,我们的map阶段也会处理所有输入,而reduce阶段只会处理我们指定的键范围。更好的方法:当在给定输入上运行map-reduce作业

hadoop - 仅在 mapreduce 模式下出现 Pig 0.13 错误

我将clouderaCDH5与Pig0.13(也尝试过Pig0.12.1)一起使用,并且正在构建自己的自定义loadFunc,并且我有一个简单的脚本,它只使用新的loadFunc进行加载。在local模式下运行时一切正常,输出正确。但是当以mapreduce模式运行时(仍在本地),我得到错误:Unabletoopeniteratorforaliasoutput_hashatorg.apache.pig.PigServer.openIterator(PigServer.java:880)atorg.apache.pig.tools.grunt.GruntParser.processDum

hadoop - 使用 MapReduce 的 Hive 表数据

我在Linux(CentOS)中执行MapReduce作业时遇到以下错误。我在类路径中添加了所有的jar。数据库名称和表名称已经在配置单元数据库中,表中有一些数据列。然后我也无法访问配置单元数据库表中的数据。我在工作中使用vanilla版本的hadoop。我是否需要通过mysql驱动程序路径、配置单元的用户名和密码来编辑hive-site.xml文件?。如果是,请告诉我为配置单元添加用户名和密码的过程。提前谢谢你murali]#hadoopjar/home/murali/workspace/hadoop/HiveInputForMapper/target/HiveInputForMap

hadoop - 为什么 Spark 可以选择下载预构建的 MapReduce 4.x?

我刚刚开始使用Hadoop。我看到Spark是一个号称比MapReduce更快的执行引擎,所以我想尝试一下。据我了解,MapReduce也是一个执行引擎。那么为什么Spark可以选择下载为Mapreduce4.x构建的Spark?我的意思是我不明白这2个如何放在同一个堆栈中?如有任何帮助,我们将不胜感激!谢谢! 最佳答案 whydoesSparkhasanoptiontodownloadSparkbuiltforMapreduce4.x?事实并非如此。它可以选择下载为MapR4.x构建的spark。MapRiscompany开发Ha

java - mapreduce 二次排序不起作用

我正在尝试使用包含以下内容的复合键在mapreduce中进行二次排序:Stringnatural-key=程序名用于排序的长键=自1970年以来以毫秒为单位的时间问题是在排序后我根据整个复合键得到了很多缩减器通过调试,我已经验证了哈希码和比较函数是正确的。从调试日志中,每个block都来自不同的reducer,它表明分组或分区没有成功。来自调试日志:14/12/1400:55:12INFOpopularitweet.EtanReducer:key=thevoice14/12/1400:55:12INFOpopularitweet.EtanReducer:thevoice:ThuDec1

xml - 使用 Hadoop MapReduce 处理 XML

我想加载和解析一些PB的XML数据。在对如何在hadoop中处理XML进行了大量研究之后,我开始知道XML必须在MapReduce中作为整个文件进行处理。如果我将整个XML作为单个输入拆分提供给我的MapReduce,那么它将不会利用hadoop的分布式和并行处理功能,因为只有一个Mapper将进行处理。我的理解正确吗?如何克服这个问题?请推荐 最佳答案 您可以尝试使用Mahout的XMLInputFormat.XMLInputFormat负责使用指定的开始和结束标记确定XML输入文件中的记录边界。你可以使用这个link作为如何使用

java - MapReduce 能否用于从一个巨大的文件中有效地求和整数?

[文件太大,无法读入RAM。]这是我的公式:映射器将获取每个整数x并发出('anything',x)。在排序阶段,所有键值对将按键分组:('anything',[x1,x2,x3,...])。reducer会将每个键的所有整数相加并发出总和。但是因为我对所有键值对都有相同的键,所以效率不是很低吗,因为会有1个reducer将所有整数相加?使用MapReduce解决这个问题的正确方法是什么? 最佳答案 要在一台机器上计算这个,你不需要一次把整个文件都放在RAM中,但如果文件足够大,需要很长时间才能通过一台机器流式传输它,那么你会发现一

java - Hadoop Mapreduce - 来自 10000 对列表的前 n 个和后 n 个值

我有一个3000+字符串键值对和来自mapreduce程序reducer部分的长数据类型。说{"Aman":2.121212,"Bob":0.343434}。如何根据mapreduce中的值获取前10个和后10个条目?前10名{100,摇滚}2.{99.98765,巴尔博亚}...后10个{0.00976,塔迪斯}2.{0.555,塔基夫}..等等我的一个解决方案是让它们映射{1:"Aman|2.1222"}、{1:"Bob|0.343434"}.....等,然后减少相位字符串拆分值。使用树状图和列表来存储所有值。发出前10个TreeMap并调用降序map接口(interface)并发

python - 以文本文件和 oracle 表为源,Hive 或 Pig 或 Python Mapreduce 哪个能提供最佳性能?

我有以下要求,对选择哪一个以获得高性能感到困惑。我不是Java开发人员。我对Hive、Pig和Python很满意。我正在使用带有tez引擎的HDP2.1。数据源是文本文件(80GB)和Oracle表(15GB)。两者都是结构化数据。我听说Hive将适用于结构数据,Pythonmapreducestreaming概念也将比hive&Pig具有更高的性能。请说清楚。我正在使用Hive,原因是:需要基于一列加入这两个来源。数据量大,使用ORC格式表存储join结果文本文件名将用于生成一个输出列,并且已使用虚拟列概念input__file__name字段执行。加入后需要对每一行做一些算术运算,