草庐IT

GLOBAL_MAP

全部标签

java - 所有 map task 的 Hadoop 缓存文件

我的map函数必须为每个输入读取一个文件。那个文件根本没有改变,它只是为了阅读。我认为分布式缓存可能对我有很大帮助,但我找不到使用它的方法。我认为我需要覆盖的publicvoidconfigure(JobConfconf)函数已被弃用。好吧,JobConf肯定被弃用了。所有DistributedCache教程都使用已弃用的方式。我能做什么?我可以覆盖另一个配置功能吗?这些是我的map函数的第一行:Configurationconf=newConfiguration();//loadtheMFileFileSystemfs=FileSystem.get(conf);PathinFile=

map - 配置Hadoop集群时应该设置多少个mapper/reducer?

配置Hadoop集群时,为集群设置映射器/缩减器数量的科学方法是什么? 最佳答案 没有公式。这取决于你有多少核心和多少内存。mapper的个数+reducer的个数一般不要超过core的个数。请记住,该机器还运行着TaskTracker和DataNode守护进程。一般建议之一是映射器多于缩减器。如果我是你,我会使用合理数量的数据运行我的一项典型工作来尝试一下。 关于map-配置Hadoop集群时应该设置多少个mapper/reducer?,我们在StackOverflow上找到一个类似的

hadoop - 使用 HBASE MAP REDUCE API 将数据加载到 Hbase 表中

我对Hbase和MapReduceAPI很陌生。我对MapReduce概念很困惑。我需要使用MAPReduceAPI将文本文件加载到Hbase表中。我用谷歌搜索了一些示例,但在那里我可以找到MAPPER()而不是reducer方法。我对什么时候使用mapper以及什么时候使用Reducer()感到困惑。我的想法是这样的:我们使用映射器将数据写入Hbase从中读取数据HBASE我们使用mapper和reducer()。请任何人清除我详细解释。我正在尝试将数据从文本文件加载到HBASE表。我用谷歌搜索并尝试了一些代码,但我不知道如何加载文本文件并在HBASEmapreduceAPI中读取。

hadoop - Map Reduce 插槽定义

我即将成为一名ClouderaHadoop管理员。从一开始,我就听到很多关于Hadoop集群中每台机器计算槽的信息,比如定义MapSlot和Reduce槽的数量。我在互联网上搜索了一个日志时间来获取MapReduceSlot的新手定义,但没有找到。浏览PDF解释MapReduce配置时,我真的很生气。当涉及到集群机器中的计算插槽时,请解释它的确切含义。 最佳答案 在map-reducev.1中,mapreduce.tasktracker.map.tasks.maximum和mapreduce.tasktracker.reduce.t

hadoop - 为什么 map 和 reduce 同时运行?

我是Hadoop的新手。我记得我从某个地方了解到,在Hadoop中,所有map函数都必须在reduce函数开始之前完成。但是当我运行这样的mapreduce程序时,我只是得到了打印输出:map(15%),reduce(5%)map(20%),reduce(7%)map(30%),reduce(10%)map(38%),reduce(17%)map(40%),reduce(25%)为什么它们并行运行? 最佳答案 在真正的Reduce阶段开始之前,Shuffle、Sort和Merge在Mappers不断完成时发生。这个百分比表明了这一点

hadoop - 组合器在哪里组合映射器输出 - 在 Map 阶段或 Map-reduce 作业中的 reduce 阶段?

我的印象是,组合器就像作用于本地map任务的reducer,即它聚合单个Map任务的结果,以减少输出传输的网络带宽。通过阅读Hadoop-Thedefinitiveguide3rdedition,我的理解似乎是正确的。来自第2章(第34页)组合器函数许多MapReduce作业受到集群上可用带宽的限制,因此尽量减少map和reduce任务之间传输的数据是值得的。Hadoop允许用户指定要在map输出上运行的组合器函数——组合器函数的输出构成reduce函数的输入。由于combiner函数是一种优化,Hadoop不保证为特定映射输出记录调用它的次数(如果有的话)。换句话说,零次、一次或多次

Hadoop - 在xml中增加 map task 不会在运行时增加 map task

我在conf/mapred-site.xml中添加了以下内容mapred.tasktracker.map.tasks.maximum4mapred.tasktracker.reduce.tasks.maximum1但是当我运行该作业时,它仍然运行2个map(这是默认的)?我怎样才能强制这个数字增加?附言我正在使用Ubuntu四核box谢谢 最佳答案 您是否正在处理少量数据?可能是您的MapReduce作业仅在一个输入拆分上运行,因此不需要更多映射器。尝试在数百MB的数据上运行您的作业,看看您是否仍然遇到同样的问题。单个节点上能够运行

hadoop - 如何在多核8节点集群中调度Hadoop Map任务?

我有一个“仅映射”(无缩减阶段)程序。输入文件的大小足以创建7个maptask,我已经通过查看生成的输出(part-000到part006)验证了这一点。现在,我的集群有8个节点,每个节点有8个内核和8GB内存,共享文件系统托管在头节点上。我的问题是,我可以选择仅在1个节点中运行所有7个映射任务,还是在7个不同的从属节点中运行7个映射任务(每个节点1个任务)。如果我可以这样做,那么我的代码和配置文件需要做哪些更改。我尝试仅在我的代码中将参数“mapred.tasktracker.map.tasks.maximum”设置为1和7,但我没有发现任何明显的时间差异。在我的配置文件中它设置为1

hadoop - 使用 Pig/Hive 进行数据处理而不是直接使用 java map reduce 代码?

(比DifferencebetweenPigandHive?Whyhaveboth?更基础)我有一个数据处理管道,用Hadoop上的多个Javamap-reduce任务编写(我自己的自定义代码,源自Hadoop的Mapper和Reducer)。它是一系列基本操作,例如连接、反转、排序和分组依据。我的代码涉及并且不是很通用。继续这种公认的开发密集型方法与使用多个UDF将所有内容迁移到Pig/Hive的优缺点是什么?哪些工作我不能执行?我会遭受性能下降(使用100sTB)吗?维护时我会失去调整和调试代码的能力吗?我能否将部分作业作为Javamap-reduce进行流水线处理,并将它们的输入

map - 解释什么是 Hadoop 和 Map/Reduce 的最简单方法是什么?

从高层次的角度解释NoSQL非常容易——它基本上是“键值”存储。当然有成千上万的次要和重要的东西,但一般来说它只是键值存储。解释Hadoop和Map/Reduce的最佳方式是什么?可能是一些“真实世界”的例子,即使是新手也可以很容易地进行比较?谢谢! 最佳答案 我最近找到了thisgreatarticle描述MapReduce:I’vebeenplanningonwritingabouttheGoogle’sMapReducealgorithmforsometimebutIcouldn’tfindagoodpracticalexam