问题标签 [hadoop-partitioning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
36600 浏览

hadoop - hadoop map减少二次排序

谁能解释一下 hadoop 中的二次排序是如何工作的?
为什么必须使用GroupingComparator它以及它如何在 hadoop 中工作?

我正在浏览下面给出的链接,并对 groupcomapator 的工作方式产生疑问。
谁能解释一下分组比较器的工作原理?

http://www.bigdataspeak.com/2013/02/hadoop-how-to-do-secondary-sort-on_25.html

0 投票
1 回答
94 浏览

hadoop-partitioning - hadoop 分区程序得到不正确的减少计数

我今天正在研究分区器。它是 hadoop 自定义分区器中的基本程序。下面是我的分区程序代码片段。

公共类 VowelConsPartitioner 扩展 Partitioner {

}

我像这样在我的驱动程序类中设置了减速器....

job.setNumReduceTasks(3); job.setPartitionerClass(VowelConsPartitioner.class);

我想保留超过 1 个减速器。但我只在一个减速器中获得了 o/p。此外,如果您看到分区程序代码,第一个 sysout(我已经评论过)给我 redCnt 为 1。我不确定当我从我的驱动程序类中将其计数设置为 3 时会发生什么。有人可以帮我解决这个问题吗?

仅供参考...我正在制作 jar 并在 HDFS 上运行它。

0 投票
2 回答
118 浏览

hadoop - 可以减少任务在hadoop中接受压缩数据

我们看到 map 可以接受和输出压缩和未压缩的数据。我正在接受cloudera培训,老师提到减少任务输入必须是关键值,因此不能处理压缩数据。

那正确吗?如果那是正确的,当从洗牌器/分区器传输错误数据以减少任务时,我如何处理网络延迟。

谢谢你的帮助。

0 投票
1 回答
504 浏览

hadoop - map-reduce 框架如何将输入文件分割成块?

我有一个迭代 mapreduce 作业,其中,当一个块(比如说 Chunk i)被映射器读取时,一些关于该块中记录的信息存储在一个名为 F_i 的辅助文件中。在下一次迭代(作业)中,不同的映射器可能会读取 Chunk i。但是,这个映射器必须更新辅助文件 Fi 中的一些信息。有什么机制可以做到这一点吗?

我相信如果我们能找到一种方法来区分不同的块,我们就能解决它。例如,如果每个块都有一个唯一的名称,那么映射器可以简单地读取它所馈送的块的辅助文件。

0 投票
1 回答
616 浏览

hadoop - map-reduce 中的映射器如何读取小尺寸的输入?

我有一个 map-reduce 作业,其输入是一个大数据集(假设大小为 100GB)。这个 map-reduce 工作所做的是将大数据分成块并编写单独的文件,每个数据块一个。也就是说,作业的输出是多个文件,每个文件大小为 64MB。

此 map-reduce 作业的输出用作另一个 map-reduce 作业的输入。由于新输入由多个文件组成,每个文件大小为 64MB,第二个 map-reduce 作业中的每个映射器是只读取一个文件还是读取多个文件?

0 投票
0 回答
236 浏览

java - 如何最好地决定一个巨大字符串的映射器输出/减速器输入

我需要改进使用 HBase 作为源和接收器的 MR 工作。

基本上,我正在从映射器中的 3 个 HBase 表中读取数据,将它们写成一个巨大的字符串,让 reducer 进行一些计算并转储到 HBase 表中。

映射器的输出是这样的:

这是针对 Table1 的 1 行。同样有 1900 万个映射器输出。

我有兴趣根据 HouseHoldID 值对其进行排序,所以我正在使用这种技术。我对pair的V部分不感兴趣,所以我有点忽略它。我的映射器类定义如下:

要完成我的 MR 工作,需要 22 小时才能完成,这根本不是可取的。我应该以某种方式优化它以某种方式运行得更快..

我的 HBase Table1 有 21 个区域,因此产生了 21 个映射器。我们正在运行一个 8 节点 cloudera 集群。

我在这里做错了吗?

我应该使用自定义 SortComparator 或 Group Comparator 或类似的东西来提高效率吗?

0 投票
2 回答
206 浏览

hadoop - Hadoop 如何决定在桶/节点之间分配?

我是 Map/Reduce 和 Hadoop 框架的新手。我在单台机器上运行 Hadoop 程序(用于试用)。我有 n 个输入文件,我想要这些文件中的单词摘要。我知道 map 函数返回键值对,但是 map 是如何调用的呢?在每个文件上一次还是在每个文件的每一行上一次?我可以配置它吗?

假设每个键都调用“减少”是否正确?

0 投票
1 回答
540 浏览

hadoop - 将数据从所有 mapper 发送到所有 reducer

在此问题被标记为重复之前,请通读。

这个问题被问了很多次,没有明确的答案。假设我的任务是计算unigram数百万个文件中每个单词的概率。我可以从映射器发出字数,reducers 可以汇总每个单词的字数。然而,为了计算概率,我们需要单词的总数。一种方法是使用特殊键将每个映射器的单词数发送到每个化简器,并对键进行排序,以使这些计数早于单个计数到达。然后,reducer 可以简单地将从映射器接收到的计数相加,以获得单词总数。

但是如何让映射器向所有减速器发送计数?

我可以从工作属性中找出减速器的总数,比如n. 有没有办法Context.write() n从每个映射器调用次数并依次指定分区号从0n-1,以便数据到达所有减速器?

0 投票
2 回答
616 浏览

java - Hadoop Map Task:读取指定输入文件的内容

我对 Hadoop 环境很陌生。最近,我运行了一个基本的 mapreduce 程序。这很容易运行。

现在,我在输入路径目录中有一个包含以下内容的输入文件

我需要逐行读取该文件的行,并在指定的输出目录中创建一个具有这些名称(即 fileName1、fileName2 等)的新文件。

我写了下面的地图实现,但没有成功

有人可以解释一下我错过了什么吗?

谢谢

0 投票
0 回答
438 浏览

java - Hadoop 磁盘使用率(中间减少)

我是 Hadoop 的新手,我正在使用集群,我的磁盘报价为 15GB。如果我尝试在一个大数据集(大约 25GB)上执行wordcount 样本,我总是会收到异常“超出 xxxx 的 DiskSpace 配额:”。

我在异常后检查了我的磁盘使用情况,它与报价相差甚远。这是由于临时文件还是中间作业?是否可以删除临时/中间文件?

(我可以通过 Java 代码修改配置,我无法直接访问 .xml 配置文件)

谢谢!;)