草庐IT

fft-with-mapreduce

全部标签

java - MapReduce 程序中的洗牌步骤是否与映射并行运行?

我试图理解一个MapReduce程序。这样做时,我注意到在所有映射任务完成后,reduce任务几乎立即开始执行。现在,这是令人惊讶的,因为那里的reduce任务处理按键分组的数据,这意味着在其间完成了洗牌/排序步骤。发生这种情况的唯一方法是改组与映射并行进行。其次,如果洗牌确实与映射并行完成,那么在ApacheSpark中相当于什么?映射和按键分组和/或排序也可以在那里并行发生吗? 最佳答案 Hadoop的MapReduce不仅仅是map和reduce阶段,还有其他步骤,例如组合器(map-sidereduce)和合并,如下图所示(

api - 我在哪里可以下载所有必要的类来编写 Hadoop MapReduce 作业?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我最近开始使用Hadoop,并且一直在学习如何编写MapReduce作业。在整个互联网上,我可以找到编写MapReduce作业的示例和教程,但它们都包含类似于“importorg.apache.hadoop.util.*;”的导入语句。我找不到从哪里下载这些类(class),在找到它们之前我什至无法开始写作业。我在哪里可以下载必要的插件?我已经尝试了Hadoop下载附带的插件,我还尝试了IBM分

java - 使用 oozie 为 mapreduce 作业写入多个输出流的正确方法是什么?

我正在使用新的HadoopAPI编写一系列map-reduce作业。我打算使用Oozie将所有这些管道连接在一起,但我似乎无法找到一种方法来从工作流中的map-reduce节点执行多个输出流。通常要编写多个输出,我会使用类似于MultipleOutputsjavadoc中给出的代码的代码,但oozie从workflow.xml文件中获取所有配置,因此无法像示例中那样配置命名输出。我遇到了一个thread讨论了Oozie中多个输出的使用,但除了创建Java任务并将其直接添加到Oozie管道之外,没有提出任何解决方案。有没有办法通过workflow.xml中的map-reduce节点来实现

java - Hadoop Mapreduce 多个输入文件

所以我需要两个文件作为我的mapreduce程序的输入:City.dat和Country.dat在我的主要方法中,我像这样解析命令行参数:PathcityInputPath=newPath(args[0]);PathcountryInputPath=newPath(args[1]);PathoutputPath=newPath(args[2]);MultipleInputs.addInputPath(job,countryInputPath,TextInputFormat.class,JoinCountryMapper.class);MultipleInputs.addInputPat

hadoop - Hive 和 Hadoop MapReduce 之间的关系?

是否有任何连接到reduce或map任务的Hive内部进程?添加到那个!Hive如何与MapReduce结合使用?工作是如何安排的?查询结果如何返回给hivedriver? 最佳答案 对于HIVE,没有直接通信Map/Reduce任务的过程。它与Jobtracker(YARN中的ApplicationMaster)进行通信(流程6.3),仅用于一旦安排好作业处理相关的事情。这张图片将使您清楚地了解,HowHIVEusesMapReduceasexecutionengine?Howisthejobgettingscheduled?Ho

streaming - Hadoop 或 Hadoop Streaming for MapReduce on AWS

我即将开始一个将在AWS上运行的mapreduce项目,我面临一个选择,是使用Java还是C++。我知道用Java编写项目会使我可以使用更多功能,但是C++也可以通过HadoopStreaming实现它。请注意,我对这两种语言都没有什么背景。一个类似的项目已经用C++完成,代码可供我使用。所以我的问题是:这个额外功能是通过AWS提供的,还是仅在您对云有更多控制权时才相关?为了做出决定,还有什么我应该牢记的,比如hadoop插件的可用性,可以更好地使用一种语言或另一种语言?提前致谢 最佳答案 您有几个选项可以在AWS上运行Hadoop

hadoop - mapreduce 中间键排序的网络带宽瓶颈?

我一直在学习mapreduce算法以及它如何潜在地扩展到数百万台机器,但我不明白映射阶段之后中间键的排序如何扩展,因为会有:1,000,000x1,000,000:潜在的机器相互交流中间结果的小键/值对?这不是瓶颈吗? 最佳答案 的确,HadoopMapReduce的瓶颈之一是集群上机器之间的网络带宽。但是,每个映射阶段的输出不会发送到集群中的每台机器。map和reduce函数的数量由您正在运行的作业定义。每个map处理其输入数据,对其进行排序以对键进行分组并将其写入磁盘。该作业定义了您希望将多少个reduce函数应用于map的输出

json - 使用 java Mapreduce 处理 JSON

我是hadoopmapreduce新手我有输入文本文件,其中数据存储如下。这里只有几个元组(data.txt){"author":"SharīfQāsim","book":"al-Rabīʻal-manshūd"}{"author":"NāṣirNimrī","book":"AdībʻAbbāsī"}{"author":"MuẓaffarʻAbdal-MajīdKammūnah","book":"AsmāʼAllāhal-ḥusnáal-wāridahfīmuḥkamkitābih"}{"author":"ḤasanMuṣṭafáAḥ

R+Hadoop : How to read CSV file from HDFS and execute mapreduce?

在下面的例子中:small.ints=to.dfs(1:1000)mapreduce(input=small.ints,map=function(k,v)cbind(v,v^2))mapreduce函数的数据输入是一个名为small.ints的对象,它引用了HDFS中的block。现在我有一个CSV文件已经存储在HDFS中"hdfs://172.16.1.58:8020/tmp/test_short.csv"如何为它获取一个对象?据我所知(这可能是错误的),如果我想将CSV文件中的数据作为mapreduce的输入,我必须首先在R中生成一个表,其中包含CSV文件中的所有值。我确实有这样的

Hadoop 纱 : How to limit dynamic self allocation of resources with Spark?

在我们在Yarn下运行的Hadoop集群中,我们遇到了一个问题,即一些“更聪明”的人能够通过在pySparkJupyter笔记本中配置Spark作业来消耗大得多的资源block,例如:conf=(SparkConf().setAppName("name").setMaster("yarn-client").set("spark.executor.instances","1000").set("spark.executor.memory","64g"))sc=SparkContext(conf=conf)这导致了这些人从字面上排挤其他不那么“聪明”的人的情况。有没有办法禁止用户自行分配资