草庐IT

mapReduce

全部标签

hadoop-mapreduce reducer-combiner 输入

我正在学习一些MapReduce,但遇到了一些问题,情况如下:我有两个文件:“用户”包含用户列表以及他们的一些数据(性别、年龄、国家等...)文件如下所示:user_000003m22UnitedStatesOct30,2005“songs”包含所有用户收听的歌曲数据(userid、收听日期和时间、artistid、artistname、songid、songtitle):user_0009992008-12-11T22:52:33Zb7ffd2af-418f-4be2-bdd1-22f8b48613daNineInchNails1d1bb32a-5bc6-4b6f-88cc-c043

java - 复杂的 MapReduce 配置场景

考虑一个应用程序,它想要使用Hadoop来处理大量专有二进制编码的文本数据,大致如下简化的MapReduce序列:获取文件或目录的URL作为输入读取在输入URL下找到的二进制文件列表从每个文件中提取文本数据将文本数据保存到新的、提取的纯文本文件中将提取的文件分类为具有特殊特征(例如,“上下文”)的(子)格式如有必要,根据上下文拆分每个提取的文本文件使用原始(未拆分)文件的上下文处理每个拆分将处理结果提交给专有数据存储库第5步中识别的格式特定特征(上下文)也作为键值对保存在(小)文本文件中,以便第6步和第7步可以访问它们。第6步中的拆分使用自定义InputFormat类(每个自定义文件格

java - 多输出路径(Java - Hadoop - MapReduce)

我做了两个MapReduce作业,我希望第二个作业能够将我的结果写入两个不同的文件,在两个不同的目录中。在某种意义上,我想要类似于FileInputFormat.addInputPath(..,multipleinputpath)的东西,但对于输出。我是MapReduce的新手,我有一个特点是在Hadoop0.21.0中编写我的代码我在Reduce步骤中使用了context.write(..),但我不知道如何控制多个输出路径...感谢您的宝贵时间!我的第一份工作中的reduceCode,向您展示我只知道如何输出(它进入/../part*文件。但现在我想要的是能够为不同的输出指定两个精确

hadoop - 防止 MapReduce 程序中的输入拆分

我需要将文件输入到map-reduce程序。但该文件不应该被拆分并作为一个整体传递给map函数。一个选项是将issplitable设置为false,但我该怎么做? 最佳答案 1)当您的文件具有.gz扩展名时,通常isSplitable返回false。或2)您可以编写自己的InputFormat来覆盖isSplitable。或3)不要试图让isSplitable返回false。而是将文件的block大小设置为大于文件大小:hadoopfs-Dfs.local.block.size=1000000000-putlocal_namerem

java - Hadoop MapReduce RecordReader 实现是否必要?

来自HadoopMapReduce上的Apache文档InputFormat界面:"[L]ogicalsplitsbasedoninput-sizeisinsufficientformanyapplicationssincerecordboundariesaretoberespected.Insuchcases,theapplicationhastoalsoimplementaRecordReaderonwhomliestheresponsibiltytorespectrecord-boundariesandpresentarecord-orientedviewofthelogical

hadoop - 如何在 MapReduce 中使用多个字段?

我想了解如何使用MapReduce模型聚合多个字段。例如,如果我有这样一个数据文件:id,site,name,qty,price00,testA,NameA,1,101,testB,NameA,2,302,testB,NameB,5,7并希望在MapReduce上实现此聚合:selectsite,name,(qty*price)astotalfromPOwherename='NameA'groupbysite,name,totalorderbysite;我该怎么做。我可以按站点(键)、总计(值)进行汇总,但不确定如何包含名称列。我需要了解如何在MapReduce中处理多个字段。有没有我

hadoop - 如何使用 Hadoop MapReduce 索引一个非常大的图?

我有一个长文本文件形式的非常大的图(1000亿个链接,1TB),其中每一行定义图弧。引用文件page1,page2page3,page10page5,page1...pageN,pageM其中pageN可以是任何网页。为了节省空间,我想将此图转换为索引版本(包含两个文件)。索引文件(节点文件):page1,1page2,2page3,3page4,4...pageN,N和arc文件(链接):1,23,105,1...N,M是否有任何MapReduce(Hadoop、Pig等)算法可以有效地进行这种转换? 最佳答案 有了Pig,这很容

hadoop - HIVE 查询与 Hadoop 提供的 mapreducer 数量之间的关系?

我在HIVEshell中执行一个查询SELECTtradeId,bookid,foidfromtradeswherebookid='"ABCDEFG"'"trades"表在bookid上有索引。当查询运行时,它显示Mappers和Reducers的详细信息如下:-Numberofreducetasksissetto0sincethere'snoreduceoperatorHadoopjobinformationforStage-1:numberofmappers:48;numberofreducers:0Timetaken:**606.183seconds**,Fetched:**18

python - MapReduce 中的数据如何在数据节点之间分区和分布?

我是MapReduce的新手,我的任务是处理大数据(记录行)。我应该使用的一件事是我的映射器中特定记录的行号,然后reducer根据映射器处理行号信息。例如,假设现在我有一个非常大的input.txt,每一行看起来是这样的:1.Melo,apple,orange2.orange,perl3.apple,banana,car...10000.Apple...如果我想根据苹果的出现行数来计算苹果的出现,然后计算这些不同水果之间的关系,比如:Apple=>orange我可以将键/值对中的值设为行号列表吗?但是由于我不知道如何为不同的数据节点分区数据,因此原始输入文件的行号信息将会丢失。我不知

java - 在 hadoop 的迭代作业中,在每个拆分的 mapreduce 输入文件上附加相同的字符串(先前的结果)

我是Hadoop新手,我正在编写一个迭代MapReduce作业。我知道使用Hadoop,从一个大数据集开始,它将被拆分成小文件,然后将它们作为输入发送到不同机器上的mapfunction。我只是成功地将MapReduce的结果追加到输出文件的末尾,但是在这种迭代作业中,这个结果将只发送到一台机器。所以我想将结果附加到发送到每台机器的每个拆分文件中,这样任何机器都可以看到以前的结果。我该怎么做? 最佳答案 在您的Map方法中,您可以将输出附加到一个常见的HDFS文件,而不是写入上下文对象。但是如果多个映射任务试图追加文件,你会得到错误