问题标签 [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.
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 行吗?
hadoop - 在 Hadoop 中生成多个相同大小的输出文件
有哪些方法可以在 Hadoop 中查找 X 数据范围,以便可以在 reducer 步骤中将这些范围用作分区?
hadoop - Hadoop - 为单个键生成多个值
我能够成功地更改 hadoop 中的wordcount程序以满足我的要求。但是,我还有另一种情况,我对 3 个值使用相同的键。假设我的输入文件如下。
目前在我的 map/reduce 程序中,我正在做类似下面的事情。这里 A 是键,1 是值。
我需要我的 map reduce 来执行类似下面的操作。
我可以在下面的 3 个不同程序中执行它们,并且可以产生输出。
但是,我希望他们在一个程序本身中完成。基本上,从我的地图功能我想这样做。
有什么办法可以在同一个程序中完成,而不是编写三个不同的程序?
编辑:
让我提供一个更清楚的例子。我需要做类似下面的事情。
我的最终输出是,
3 是两个整数之和,3.0 是浮点数之和,字符串是两个字符串的串联。
hadoop - 已经分区的输入数据可以改进 hadoop 处理吗?
我知道在 mapper 和 reducer 之间的中间步骤中,hadoop 会在到达 reducer 的途中对数据进行排序和分区。
由于我正在处理映射器输入中已经分区的数据,有没有办法利用它并可能加速中间处理,因此不会再进行排序或分组?
添加一些细节:
当我在 S3 上存储数据时,假设我的存储桶中只有两个文件。第一个文件将存储用户 id 的下半部分的记录,另一个文件将存储用户 id 的上半部分的值。每个文件中的数据不一定要排序,但可以保证与用户相关的所有数据都位于同一个文件中。
如:
根据我的阅读,我可以使用一个流式作业和两个映射器,每个映射器都会吸收两个文件中的一个,但会吸收整个文件。这是真的?
接下来,假设映射器只会输出一个唯一的 Key 一次,关联的值是该 Key 的出现次数。(我意识到这更像是一个减速器的责任,但只是为了我们这里的例子)
是否可以禁用 Mapper 中这些输出键的排序和分区,并让它们自由飞到减速器?
或者再举一个例子:想象一下我所有的输入数据只包含每个唯一键的一行,我不需要在 reducer 的最终输出中对这些数据进行排序。我只想散列每个键的值。我可以在减速器之前禁用该排序和分区步骤吗?
hadoop - 使用 KeyFieldBasedPartitioner 进行 hadoop 文件拆分
我有一个大文件,格式如下
我正在尝试使用 Hadoop Streaming 根据示例名称拆分此文件。我提前知道有多少样本,所以可以指定我需要多少个减速器。这篇文章正在做一些非常相似的事情,所以我知道这是可能的。
我尝试使用以下脚本将此文件拆分为 16 个文件(有 16 个样本)
这有点工作 - 一些文件只包含一个示例名称。然而,大多数 part* 文件是空白的,并且一些 part* 文件包含多个样品名称。
有没有更好的方法来确保每个 reducer 只获得一个样本名称?
hadoop - 创建比 reducer 更多的分区
在我的单机上进行本地开发时,我相信默认的 reducer 数量是 6。在特定的 MR 步骤中,我实际上将数据划分为 n 个分区,其中 n 可以大于 6。根据我的观察,它看起来像这些分区中只有 6 个实际得到处理,因为我只看到 6 个特定分区的输出。几个问题:
(a) 我需要将reducer的数量设置为大于partition的数量吗?如果是这样,我可以在运行 Mapper 之前/期间/之后执行此操作吗?
(b) 为什么其他分区没有排队?有没有办法在处理另一个分区之前等待reducer完成处理一个分区,这样无论reducer的实际数量是否小于分区数,都可以处理所有分区?
hadoop - Hadoop中数据是如何拆分的
Hadoop 是否根据程序中设置的映射器数量来拆分数据?也就是说,有一个大小为 500MB 的数据集,如果 mapper 的数量是 200 个(假设 Hadoop 集群允许同时有 200 个 mapper),每个 mapper 是否给定 2.5 MB 的数据?
此外,所有映射器是否同时运行或其中一些可能会串行运行?
hadoop - Hadoop 中的自定义分区器
我有一些数据由 0 到 200 几百万范围内的 id 键入,我需要将其拆分为 0-5mil、5mil-10mil 等范围内的美元。
我正在尝试在最后一部分使用 Hadoop 上的自定义分区器,以便我的代码的最后一部分看起来像这样:
我的分区器如下所示:
但它似乎根本没有被调用。即使我用return 1;
跨文件的数据替换返回行似乎是散列分布的默认行为。
for-loop - 如何对具有多个类别的大型 Hive 表进行分区
我想在配置单元中对我的表进行分区,以便为行中的每个唯一项目创建一个分区。大约 40 亿行表有大约 250 个分区,所以我想使用类似 for 循环或 distinct 的东西。这是我在代码中的想法(显然没有奏效)
ALTER TABLE myTable 如果不存在则添加
PARTITION(myColumn = distinct myColumn);
还是 Hive 中有某种循环?这需要UDF吗?如果可能的话,蜂巢答案会更好。
谢谢。
hadoop - Hadoop命令行解释
有人可以解释一下这种语法吗?
为什么我们在 bin/hadoop 之后很快就使用 jar hadoop*examples*.jar 是什么意思..?wordcount 是工作的名称,还是我们要求 hadoop 不计算字数..?
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/