草庐IT

Iterator-reducer

全部标签

hadoop - 在 AWS Elastic Map Reduce 中禁用 Gzip 输入解压缩

我正在Gzipped.arc文件上运行MapReduce任务。类似于此question,我遇到了困难,因为Gzip解压缩是自动运行的(因为文件有.gz扩展名),但它导致换行符/回车符按照Unix文件编码被渲染为换行符的问题。这使得输入完全不可读,因为它取决于文件中嵌入的特定字符数。我正在尝试禁用Gzip解压缩,以便我可以在我的映射器中正确地执行它。我试过:-jobconfstream.recordreader.compression=none但这似乎并不影响压缩。有什么方法可以防止对我的输入进行Gzip解压缩?谢谢,-Geoff 最佳答案

hadoop - 使用消息队列的分布式计算 VS Map/Reduce

上下文:我们正在考虑使用符合AMQP标准的解决方案来计算每天90GB的恒定实时数据流。我们想要实现的是实时统计数据,或多或少,基于我们正在观察的所有指标或指标的某些组合。考虑的策略是在队列上发送数据并让工作进程处理数据的增量,将数据作为原始数据的聚合发送回队列。观察:对我来说,这看起来像是Hadoop之类的工作,但人们提出了担忧(和防护),主要是关于速度。我没有时间对两者进行基准测试,尽管我们期望通过队列(在10~100mb/s附近的任何地方)抽取大量数据。我仍然认为它看起来像是分布式计算系统的工作,而且我也觉得队列解决方案的可扩展性比分布式计算解决方案差。问题:简而言之,我说得对吗?

hadoop - 如何使用 hadoop Map reduce 处理/提取 .pst

我正在使用MAPI工具(它的microsoftlib和在.NET中),然后使用apacheTIKA库来处理和提取pst交换服务器,这是不可扩展的。我如何使用MR方式处理/提取pst...Java中是否有任何工具和库可供我在我的MR作业中使用。任何帮助都会很棒。JpstLib内部使用:PstFilepstFile=newPstFile(java.io.File)问题是对于HadoopAPI,我们没有任何接近java.io.File的东西。以下选项始终存在但效率不高:FiletempFile=File.createTempFile("myfile",".tmp");fs.moveToLoc

java - 在 Hadoop 中拆分 Reducer 输出

我的Reduce操作产生的输出文件很大(Gzip后1GB)。我希望它将中断输出生成200MB的较小文件。是否有属性/Java类可以按大小拆分减少输出。线?我不能增加reducer的数量,因为这会对hadoop作业的性能产生负面影响。 最佳答案 我很好奇为什么你不能只使用更多的reducer,但我会相信你的话。您可以做的一个选择是使用MultipleOutputs并从一个reducer写入多个文件。例如,假设每个reducer的输出文件为1GB,而您想要256MB的文件。这意味着您需要为每个reducer写入4个文件,而不是一个文件。

hadoop - 如何限制在 map reduce 作业中发送到 reducer 的记录数?

我有一个超过300000行的文件,它是mapreduce作业的输入,我希望该作业仅处理该文件的前1000行。有什么好的方法可以限制发送到reducer的记录数吗?我只需要一个简单的identityreducer就可以写出我的输出。目前,reducer写出的行数与输入中的行数一样多。 最佳答案 首先,确保您的mapreduce程序设置为仅使用一个reducer。它必须明确设置,否则Hadoop可能会选择其他一些数字,然后就没有好的方法来协调reduce任务以确保它们发出的总数不超过1000。然后,您可以简单地在Reducer类中维护一

java - 向 reducer-MapReduce 发送多个参数

我编写了一个代码,它执行类似于SQLGroupBy的操作。我拿的数据集在这里:250788681419,20090906,200937,200909,619,SUNDAY,WEEKEND,ON-NET,MORNING,OUTGOING,VOICE,25078,PAY_AS_YOU_GO_PER_SECOND_PSB,SUCCESSFUL-RELEASEDBYSERVICE,17,0,1,21.25-10-1452-1452-17publicclassMyMapextendsMapper{publicvoidmap(LongWritablekey,Textvalue,Contextcon

hadoop - 将 map reduce 作业的输出记录到文本文件

我一直在使用这个jobclient.monitorandprintjob()方法将mapreduce作业的输出打印到控制台。我的用法是这样的:job_client.monitorAndPrintJob(job_conf,job_client.getJob(j.getAssignedJobID()))输出结果如下(打印在控制台):13/03/0407:20:00INFOmapred.JobClient:Runningjob:job_201302211725_1013913/03/0407:20:01INFOmapred.JobClient:map0%reduce0%13/03/0407:

hadoop - 如何在 Hadoop Reducer 中创建一个新的唯一键

在HadoopReducer中,我想在特定条件下创建和发出新键,并且我想确保这些键是唯一的。我想要的伪代码是这样的:@Overrideprotectedvoidreduce(WritableComparablekey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{//dostuff://...//writeoriginalkey:context.write(key,data);//writeextrakey:if(someConditionIsMet){WritableComparableext

hadoop - 在 Reduce 阶段 (HADOOP) 多次迭代键/值?

如何对在HADOOP的Reduce阶段收到的键/值对进行多次迭代。我想做类似的事情,但它没有进入第2次迭代。for(Vectorvalue:values){sum+=value.getVector()[length-1];for(inti=1;i请给我解决方案???谢谢:) 最佳答案 您正在遍历values中的结果,一旦您遍历了它们,您就不能再这样做了。如果values中的总数不太大,您可以尝试将值设置为本地集合变量,然后您应该能够多次迭代它们。试试这个:Java:useEnumerationmultipletimes

hadoop - 伪分布数 map 和 reduce 任务

我是Hadoop的新手。我已经在伪分布式模式下成功配置了一个hadoop设置。现在我想知道选择map和reduce任务数量的逻辑是什么。我们指的是什么?谢谢 最佳答案 您无法概括要设置的映射器/缩减器的数量。映射器数量:您不能将映射器的数量显式设置为某个数量(有参数可以设置,但不会生效)。这取决于hadoop为给定的输入集创建的InputSplits的数量。您可以通过设置mapred.min.split.size参数来控制它。有关更多信息,请阅读InputSplit部分here.如果由于大量小文件而生成大量映射器,并且您想减少映射器