草庐IT

MAPREDUCE

全部标签

java - Hadoop项目启动时需要的JAR有哪些?

这一定看起来像是一个愚蠢的问题,但我是Hadoop的新手并且正在尝试运行一个简单的示例。但是,我一直遇到JAR文件的问题并且似乎没有正确的导入。我正在使用clouderaCDH4,它有很多JAR文件可供选择,每个文件都有多个版本。因为我刚刚开始,所以无法区分。目前我得到这个异常(exception):Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apache/commons/configuration/Configurationatorg.apache.hadoop.metrics2.lib.DefaultMetri

performance - hadoop大文件不拆分

我有一个大小为136MB的输入文件,我启动了一些WordCount测试,我只监控一个映射器。然后我在我的hdfs-site.xml中将dfs.blocksize设置为64MB并且我仍然得到一个映射器。我做错了吗? 最佳答案 dfs.block.sizeisnotaloneplayingaroleandit'srecommendednottochangebecauseitappliesgloballytoHDFS.Splitsizeinmapreduceiscalculatedbythisformulamax(mapred.min.s

java - Spark : Technical terminology for reduce elements on the run-time?

在下面的字数统计示例中:(Hello,1)(Hello,1)(Hello,1)(Hello,1)(Hello,1)Hadoop的reducer函数会收集所有5个键为“Hello”的元素,然后在reducer函数中进行聚合。但是在Spark中,实际上是每次减少2个元素。比如把第一个和第二个(Hello,1)组合成(Hello,2),把第三个和第四个(Hello,1)组合成(Hello,2)……等等(当然,真实情况可能是在不同的顺序)。那么有专门的术语来描述Spark中使用的这种计算方法吗?谢谢! 最佳答案 它不一定以这种方式聚合值。您

hadoop - 自定义分区程序与 MultipleOutputFormat

我是mapreduce的新手,我想知道使用自定义分区器根据特定条件创建多个输出与Mapreduce中的MultipleOutputs概念有什么区别。 最佳答案 使用自定义分区,您会将数据发送到不同的reducer,每个reducer将写入一个文件,其中包含由它处理的所有数据。part-r-00001,part-r-00002...使用MiltipleOutputs,每个reducer都可以使用自定义名称写入不同的文件(多个输出)。Tag1-r-00001,Tag2-r-00001,Tag1-r-00002,Tag2-r-00002.

hadoop - 人类可读格式的cloudera hadoop集群上的剩余空间

我正在寻找一个命令来显示hadoop集群上剩余空间的人类可读形式。我在这个论坛上找到了一个命令,输出在图像中。hdfsdfsadmin-报告[dfsadmin命令的输出][1]我听说hortonworks中还有另一个命令可以提供更易读的输出。该命令是hdfsdfsadmin-report该命令似乎不适用于cloudera。cloudera中是否有任何等效命令?非常感谢 最佳答案 不管您使用的是Cloudera还是Hortonworks。如果您使用的是旧版本的hadoop,则命令可能是hadoopdfsadmin-report。您还有

java - 平均 map 减少

我正在尝试计算hadoop独立设置中的平均数字。我无法运行该程序。但是程序编译没有任何错误,并且还创建了jar文件。我想我正在使用正确的命令在hadoop设置中执行程序。有人请查看我的代码并告诉我是否有任何问题。这是我的代码importjava.io.IOException;importjava.util.StringTokenizer;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;importorg.ap

hadoop - MapReduce shuffle 阶段瓶颈

我正在阅读原始的MapReduce论文。我的理解是,当处理数百GB的数据时,传输如此多数据的网络带宽可能成为MapReduce作业的瓶颈。对于map任务,我们可以通过在已经包含任何给定拆分数据的worker上安排map任务来减少网络带宽,因为从本地磁盘读取不需要网络带宽。然而,shuffle阶段似乎是一个巨大的瓶颈。reduce任务可能会从所有map任务接收中间键/值对,并且几乎所有这些中间键/值对都将通过网络流式传输。当处理数百GB或更多的数据时,有必要使用组合器来实现高效的MapReduce作业吗? 最佳答案 如果Combine

sql - Hive 和选择不匹配的记录

我有两个表,如表A、B,我需要选择A与B的不匹配记录(即A减去B)。A有多列,B是单列(ID)。我试过如下,但是花费了太多时间Select*fromAwhereA.ID(selectB.IDfromB).我也试过了Select*fromAleftouterjoinonBwhereA.ID=B.IDANDB.IDISNULL显示错误的结果请帮我确定解决方案。谢谢。 最佳答案 使用where子句进行过滤。Select*fromAleftouterjoinBonA.ID=B.IDwhereB.IDISNULL

hadoop - 将运行多少映射器?

我有这个问题。假设我有3个数据节点+节点管理器(集群)。我们的复制因子为3。在第一个集群中我们有4个block,因此默认情况下4个映射器将在第一个集群上并行运行。那么因为我们的复制因子为3,所以我们将在开始时运行12个映射器? 最佳答案 block数取决于文件大小。如果您有1gb的文件,可以构成8个block(共128mb)。所以现在所有8个block将按照datalocalityandrackawareness被复制三次-但这并不意味着当您针对此文件运行任何作业时,将处理所有24(8x3)block。复制用于从磁盘故障类型的场景中

hadoop - 提高 Java MapReduce 性能的思路

我目前正在研究JavaMapReduce。我们拥有读取JavaMapper类中的每一行然后针对DB进行一些验证的功能。问题是在DB中我们有大约500万条记录。Mapper的输入文件也可能包含@100万条记录。所以就像我们扫描800万条记录的每一行一样。这个过程需要很长时间。任何人都可以建议我们是否有更好的方法来提高性能。运行多个map,并行执行(虽然HadoopJavaMapreduce本身就是这样做的)但是看当前时间我认为它不应该花费这么多时间可能是我缺少JavaMapreduce等的任何配置。提前感谢您的帮助。 最佳答案 我建议