问题标签 [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 投票
2 回答
285 浏览

hadoop - hadoop - 如何确定总映射器

我是 hadoop 新手,刚刚安装了 oracle 的 virtualbox 和 hortonworks 的沙箱。然后,我下载了最新版本的 hadoop 并将 jar 文件导入到我的 java 程序中。我复制了一个示例 wordcount 程序并创建了一个新的 jar 文件。我使用沙箱将此 jar 文件作为作业运行。字数按预期工作得很好。但是,在我的工作状态页面中,我看到输入文件的映射器数量被确定为 28。在我的输入文件中,我有以下行。

Ramesh 在 XXXXXXXXXX XX XXXXX XX XXXXXXXXX 学习。

映射器总数是如何确定为 28 的?

我将以下行添加到我的 wordcount.java 程序中进行检查。

另外,我想知道输入文件是否只能包含 2 行。(即)假设我有一个输入文件,如下所示。

第1行,第2行,第3行,第4行,第5行,第6行.......第20行

我应该将输入文件拆分为 20 个不同的文件,每个文件只有 2 行吗?

0 投票
1 回答
95 浏览

hadoop - 在 Hadoop 中生成多个相同大小的输出文件

有哪些方法可以在 Hadoop 中查找 X 数据范围,以便可以在 reducer 步骤中将这些范围用作分区?

0 投票
1 回答
11126 浏览

hadoop - Hadoop - 为单个键生成多个值

我能够成功地更改 hadoop 中的wordcount程序以满足我的要求。但是,我还有另一种情况,我对 3 个值使用相同的键。假设我的输入文件如下。

目前在我的 map/reduce 程序中,我正在做类似下面的事情。这里 A 是键,1 是值。

我需要我的 map reduce 来执行类似下面的操作。

我可以在下面的 3 个不同程序中执行它们,并且可以产生输出。

但是,我希望他们在一个程序本身中完成。基本上,从我的地图功能我想这样做。

有什么办法可以在同一个程序中完成,而不是编写三个不同的程序?

编辑:

让我提供一个更清楚的例子。我需要做类似下面的事情。

我的最终输出是,

3 是两个整数之和,3.0 是浮点数之和,字符串是两个字符串的串联。

0 投票
1 回答
429 浏览

hadoop - 已经分区的输入数据可以改进 hadoop 处理吗?

我知道在 mapper 和 reducer 之间的中间步骤中,hadoop 会在到达 reducer 的途中对数据进行排序和分区。

由于我正在处理映射器输入中已经分区的数据,有没有办法利用它并可能加速中间处理,因此不会再进行排序或分组?

添加一些细节:

当我在 S3 上存储数据时,假设我的存储桶中只有两个文件。第一个文件将存储用户 id 的下半部分的记录,另一个文件将存储用户 id 的上半部分的值。每个文件中的数据不一定要排序,但可以保证与用户相关的所有数据都位于同一个文件中。

如:

根据我的阅读,我可以使用一个流式作业和两个映射器,每个映射器都会吸收两个文件中的一个,但会吸收整个文件。这是真的?

接下来,假设映射器只会输出一个唯一的 Key 一次,关联的值是该 Key 的出现次数。(我意识到这更像是一个减速器的责任,但只是为了我们这里的例子)

是否可以禁用 Mapper 中这些输出键的排序和分区,并让它们自由飞到减速器?

或者再举一个例子:想象一下我所有的输入数据只包含每个唯一键的一行,我不需要在 reducer 的最终输出中对这些数据进行排序。我只想散列每个键的值。我可以在减速器之前禁用该排序和分区步骤吗?

0 投票
1 回答
1137 浏览

hadoop - 使用 KeyFieldBasedPartitioner 进行 hadoop 文件拆分

我有一个大文件,格式如下

我正在尝试使用 Hadoop Streaming 根据示例名称拆分此文件。我提前知道有多少样本,所以可以指定我需要多少个减速器。这篇文章正在做一些非常相似的事情,所以我知道这是可能的。

我尝试使用以下脚本将此文件拆分为 16 个文件(有 16 个样本)

这有点工作 - 一些文件只包含一个示例名称。然而,大多数 part* 文件是空白的,并且一些 part* 文件包含多个样品名称。

有没有更好的方法来确保每个 reducer 只获得一个样本名称?

0 投票
2 回答
859 浏览

hadoop - 创建比 reducer 更多的分区

在我的单机上进行本地开发时,我相信默认的 reducer 数量是 6。在特定的 MR 步骤中,我实际上将数据划分为 n 个分区,其中 n 可以大于 6。根据我的观察,它看起来像这些分区中只有 6 个实际得到处理,因为我只看到 6 个特定分区的输出。几个问题:

(a) 我需要将reducer的数量设置为大于partition的数量吗?如果是这样,我可以在运行 Mapper 之前/期间/之后执行此操作吗?

(b) 为什么其他分区没有排队?有没有办法在处理另一个分区之前等待reducer完成处理一个分区,这样无论reducer的实际数量是否小于分区数,都可以处理所有分区?

0 投票
5 回答
14812 浏览

hadoop - Hadoop中数据是如何拆分的

Hadoop 是否根据程序中设置的映射器数量来拆分数据?也就是说,有一个大小为 500MB 的数据集,如果 mapper 的数量是 200 个(假设 Hadoop 集群允许同时有 200 个 mapper),每个 mapper 是否给定 2.5 MB 的数据?

此外,所有映射器是否同时运行或其中一些可能会串行运行?

0 投票
2 回答
1679 浏览

hadoop - Hadoop 中的自定义分区器

我有一些数据由 0 到 200 几百万范围内的 id 键入,我需要将其拆分为 0-5mil、5mil-10mil 等范围内的美元。

我正在尝试在最后一部分使用 Hadoop 上的自定义分区器,以便我的代码的最后一部分看起来像这样:

我的分区器如下所示:

但它似乎根本没有被调用。即使我用return 1;跨文件的数据替换返回行似乎是散列分布的默认行为。

0 投票
1 回答
3918 浏览

for-loop - 如何对具有多个类别的大型 Hive 表进行分区

我想在配置单元中对我的表进行分区,以便为行中的每个唯一项目创建一个分区。大约 40 亿行表有大约 250 个分区,所以我想使用类似 for 循环或 distinct 的东西。这是我在代码中的想法(显然没有奏效)

ALTER TABLE myTable 如果不存在则添加

PARTITION(myColumn = distinct myColumn);

还是 Hive 中有某种循环?这需要UDF吗?如果可能的话,蜂巢答案会更好。

谢谢。

0 投票
1 回答
1026 浏览

hadoop - Hadoop命令行解释

有人可以解释一下这种语法吗?

为什么我们在 bin/hadoop 之后很快就使用 jar hadoop*examples*.jar 是什么意思..?wordcount 是工作的名称,还是我们要求 hadoop 不计算字数..?

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/