草庐IT

Mapreduce1

全部标签

hadoop - MapReduce 如何读取多个输入文件?

我正在开发一个代码来读取数据并使用mapreduce将其写入HDFS。但是,当我有多个文件时,我不明白它是如何处理的。映射器的输入路径是目录的名称,如的输出所示Stringfilename=conf1.get("map.input.file");那么它是如何处理目录中的文件的呢? 最佳答案 为了获取输入文件路径,您可以使用context对象,如下所示:FileSplitfileSplit=(FileSplit)context.getInputSplit();StringinputFilePath=fileSplit.getPath(

java - 简单 MapReduce 作业中的大量开销

我正在试验Hadoop并创建了一个非常简单的map和reduce作业。输入是一个30行的文本文件,输出只有3行(它是一个日志文件的摘录,其中map提取了一个页面名称和执行时间,而reduce计算了min、max和avg执行次)。这个简单的作业需要36秒以伪分布式模式在Hadoop上执行(fs.default.name=hdfs://localhost,dfs.replication=1,mapred.job.tracker=本地主机:8021)。这是在运行Ubuntu10.04的2.93GhzNehalem、8GB内存、X25-ESSD上。我在映射器和缩减器中为每次调用添加了调试输出,

hadoop - import org.apache.hadoop.mapreduce 无法解析

我正在尝试执行下面的代码packagetest;importjava.io.IOException;importjava.util.*;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.conf.*;importorg.apache.hadoop.io.*;importorg.apache.hadoop.util.*;importorg.apache.hadoop.mapreduce.Mapper;importorg.apache.hadoop.mapreduce.Reducer;importorg.apache.hadoo

java - MapReduce 输出键升序排列

我编写了一个MapReduce代码,其中的键和值都是整数。我正在使用单个Reducer。输出是这样的:KeyValue1781281217426244295712397591有没有办法让输出按升序按键排序?这样输出看起来像这样:1782441281217426975912957123我需要使用conf.setComparator吗?如果是,我该怎么做? 最佳答案 这需要一个TotalOrderPartitionerhttps://hadoop.apache.org/docs/r2.4.1/api/org/apache/hadoop/

eclipse - Eclipse中使用Hadoop MapReduce报错

当我执行MapReduceprograminEclipseusingHadoop时,我收到以下错误。它必须在路径上有所改变,但我无法弄清楚。有什么想法吗?16:35:39INFOmapred.JobClient:TaskId:attempt_201001151609_0001_m_000006_0,Status:FAILEDjava.io.FileNotFoundException:FileC:/tmp/hadoop-Shwe/mapred/local/taskTracker/jobcache/job_201001151609_0001/attempt_201001151609_000

Hadoop MapReduce - Pig/Cassandra - 无法创建输入拆分

我正在尝试使用Pig和Cassandra运行MapReduce作业,但我总是收到错误消息:错误2118:无法为cassandra://constellation/logs创建输入拆分[已解决]有一些我没有设置的环境变量:PIG_RPC_PORT,PIG_INITIAL_ADDRESS,PIG_PARTITIONER/opt/cassandra-0.7.0-beta3/contrib/pig$bin/pig_cassandraexample-script.pig10/11/1517:38:26INFOpig.Main:Loggingerrormessagesto:/opt/cassand

java - Hadoop MapReduce Java 实现中的 Reducer

我正在HadoopMapReduceFramework中编写一个Java实现程序。我正在编写一个名为CombinePatternReduce.class的类.为了在Eclipse中调试reducer,我写了一个main()功能如下:@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{Textkey=newText("key2:::key1:::_performsbetterthan_");IntWritablecount5=newIn

hadoop - 是否可以让 Hadoop MapReduce 作业为每个键写入一个文件?

我正在尝试将Hadoop用于一个美化的工作跟踪器,我需要能够为每个输出键写入一个文件。此外,我需要将该文件命名为与key文本相同的名称,并且我希望该文件恰好是与该输出key关联的值。这可能吗?怎么办? 最佳答案 使用MultipleOutputFormat使用基于发送到reducer的key的自定义文件名。 关于hadoop-是否可以让HadoopMapReduce作业为每个键写入一个文件?,我们在StackOverflow上找到一个类似的问题: https:

hadoop - 使用 Hadoop 进行 MapReduce 的异常

我在本地机器上使用Hadoop时遇到异常。线程“main”中的异常java.lang.NoSuchMethodError:org.apache.hadoop.conf.Configuration.addDeprecation(Ljava/lang/String;Ljava/lang/String;)V在org.apache.hadoop.mapreduce.util.ConfigUtil.addDeprecatedKeys(ConfigUtil.java:522)在org.apache.hadoop.mapreduce.util.ConfigUtil.loadResources(Con

java - Mapreduce 作业因 IO 异常而失败

我正在运行单节点hadoop环境。我有一个mapreduce作业来计算某些特定时间段内某些监控信息的平均值,比如每小时平均值。该作业将输出写入hdfs中的路径。在运行该作业之前,它会及时清理。它工作正常一个月。昨天,在运行作业时,我从jobclient得到一个异常,说:文件/user/root/out1/_temporary/_attempt_201401141113_0007_r_000000_0/hi/130-r-00000只能复制到0个节点,而不是1个完整的堆栈跟踪如下:..........14/01/1712:00:09INFOmapred.JobClient:map100%r