草庐IT

Iterator-reducer

全部标签

sorting - Hadoop - 按键正确排序并按 reducer 分组

我有一些数据来自reducer,它们是这样的:9,235,722,301,536,304,227,11我想根据第二列的数字对它们进行排序。像这样:2,306,307,115,724,221,539,23当我在本地运行我的程序时,我使用:sort-k2,2n但我不知道如何在Hadoop上做同样的事情。我尝试了几个不起作用的选项,例如:-Dmapreduce.partition.keycomparator.options=-k2,2n而且,我希望所有具有相同key的数据都可以在同一个reducer上运行。所以在这种情况下:2,30和6,30应该由同一个reducer处理。关于我应该放在ha

sorting - 如何对 Reducer 输出中的逗号分隔键进行排序?

我正在使用MapReduce运行RFM分析程序。OutputKeyClass是Text.class,我将以逗号分隔的R(Recency)、F(Frequency)、M(Monetory)作为Reducer的键,其中R=BigInteger、F=Binteger、M=BigDecimal,值也是一个文本代表Customer_ID。我知道Hadoop根据键对输出进行排序,但我的最终结果有点奇怪。我希望输出键首先按R排序,然后是F,然后是M。但由于未知原因,我得到以下输出排序顺序:545,1,7652100000545,23,390159.402343750100001452,13,1325

hadoop - Map Reduce 的 Map 函数可以调用 Amazon Map Reduce 中的(外部)Web 服务吗?

我必须用Java编写一个MapReduce作业,在其中我获得了位置(城市、州、国家/地区),我需要将它们转换为纬度/经度坐标,其详细信息由外部Web服务提供:GoogleGeocodingAPI-我的问题是是否允许从MapReduce作业的Map函数调用HTTP请求,即:公共(public)类GeoLocator{privatestaticStringgenderCheck="female";publicstaticclassMapextendsMapReduceBaseimplementsMapper{//CALLEXTERNALWEBSERVICEHERE}..}

hadoop - 迭代 map 减少工作。如何获取 reducer 输出并将其提供给下一阶段?

具体来说,我正在尝试找到一种使用mapreduce计算图中最短路径的方法。我想出的那个似乎需要多轮mapreduce。然而,到目前为止,我在Hadoop上阅读的所有文档似乎都没有清楚地描述运行具有多个阶段的mapreduce作业。从第一阶段的reducer中获取输出,并将其作为输入提供给下一阶段的映射器。我希望Hadoop允许像他这样的东西。 最佳答案 我在这里写了博客:http://codingwiththomas.blogspot.com/2011/04/controlling-hadoop-job-recursion.html

Hadoop - Reducer 正在等待 Mapper 输入?

如标题中所述,当我执行我的Hadoop程序(并在本地模式下调试它)时,会发生以下情况:1.我的测试数据中的所有10个csv行都在Mapper、Partitioner和在映射步骤之后调用的RawComperator(OutputKeyComparatorClass)中得到正确处理。但是OutputValueGroupingComparatorClass和ReduceClass的函数之后不会执行。2.我的应用程序如下所示。(由于空间限制,我省略了我用作配置参数的类的实现,直到有人有想法,涉及它们):publicclassRetweetApplication{publicstaticintD

map - 在没有 Hdfs 的情况下运行 jar 文件 map reduce

我已经从我的eclipse项目中捆绑了一个jar。我想将参数传递给jar。基本上是jar的输入文件。我想知道如何提供不在Hdfs中的输入文件。我知道那不是现在hadoop的作品,但这是为了测试目的。Eclipse具有本地文件的功能。有没有办法通过命令行来做到这一点? 最佳答案 您可以通过从命令行覆盖作业跟踪器和文件系统属性,以“本地”模式运行hadoop:hadoopjar-fslocal-jtlocal您需要使用GenricOptionsParser(如果您使用ToolRunner来启动您的工作,这是常态。

hadoop - 如何中止映射器(或 reducer )内的 MR 作业

我试图在map方法中抛出IOExceptions,但MR作业没有停止。在抛出大量IOException后,作业将停止。有没有办法通过抛出异常或一些简单的调用来停止整个工作?谢谢。 最佳答案 这不是Hadoop的理想用例,也不是好的做法,但您可以直接从代码内部扼杀您的工作。因此,每当您达到希望工作停止的状态时,记录需要的内容并终止您的工作。这可以使用旧的mapredAPI或使用Job.killJob()来完成RunningJob.killjob()。您应该分别在configure()或setup()中获取对RunningJob或Job

java - 用于散列的 Hadoop Map Reduce 程序

我在Hadoop中编写了一个MapReduce程序,用于对文件的所有记录进行哈希处理,并将哈希值作为附加属性附加到每条记录,然后输出到Hadoop文件系统这是我写的代码publicclassHashByMapReduce{publicstaticclassLineMapperextendsMapper{privateTextword=newText();publicvoidmap(Textkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{key.set("single")Stringline=valu

Hadoop Map Reduce,如何将第一个reducer输出和第一个map输入结合起来,作为第二个mapper的输入?

我需要使用mapreduce实现一个功能。要求如下。映射器的输入是一个包含两列productId和Salescount的文件Reducersoutput,salescount总和要求是我需要计算salescount/sum(salescount)。为此,我打算使用嵌套的mapreduce。但是对于第二个映射器,我需要使用第一个reducer输出和第一个映射的输入。我怎样才能实现这个。或者有什么替代方法吗?问候维努 最佳答案 您可以按照自己的方式使用ChainMapper和ChainReducer到PIPEMappers和Reduce

hadoop - 使用 map reduce 在 cassandra 中执行批量加载

我没有太多使用cassandra的经验,所以如果我采用了错误的方法,请原谅。我正在尝试使用mapreduce在cassandra中进行批量加载基本上是字数统计的例子引用:http://henning.kropponline.de/2012/11/15/using-cassandra-hadoopbulkoutputformat/我已经放置了简单的HadoopWordcountMapper示例,并根据上面的示例稍微修改了驱动程序代码和reducer。我也成功生成了输出文件。现在我的疑问是如何执行加载到cassandra部分?我的方法有什么不同吗?请指教。这是驱动代码的一部分Jobjob=