草庐IT

mapReduce

全部标签

java - NLineInputFormat 用法超出了 GC 开销限制

我正在尝试读取映射器中的多行。为此,我开始使用NLineInputFormat类。使用它时,我收到GC限制错误。作为引用,错误代码是:16/02/2101:37:13INFOmapreduce.Job:map0%reduce0%16/02/2101:37:38WARNmapred.LocalJobRunner:job_local726191039_0001java.lang.OutOfMemoryError:GCoverheadlimitexceededatjava.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.j

hadoop - 我收到 CDH4.0 错误 "The method addCacheFile(URI) is undefined for the type Job"

我遇到了错误ThemethodaddCacheFile(URI)isundefinedforthetypeJob使用CDH4.0时尝试调用addCacheFile(URIuri)方法,如下图:importjava.net.URI;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.

执行 Mapreduce 时出现 Java 堆空间错误

我试图在Hadoop中找到中位数。作业失败并出现以下错误:16/03/0202:46:13INFOmapreduce.Job:TaskId:attempt_1456904182817_0001_r_000412_0,Status:FAILEDError:Javaheapspace我浏览了很多解决类似问题的帖子,但没有任何效果。还得到了帮助:Error:Javaheapspace我尝试了以下可能的解决方案:按照上述帖子中的建议增加Java堆大小。通过更改以下属性增加容器的大小:yarn.scheduler.minimum-allocation-mb到yarn-site.xml中的1024

java - Hadoop 中的默认 Record Reader,全局或本地字节偏移量

我们知道Hadoop中的映射器(以及缩减器)只能处理键值对作为输入和输出。RecordReader是将原始输入从文件转换为键值对的东西。您可以编写自己的“RecordReader”。Hadoop提供的默认RecordReader称为TextInputFormat,它读取文本文件的行。它为拆分的每条记录发出的键是读取的行的字节偏移量(作为LongWritable),值是行的内容直到终止\n字符(作为文本对象)。我们还知道每个输入文件拆分的映射器由平台实例化。假设有一个巨大的文件F存储在HDFS上,它的拆分存储在几个不同的节点上;文件F是行分隔的,并且正在由一些使用默认RecordRead

java - Hadoop WordCount, map 中的总和

有人要求我修改WordCount示例,以便每个映射器函数在传递文件之前将其文件中单词的出现次数加在一起。因此,例如,而不是:映射器的输出将是:那么我是否可以将单词添加到数组中,然后检查是否出现?或者有更简单的方法吗?Stringline=value.toString();StringTokenizertokenizer=newStringTokenizer(line);while(tokenizer.hasMoreTokens()){word.set(tokenizer.nextToken());context.write(word,one);} 最佳答案

hadoop - 如何在 Hive 中找到最近的邻居?有开窗功能吗?

给定一个表$catdata.csvID,State,City,Price,Flag1,CA,A,95,02,CA,A,96,13,CA,A,195,14,NY,B,124,05,NY,B,128,16,NY,C,24,07,NY,C,27,18,NY,C,29,09,NY,C,39,1预期结果:ID0,ID11,24,56,78,7对于上面Flag=0的每个ID,我们希望从Flag=1中找到另一个ID,具有相同的“State”和“City”,以及最接近的Price。我有两个粗略愚蠢的想法:方法一。Usealeftouterjoinwiththetableitselfon(a.State

hadoop - 如何垂直而不是水平拆分数据?

我想聚类和拆分(使用Hadoop)具有大约6万个特征(维度也称为列)的数据集。这个数据集只有很少的实例——大约100行。我不想水平拆分数据,而是想根据特征集群进行拆分。例如,如果我有3个集群,我希望每个集群有20K列和100行,以在3个不同的节点上运行。如何实现这种拆分?如果做不到这一点,您能否为Hadoop以外的框架提供任何建议来促进这种拆分? 最佳答案 首先:对于这个微小数据集(60k*100,也就是几兆字节),MapReduce是一个非常糟糕的选择。您将获得大量开销,而yield为零。如果您的数据适合主内存,请不要使用Hado

java - 如何控制每个区域服务器读取 HBase 表的映射器数量

我有一个HBase表(通过ApachePhoenix编写),需要读取和写入一个平面文本文件。目前的瓶颈是因为我们有32个盐桶用于HBase(Phoenix)表,它只打开32个映射器来读取。当数据增长超过1000亿时,它变得非常耗时。有人能告诉我如何控制每个区域服务器读取HBase表的映射器数量吗?我也看到了在下面的URL中解释的程序,“https://gist.github.com/bbeaudreault/9788499”,但我没有完整解释的驱动程序。有人可以帮忙吗? 最佳答案 Inmyobservation,numberofre

java - hadoop fs -mkdir 没有创建所需的文件夹

我正在尝试执行简单的HadoopMapreduceWordcount示例。我正在关注这个guide运行程序。其中一个步骤是在hdfs文件系统上创建输入和输出文件夹。hadoopdfs-mkdir-p/usr/local/hadoop/input但这给了我这个错误:DEPRECATED:Useofthisscripttoexecutehdfscommandisdeprecated.Insteadusethehdfscommandforit.16/09/2510:57:58WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryf

hadoop - 在 hadoop 中编码为 UTF-8 文件

我正在编写一个MapReduce程序以清理存储在HDFS中的一些文件,因为我必须以UTF-8编码所有文件,我试图在我的映射器中编码文本值,但我的中仍然有错误结果文件。if(encoding.compareTo("UTF-8")!=0){finalCharsetfromCharset=Charset.forName(encoding);finalCharsettoCharset=Charset.forName("UTF-8");Stringfixed=newString(value.toString().getBytes(fromCharset),toCharset);result=ne