草庐IT

Mapreduce

全部标签

Hadoop - "Code moves near data for computation"

我只想澄清这句话“代码移动到数据附近进行计算”,这是否意味着开发人员编写的所有javaMR都部署到集群中的所有服务器?如果1为真,如果有人更改了MR程序,它如何分发到所有服务器?谢谢 最佳答案 Hadoop将MR作业的jar放入HDFS-它的分布式文件系统。需要它的任务跟踪器将从那里获取它。所以它分发到一些节点,然后由实际需要它们的节点按需加载。通常这需要意味着节点将要处理本地数据。Hadoop集群在作业方面是“无状态的”。每次工作都被视为新事物,并且不使用前一个工作的“副作用”。确实,当要在大型集群上处理少量文件(或准确地说是拆分

java - MapReduce 和从外部源下载文件

我有一个项目,要求以分布式方式从外部源下载文件。我们已经在Hadoop上进行了大量投资,并希望利用MapReduce——但更多的是作为分布式任务而不是ETL。1)以前有人这样做过吗?2)是否应该只有一个Mapper而没有一个Reducer?3)将FTP/HTTP连接的抽象实现传递给映射器的最佳方法是什么?--需要说明的是,我的意思是我想要一种无需进行集成测试即可对此进行单元测试的好方法,因此需要一种模拟FTP/HTTP的方法。4)MapReduce是处理这类事情的最佳方法吗?--我们在滥用MapReduce吗?谢谢。 最佳答案 这“

java - 将带有参数的文件传递给 mapreduce 作业

我有一个mapreduce映射器。这个Mapper应该使用一些只读参数集。假设我想计算输入行中某些子字符串(某物的标题)的出现次数。我确实有一个成对列表:“一些标题”=>“从输入行中提取此标题的正则表达式”。这些对存储在通常的文本文件中。将此文件传递给Mapper的最佳方式是什么?我只有这个想法:将成对的文件上传到hdfs。使用-Dpath.to.file.with.properties将路径传递给文件在映射器的静态{}部分读取文件并填充映射对“sometitle”=>“标题的常规表达式”。这是好事还是坏事?请告知 最佳答案 您已经

java - 什么决定了给定一组指定数据要使用的映射器/缩减器的数量

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。决定为给定数据集使用多少映射器和缩减器以实现最佳性能的因素是什么?我说的是ApacheHadoopMapReduce平台。

hadoop -libjars 和 ClassNotFoundException

请帮忙,我卡住了。这是我运行作业的代码。hadoopjarmrjob.jarru.package.Main-fileshdfs://0.0.0.0:8020/MyCatalog/jars/metadata.csv-libjarshdfs://0.0.0.0:8020/MyCatalog/jars/opencsv.jar,hdfs://0.0.0.0:8020/MyCatalog/jars/gson.jar,hdfs://0.0.0.0:8020/MyCatalog/jars/my-utils.jar/MyCatalog/http_requests.seq-r-00000/MyCatal

hadoop - 我们可以在同一个 hadoop 集群中同时使用 Fair scheduler 和 Capacity Scheduler

我们可以在同一个hadoop集群中同时使用Fairscheduler和CapacityScheduler吗?哪个调度器是好的和有效的。谁能帮帮我? 最佳答案 我认为两者不能同时使用。这也没有意义。为什么要在同一个集群中使用这两种类型的调度?由于特定的用例,两种调度算法都出现了。Fairschedulingisamethodofassigningresourcestojobssuchthatalljobsget,onaverage,anequalshareofresourcesovertime.Whenthereisasinglejo

java - 运行简单的 mapreduce 作业时出现错误 "java.lang.OutOfMemoryError: Java heap space"

我一直在尝试在RHEL6中为wordcount运行一个简单的Mapreduce作业,但我一直收到此错误。请帮忙。13/01/1319:59:01INFOmapred.MapTask:io.sort.mb=10013/01/1319:59:01WARNmapred.LocalJobRunner:job_local_0001java.lang.OutOfMemoryError:Javaheapspaceatorg.apache.hadoop.mapred.MapTask$MapOutputBuffer.(MapTask.java:949)atorg.apache.hadoop.mapred

java - mapreduce,排序值

我的映射器有一个输出:Mapper:KEY,VALUE(Timestamp,someOtherAttrbibutes)我的Reducer确实收到了:Reducer:KEY,Iterable我要Iterable按Timestamp属性排序。有没有实现的可能?我想避免在Reducer代码中进行手动排序。http://cornercases.wordpress.com/2011/08/18/hadoop-object-reuse-pitfall-all-my-reducer-values-are-the-same/我将不得不从Iterable中“深度复制”所有对象,这会导致巨大的内存开销。:

java - Hadoop 查找任务尝试的主机名

在将mapreduce作业提交到hadoop时,我试图以编程方式确定哪些任务尝试在我的集群中的哪个tasktracker上运行。我发现我可以像这样从JobClient获取大部分任务数据:jobClient.getMapTaskReports(jobID)但不是任务尝试成功的机器的主机名。有人知道如何从任务尝试ID中获取主机名吗? 最佳答案 JobClient给你一个所谓的NetworkedJob提交时。它有一个名为getTaskCompletionEvents的方法。这会返回一个发生的TaskCompletionEvent数组,那些

使用 hadoop 对一个巨大的文本文件进行排序

是否可以使用只有map任务和零reduce任务的mapreduce作业按字典顺序对巨大的文本文件进行排序?文本文件的记录以换行符分隔,文件大小约为1TerraByte。如果有人能提出一种方法来实现对这个巨大文件的排序,那就太好了。 最佳答案 在Map方法中使用TreeSet将整个数据保存在输入拆分中并持久化。终于拿到整理好的文件了! 关于使用hadoop对一个巨大的文本文件进行排序,我们在StackOverflow上找到一个类似的问题: https://sta