草庐IT

mapReduce

全部标签

java - Apache Hadoop 没有在我的程序中合并和减少它应该做的工作

我是ApacheHadoop的初学者,尝试了Apache的字数统计程序,它运行良好。但是现在我想制作自己的室外温度程序来计算每日平均值。平均计算不符合我的预期;没有对数据进行合并和平均。更具体地说,这里是我的sample2.txt输入文件的一部分:2502201600:00:00-10.32502201600:01:00-10.32502201600:02:00-10.32502201600:03:00-10.3...2502201600:59:00-11.2我想要的输出应该是:250220167.9这是该日期所有温度观测值的平均值。所以我有60个观察值,想要一个平均值。将来我想用同一

hadoop - 在没有 reducer 的情况下映射任务结果

当mapreduce作业运行时,map任务结果存储在本地文件系统中,然后reducer的最终结果存储在hdfs中。问题是map任务结果存储在本地文件系统中的原因是什么?在没有reduce阶段(只有map阶段存在)的mapreduce作业的情况下,最终结果存储在哪里? 最佳答案 1)Mapper输出存储在本地fs中,因为在大多数情况下,我们对Reducer阶段给出的输出(也称为最终输出)感兴趣。Mapperpairisintermediateoutput一旦传递给Reducer,这是最不重要的。如果我们将Mapper输出存储在hdfs

java - 是否可以在一个节点上运行多个映射器

我有KMeans代码,我的任务是计算加速比,我通过在我的uni集群中不同数量的节点上运行它来完成它。但是是否可以更改映射器和/或缩减器的数量,以便我可以在单个节点上运行时检查加速比的变化。在谷歌搜索时,我发现通过使用conf.setNumReduceTasks(2);我可以更改reducer的数量。但我没有看到我的输出有任何变化。(我的输出是以毫秒为单位的时间)。我使用的代码来自github:https://github.com/himank/K-Means/blob/master/src/KMeans.java虽然我根据自己的要求做了一些改动,但是主要功能是一样的。下面是main函数

hadoop - 使用 MapReduce 并行查询 HBase 的行键列表

我想在HBase中执行查询操作以使用提供的行键列表获取记录。由于MapReduce中的Mappers是并行工作的,所以我想使用它。行键的输入列表将在~100000范围内,我为映射器创建了一个customInputFormat,它将为每个映射器提供1000个行键的列表,用于查询HBase表。这些查询的记录可能存在也可能不存在于HBase表中,我只想返回那些存在的记录。我看过各种examples,我发现执行hbase表scan操作以获取行键的范围,范围由startingRowKey和endingRowKey指定,但我只想查询提供的行键列表。我如何使用MapReduce做到这一点?欢迎任何帮

hadoop - 我可以在不设置 mapred.reduce.tasks=1 的情况下在 map reduce 程序中找到最小值、最大值或平均值吗

我试图了解如何使用mapreduce找到一个非常大的文件的最小值、最大值和平均值。将reduce任务数设置为1是一个显而易见的解决方案,但对于非常大的文件来说并不是最佳选择。我也在考虑编写一个链式MR作业,但最终,你最终在最终作业中使用了一个reducer。有人可以阐明一些其他方法吗?谢谢 最佳答案 无论您的输入数据集有多大,我在这里使用1个reducer都没有发现任何问题。为此,您应该使用组合器功能,该功能应返回其本地Max、本地Min、本地TotalSum和Count并传递给单个reducer。这样,到达reducer的数据量非

java - 在 Hadoop 中设置可写?

我正在尝试在Hadoop中创建一个SetWritable。这是我的实现。我刚开始使用MapReduce,我不知道我应该怎么做。我写了下面的代码,但它不起作用。CustomWritable(需要设置):publicclassTextPairimplementsWritable{privateTextfirst;publicHashSetvalueSet=newHashSet();publicTextPair(){}@Overridepublicvoidwrite(DataOutputout)throwsIOException{out.writeInt(valueSet.size());I

hadoop - Mapreduce - 当 reducer 达到 67% 时超时

当reducer达到67%时,我们会收到超时异常,我认为这是在排序阶段之后和reduce阶段之前。请告知我们应该寻找哪些参数来解决问题。16/06/1516:58:13INFOmapreduce.Job:map100%reduce0%16/06/1516:58:23INFOmapreduce.Job:map100%reduce24%16/06/1516:59:05INFOmapreduce.Job:map100%reduce28%16/06/1516:59:08INFOmapreduce.Job:map100%reduce30%16/06/1516:59:39INFOmapreduce

oracle - 如果我们在sqoop中使用6个mapper从oracle中导入数据,那么sqoop和source之间会建立多少个connection

如果我们在sqoop中使用6个mapper从Oracle导入数据,那么sqoop和source之间会建立多少个connection。是单个连接还是每个映射器有6个连接。 最佳答案 根据sqoopdocs:Likewise,donotincreasethedegreeofparallismhigherthanthatwhichyourdatabasecanreasonablysupport.Connecting100concurrentclientstoyourdatabasemayincreasetheloadonthedataba

hadoop - 如何将一些数据发送到 Mapper 类(在 HBase 数据库中的数据上运行)

我需要为在HBase中的节点上运行的映射器作业发送一些信息。我已经在类中将数据定义为静态成员,但似乎当映射器在其他节点上运行时,数据并未传输到节点。有什么办法吗?publicclassGetResultFromVerticesIDMapperextendsTableMapper{publicstaticHashMapvertexIDsHashMap;publicstaticintnResultComponents;...} 最佳答案 上面你提到的方式是一种方式..换句话说,如果您发送系统属性,那么它将自动设置为上下文。在运行程序时,

java - HBase:如何在单个扫描操作中指定多个前缀过滤器

我使用前缀过滤器获得了给定部分行键的扫描结果:行键示例:123_abc、456_def、789_ghivarprefix=Bytes.toBytes("123")varscan=newScan(prefix)varprefixFilter=newPrefixFilter(prefix)scan.setFilter(prefixFilter)varresultScanner=table.getScanner(scan)现在,我的问题是如何指定多个前缀过滤器作为扫描操作的输入。结果对象应包含具有给定前缀(例如123或456)的行键值的所有行。我尝试了以下使用FilterList方法但无法获