草庐IT

mapreduce_shuffle

全部标签

hadoop - 大 gz 文件上的 Mapreduce

我有一个大约120GB的大gz文件。我想对其运行mapreduce,但由于gz文件不可分割,因此只有一个映射器能够一次处理该文件。该文件存在于hdfs和本地。我正在考虑的可能选项:1)解压那个gz文件并将其存储在hdfs中:首先,解压文件和将解压数据放入hdfs会花费太多时间。此外,我无法直接在hdfs中解压缩文件,因为hdfs没有zcat或gunzip命令。所以我必须做zcata.gz|hdfsdfsput-/path/in/hdfs。此外,这将在hdfs中占用大量空间(大约是gz的4倍)2)将文件拆分为小文件(每个大约1GB)并对其进行处理:最佳选择,但遗憾的是无法正常工作。我正在

java - 一个 mapreduce 程序的输出作为另一个 mapreduce 程序的输入

我正在尝试一个简单的示例,其中一个MapReduce作业的输出应该是另一个MapReduce作业的输入。流程应该是这样的:Mapper1-->Reducer1-->Mapper2-->Reducer2(Mapper1的输出必须是Reducer1的输入,Reducer1的输出必须是输入Mapper2的输出。Mapper2的输出必须是Reducer2的输入。Reducer2的输出必须存储在输出文件中)。如何将多个Mappers和Reducers添加到我的程序中,以便像上面那样保持流程?我需要使用ChainMappers还是ChainReducers?如果可以,我该如何使用它们?

java - 如何在hadoop中的mapreduce java代码中限制reduce作业的数量

我是Hadoop的新手,我想限制我的应用程序中减少作业的数量。在集群中,reduce作业的最大数量是120。但是,我不想使用所有这些,因为我的应用程序不需要那么多的reduce作业。我尝试了下面的解决方案,但没有任何改变。我的应用程序仍然使用120个reduce作业。如何设置reduce作业的数量?https://stackoverflow.com/questions/33237361/unable-to-set-mapreduce-job-reduces-through-generic-option-parser感谢您的回复。 最佳答案

hadoop - 如何在非mapreduce java程序中读取 Parquet 模式

有没有一种方法可以在不使用mapreduce的情况下通过获取元数据来直接读取Parquet文件列名。请举一些例子。我使用snappy作为压缩编解码器。 最佳答案 您可以使用ParquetFileReader或使用现有工具https://github.com/Parquet/parquet-mr/tree/master/parquet-tools用于使用命令行读取Parquet文件。 关于hadoop-如何在非mapreducejava程序中读取Parquet模式,我们在StackOver

Hadoop 2.7.0 - MapReduce 作业未运行 - 因 AM 容器错误而失败

我在Fedora22虚拟机上以伪节点模式使用Hadoop2.7.0。几天前,MapReduce作业运行良好,但在安装Oozie并对yarn-site.xml进行了修改之后。我在运行Pi示例作业时遇到以下错误,我可能无法调试错误,已编辑-我使用命令行运行作业,不使用oozie工作流引擎..命令-hadoopjar10100StartingJob15/12/1715:22:05INFOclient.RMProxy:ConnectingtoResourceManagerat/192.168.122.1:803215/12/1715:22:06INFOinput.FileInputFormat

hadoop - 在 MapReduce 的一个 Mapper 中读取下一行

我有一个文本输入文件,它由换行符分隔。在每个映射器中,我需要读取我的键/值的下一行。例如,在这个数据中:L1L2L3我需要这样的东西:L1L2在下一个映射器中:L2L3提前致谢。 最佳答案 除了CustomInputFormat之外,您还可以像Map一样在集合中存储行前,并在每次下次调用时访问它例子: 关于hadoop-在MapReduce的一个Mapper中读取下一行,我们在StackOverflow上找到一个类似的问题: https://stackover

hadoop - 如何从 mapreduce 中的 reducer 输出中删除 r-00000 扩展

我能够正确重命名我的reducer输出文件,但r-00000仍然存在。我在我的reducer类中使用了MultipleOutputs。这是那个的详细信息。不确定我遗漏了什么或我还需要做什么?publicclassMyReducerextendsReducer{privateLoggerlogger=Logger.getLogger(MyReducer.class);privateMultipleOutputsmultipleOutputs;StringstrName="";publicvoidsetup(Contextcontext){logger.info("InsideReduce

java - Hadoop 上的 MapReduce - 将数据从 Mapper 发送到 Reducer

我正在尝试针对特定问题实现MapReduce算法。假设在我的Mapper中我需要处理一个大型文本对象。以下示例总结了我的问题。我有文本对象:Todayisalovelyday我需要对这些词做一些处理。所以我有两个选择:我可以将以下形式的键值对发送到Reducer:我可以发送键值对到reducer然后处理它,例如标记化字符串对象。这种情况的最佳方法是什么?在第一种情况下,我必须向reducer发送更多数据,但我没有像第二种情况那样要标记化的字符串对象。但是在第二种情况下,Mapper发送的数据量较小。 最佳答案 我认为您不会通过这种方

hadoop - 了解 Hadoop 1.x 中的 MapReduce

对于Hadoop1.x中的“MapReduce”这个术语,我有点困惑。关于这一点,我遇到了各种术语,例如:JobTracker、TaskTracker(MapReduce中的守护进程)。现在,当我们说MapReduce时,它​​指的是这些守护进程还是开发人员用来编写MapReduce应用程序代码的API?用户应用程序是否在TaskTracker、JobTracker上执行?MapReduce本身是一个运行时环境吗?谁能用简单的话帮我理解一下? 最佳答案 MapReduce是用于数据处理的编程模型(在Hadoop中)。它在Hadoop

hadoop - Hadoop MapReduce 中每个阶段产生的中间数据存储在哪里?

我学习hadoopmapreduce有一段时间了,大家知道,hadoop使用hdfs把数据文件存储在硬盘上,我们运行mapreduce的时候,progran从hdfs中获取数据,但是在mapreduce的各个阶段,数据从哪里获取存储?我得到了一些答案hsfs运行mapreduce的本地硬盘 最佳答案 一般map和reduce任务生成的中间数据文件都存放在本地磁盘上运行MapReduce的目录(位置)中。该目录包含:map任务生成的输出文件用作reduce任务的输入。reduce任务生成的临时文件。临时数据位置由mapreduce.c