草庐IT

Mapreduce

全部标签

具有已排序文件的 Hadoop MapReduce

我正在使用HadoopMapReduce。我在HDFS中有数据并且每个文件中的数据已经排序。是否可以强制MapReduce在map阶段后不对数据求助?我试图将map.sort.class更改为无操作,但它不起作用(即数据未按我的预期排序)。有没有人尝试过做类似的事情并成功实现了? 最佳答案 我觉得这取决于你想要什么样的结果,排序的结果还是未排序的结果?如果你需要对结果进行排序,我认为hadoop不适合做这个工作。有两个原因:INPUTDATA将存储在不同的block中(如果足够大)并分成多block。每个拆分将映射到一个map任务,

hadoop - 按用户指定的次数将每个数字加倍

我是hadoop的新手,我正在通过一些示例进行学习。我目前正在尝试传递一个带有随机整数的文件。对于每个数字,我希望它是基于用户在运行时指定的数字的双倍数。353658062545249485546711628941962645766567548895159316154017044897135907811110594971519530316306265827588293589212954067631914995840198574884800237019318756427694554835454322512016942540903955248728408730475628557186612

performance - 为什么 TeraSort 映射阶段在 CRC32.update() 函数中花费大量时间?

我正在尝试分析哪些函数在TeraSortHadoop作业中消耗的时间最多。对于我的测试系统,我使用的是基本的单节点伪分布式设置。这意味着NameNode、DataNode、Tasktracker和JobtrackerJVM都在同一台机器上运行。我首先使用TeraGen生成约9GB的数据,然后在其上运行TeraSort。当JVM执行时,我使用VisualVM对它们的执行进行采样。我知道这不是目前最准确的分析器,但它是免费且易于使用的!我使用最新版本的Apachehadoop发行版,我的实验在基于IntelAtom的系统上运行。当我查看VisualVM中热点方法的自用时间(CPU)时,我发

java - Hadoop java mapper -copyFromLocal 堆大小错误

作为我的Java映射器的一部分,我有一个命令在本地节点上执行一些代码并将本地输出文件复制到hadoopfs。不幸的是,我得到以下输出:ErroroccurredduringinitializationofVMCouldnotreserveenoughspaceforobjectheap我试过将mapred.map.child.java.opts调整为-Xmx512M,但不幸的是没有成功。当我通过ssh进入节点时,我可以毫无问题地运行-copyFromLocal命令。输出文件也很小,大约100kb。如有任何帮助,我们将不胜感激! 最佳答案

python - Hadoop 集群 - 在运行作业之前,我是否需要在所有机器上复制我的代码?

这就是让我感到困惑的地方,当我使用wordcount示例时,我将代码保留在master并让他与slave一起做事并且它运行良好但是当我运行我的代码时,它开始在奴隶上失败,给出奇怪的错误,如Traceback(mostrecentcalllast):File"/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201110250901_0005/attempt_201110250901_0005_m_000001_1/work/./mapper.py",line55,infromsrc.utilitiesimportu

search - 使用 hadoop 进行日志搜索

我们在需要实时搜索的多个Web服务器上有巨大的日志文件(~100秒的Gigs)。这些日志文件由不同的应用每秒写入多次。为此,我们最近在一些服务器上安装了一个hadoop集群。为了实现对这些日志的搜索,我想到了这样的设计:在web服务器上运行一个进程,它创建一个日志的倒排索引并将其缓存在内存中(在web服务器本身上)并通过flume推送到HDFS当缓存已满时存储在Hive中(这很像LRU缓存)。这在搜索某些内容时有两种帮助:最近的日志从内存缓存中返回并且速度很快,而较旧的日志从磁盘返回。并且由于用户希望首先查看最新日志,因此该技术有效。有人可以验证此设计是否可以正常工作和缩放。周围有更好

java - 将值从 Mapper 传递到 Reducer

我通过查找映射器正在处理的当前文件(以及其他一些东西)获得了少量元数据。我需要将这个元数据发送到reducer。当然,我可以让映射器在它生成的对中发出这个,但我想避免它.另外,再多约束一点,我不想使用DistributedCahce。那么,我还有其他选择吗?更准确地说,我的问题是双重的(1)我尝试通过在映射器的configure(JobConf)中执行job.set(Prop,Value)并在reducer的中执行job.get()来设置一些参数>配置(JobConf)。可悲的是,我发现它不起作用。另外,我很想知道为什么会出现这种行为。我的主要问题是(2)如何以“干净的方式”(如果可能

timeout - 如何将进度报告给Hadoop Job,避免Task超时被杀?

1)我有一个仅映射的Hadoop作业,它将数据流式传输到Cassandra集群。2)有时流式传输需要超过10分钟,并且由于没有向作业报告进度,它会终止任务。3)我尝试使用context.progress()方法报告进度,但没有帮助。是否还需要向hadoop作业报告进度?我已经编写了如下示例代码来模拟该问题并使用以下代码。Thread.sleep(360000);context.progress();Thread.sleep(360000);失败并显示以下错误消息12/02/0611:40:25INFOmapred.JobClient:TaskId:attempt_20120206111

java - Hadoop..如何计算输入拆分的散列

我想计算输入split的sha256哈希,mapper的输出应该是(key,value)其中key是block开始的位置值是整个区block的sha256哈希值。我的要求是阅读完整的InputSplitasOnerecord。这是我到目前为止所做的..(我将block大小设为100kb)..还没有处理键值的值部分。对不就是输出1publicvoidmap(LongWritablekey,Textvalue,OutputCollectoroutput,Reporterreporter)throwsIOException{LongWritablekey_offset=newLongWrit

java - 读/写时出错(Hadoop)

我关注了thishadoop安装教程。好吧,如果我将\usr\local\hadoop用作hadoop.tmp.dir,一切正常。因为我在这个分区中的空间很小,所以我尝试将此值设置为/NEW_partition/(ext4)但我总是遇到一些java错误。我猜这是因为hadoop无法写入该分区。我怎样才能让它发挥作用?::::编辑::::完整的执行结果。hadoop@FreeLnx:/usr/local/hadoop-0.20.203.0$bin/hadoopjarhadoop-examples-0.20.203.0.jarwordcount/MY_STORAGE/tmp1/gutnb/