我正在尝试读取映射器中的多行。为此,我开始使用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
我查看了NLineInputFormat的getSplitsForFile()fn。我发现为输入文件创建了一个InputStream,然后每n行创建它的迭代和拆分。有效率吗?特别是在启动映射器任务之前在1个节点上发生此读取操作时。如果1有5gb的文件怎么办。基本上这意味着文件数据被查找两次,一次是在拆分创建期间,一次是在从映射器任务读取期间。如果这是一个瓶颈,hadoop作业如何覆盖它?publicstaticListgetSplitsForFile(FileStatusstatus,Configurationconf,intnumLinesPerSplit)throwsIOExcep
我已经为我们的映射器编写了自定义Recordreader,以便一次从源文件接收3条记录(3行),而不是TextInputFormat默认提供的1行。以下是示例代码片段。扩展TextInputFormat:publicclassNLinesInputFormatextendsTextInputFormat{@OverridepublicRecordReader;createRecordReader(InputSplitsplit,TaskAttemptContextcontext){returnnewNLinesRecordReader();}}自定义RecordReader类publi
我想要的基本上是让每个数据元素由10行组成。但是,使用以下代码,每个元素仍然是一行。我在这里犯了什么错误?valconf=newSparkConf().setAppName("MyApp")conf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")conf.registerKryoClasses(Array[Class[_]](classOf[NLineInputFormat],classOf[LongWritable],classOf[Text]))valsc=newSparkContext(co
我有一个基于文本的输入文件,大小约为25GB。在该文件中,一条记录由4行组成。每条记录的处理都是相同的。但是在每条记录中,四行中的每一行都以不同的方式处理。我是Hadoop的新手,所以我想要一个指导,在这种情况下是使用NLineInputFormat还是使用默认的TextInputFormat?提前致谢! 最佳答案 假设您有以下格式的文本文件:2015-8-02error2014blahblahblahblah2015-8-02blahblahbalherror2014你可以使用NLineInputFormat.使用NLineInp
如果是,HDFS如何将输入文件拆分为N行以供每个映射器读取?我相信这是不可能的!当拆分器需要偏移量或字节进行拆分时,可以在不处理整个输入文件的情况下进行拆分。但是当'\n'或换行符的数量很重要时,在拆分之前有必要处理总输入文件(以计算换行符)。 最佳答案 要使NLineInputFormat正常工作,每个拆分都需要知道第xN行的起始位置。正如您在对Tariq的回答的评论中指出的那样,映射器不能只知道第3行(香蕉从哪里开始),它会从map的InputSplit获取此信息。这实际上是在输入格式的getSplitsForFile方法中处理
我使用的是Hadoop0.20.2,并且使用的是旧API。我正在尝试将数据block发送到映射器,而不是一次发送一行(数据涵盖多行)。我尝试使用NLineInputFormat来设置一次获取多少行,但映射器仍然一次只接收1行。我很确定我有正确的代码。是否有任何原因导致这无法工作?供您引用,JobConfconf=newJobConf(WordCount.class);conf.setInt("mapred.line.input.format.linespermap",2);conf.setInputFormat(NLineInputFormat.class);基本上,我使用的示例代码来
我试图限制每个映射器获得的行数。我的代码是这样的:packagecom.iathao.mapreduce;importjava.io.IOException;importjava.net.MalformedURLException;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapred.lib.NLineInputFormat;importorg.apache.hadoop.m