草庐IT

shift-reduce

全部标签

hadoop - MR reducer 中的输出 HBase 增量

我有一个写入HBase的mapreduce作业。我知道您可以使用TableMapReduceUtil从reducer输出Put和Delete。是否可以发出Increment来增加HBase表中的值,而不是发出Puts和Gets?如果是,怎么做,如果不是,那为什么?我正在使用CDH3publicstaticclassTheReducerextendsTableReducer{publicvoidreduce(Textkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{///....DOSOMES

python-2.7 - java.io.IOException : Broken pipe on increasing number of mappers/reducers, 很多

我在6个节点的hadoop集群上运行MapReduce作业,配置了4个映射任务和10个缩减任务。Mapper/Reducer在增加map/reduce任务数量时失败很多,如下所示,我遇到以下错误:标准错误日志java.lang.RuntimeException:PipeMapRed.waitOutputThreads():subprocessfailedwithcode143atorg.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362)atorg.apache.hadoop.streamin

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