草庐IT

mapreduce_shuffle

全部标签

java - 如何远程运行 mapreduce 作业

我在尝试远程运行map-reduce作业(字数统计示例)时遇到了一些问题。在谷歌上搜索后,我仍然无法实现我的目标。而且我只看到很少关于远程调用map-reduce作业的主题。以下是问题:首先,我遇到权限问题:SEVERE:PriviledgedActionExceptionas:[user]cause:org.apache.hadoop.security.AccessControlException:org.apache.hadoop.security.AccessControlException:Permissiondenied:user=[user],access=WRITE,in

java - 从 Java 应用程序在 hadoop 2.2 (Yarn) 上启动 mapreduce 作业

我正在尝试从Java应用程序调用mapreduce作业。在以前的hadoop版本(1.x)中,我创建了一个Configuration对象和一个Job对象,在Configuration中设置mapred.job.tracker和fs.default.name并运行工作。现在,在hadoop2.x中,jobtracker不再存在,也不存在任何关于如何以编程方式运行MR1作业的文档。有什么想法吗?我正在寻找的是这里给出的解释:Callingamapreducejobfromasimplejavaprogram 最佳答案 MRClientA

python - 如何在 python 中为 warc 文件编写流式 mapreduce 作业

我正在尝试使用WARClibrary为warc文件编写mapreduce作业python。以下代码对我有用,但我需要此代码来执行hadoopmapreduce作业。importwarcf=warc.open("test.warc.gz")forrecordinf:printrecord['WARC-Target-URI'],record['Content-Length']我希望此代码从warc文件读取流式输入,即zcattest.warc.gz|warc_reader.py请告诉我如何修改此代码以进行流式输入。谢谢 最佳答案 war

java - 无法访问 MapReduce 的 reducer 类中的计数器

我通过以下方式增加映射器的计数器publicstaticclassTokenizerMapperextendsMapper{publicstaticenumMyCounters{TOTAL};context.getCounter(MyCounters.TOTAL).increment(1);.我试图通过以下方式在reducer类中获取此计数器的值。@Overridepublicvoidsetup(Contextcontext)throwsIOException,InterruptedException{Configurationconf=context.getConfiguration

java - 使用 hadoop mapreduce 识别文件夹中的文件扩展名以处理文件

我需要处理一个包含文本文件的文件夹。文本文件可以是任何扩展名。对于每个扩展,我们需要单独的自定义读取器来在hadoop中处理该文件。folder1/Data1.pdfData2.xmlData3.htmlData4.txtData5.csv获取文件夹中文件的扩展名并为我的MR作业设置自定义输入格式的更好方法是什么?到目前为止我所做的是司机FileStatus[]stati=null;try{stati=fs.listStatus(in);}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.p

hadoop - Mapreduce 中的中间数据溢出(缓冲内存)

我在Hadoop2.6.0中运行一个字数统计作业,我发现map输出有几个溢出。我有以下配置:mapreduce.task.io.sort.mb=100mapreduce.map.sort.spill.percent=0.80运行作业后,Map输出字节数=222660096。通过查看下面的容器日志,似乎缓冲区大小几乎是31055173字节而不是100MB。先spillspill入盘前查看参数值bufstart=0;bufend=31055173;bufvoid=104857600然后将Map输出以字节为单位除以bufend(222660096/31055173=7.17(=8spills

java - mapreduce hadoop 中的 reducer 数量

我只有一个从mapper发送到reducer的键,并且我将noofreducers设置为10。所以一个reducer将在该键上运行,剩下的9个reducer将做什么? 最佳答案 其他9个reducer将照常运行它们的生命周期,它们一旦运行就不会有任何键/值要处理,所以它们会很快停止。因此,您将在资源不必要地运行时浪费资源。您通常(大多数输出​​格式都这样做)还会发现您最终得到一个运行但未写入任何内容的reduce的部分文件。部分文件将不包含任何实际数据,仅包含文件元数据,例如gzipheader。

java - 在 hadoop mapreduce 应用程序中访问来自其他文件系统的文件以及 hdfs 文件

我知道我们可以从普通的Java应用程序调用map-reduce作业。现在,我的map-reduce作业必须处理hdfs上的文件以及其他文件系统上的文件。在hadoop中,我们是否可以在访问其他文件系统的文件的同时,同时使用hdfs上的文件。这可能吗?所以基本上我的意图是我有一个大文件,我想把它放在HDFS中进行并行计算,然后将这个文件的block与一些其他文件(我不想放在HDFS中,因为它们需要)进行比较一次作为全长文件访问。 最佳答案 应该可以像其他任务一样从mapper/reducer任务访问非HDFS文件系统。需要注意的一件事

hadoop - Cloudera 管理器 : Where do I put Java ClassPath for MapReduce jobs?

我已经让Hadoop-Lzo在我的本地伪集群上愉快地工作,但是第二次我在生产中尝试相同的jar文件时,我得到:java.lang.RuntimeException:native-lzolibrarynotavailable库已验证在DataNode上,所以我的问题是:我在什么屏幕/设置中指定native-lzo库的位置? 最佳答案 对于MapReduce,您需要将条目添加到MapReduce客户端环境安全阀。您可以通过转到配置下的查看和编辑选项卡找到MapReduceClientSafety。然后在那边添加这些行:HADOOP_CL

hadoop - Oozie 协调员。如何将过去的数据提供给 mapreduce 作业?

我正在尝试创建Ooize协调器。问题是我已经有了等待使用oozie处理的暂存数据。想象一下这样的情况。当前日期是:01.03.2013(2013年3月1日)我确实有这些输入目录:/staging/landing/source/xvlr/2013/02/01/00(2013年二月一日,一天的第一个小时)/staging/landing/source/xvlr/2013/02/01/01/staging/landing/source/xvlr/2013/02/01/02/staging/landing/source/xvlr/2013/02/01/03/staging/landing/so