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

hadoop - 分区在hadoop中不起作用

所以在我的代码中,我将数据分为三个部分,但在输出中,即使我将减速器的数量设置为 3,我也只能得到由第 0 个分区重新调整的输出

我的代码

并将减速器的数量设置为

它只给了我第 0 个分区的输出,即返回 0

0 投票
1 回答
2195 浏览

hadoop - Hadoop 流式 KeyFieldBasedPartitioner

我正在从 freebase 转储(标题、别名、类型名称)中提取数据到 avro(还没有在这个工作中)。我正在使用带有 python 的 mapreduce 流。

此作业缩减器需要类型标题(通常是任何对象标题)和对对象的类型 id 引用。备案形式为: id%relation\tvalue

例如:

减速器发出:

标题在引用之前(因此 reducer 会记住它并发出取消引用的记录),并且与一种类型相关的所有记录都必须分区到一个 reducer。这可以通过密钥排序来保证。当我使用复合键时,我需要正确分区记录。我正在使用配置为“-k1,1”的 KeyFieldBasedPartitioner,并将关键字段分隔符设置为“%”。它应该根据对象标识符对数据进行分区,例如“common.topic”或“m.01dyhm”。但我认为我的配置是错误的。它适用于单个减速器(Hortonworks VM),但在 32 节点集群上发出空白文件(我没有直接访问权限,所以我无法有效地进行实验)。我猜分区是错误的,并且没有数据可以加入单个减速器。

这是我的 hadoop 命令:

我的分区器配置正确吗?谢谢你的帮助。

0 投票
1 回答
297 浏览

hadoop - Hadoop获取日期之间的时间差

我在hadoop中苦苦挣扎

由于我的映射器,我得到了关注

继续..

归根结底,我想要这个;

任何输入都受到高度赞赏。干杯

0 投票
1 回答
899 浏览

hadoop - combineFileInputFormat 中的 isSplitable 不起作用

我有数千个小文件,我想用 combineFileInputFormat 处理它们。

在combineFileInputFormat中,一个mapper有多个小文件,每个文件不会被分割。

像这样的小输入文件之一的片段,

我想将整个文件内容传递给映射器。但是,hadoop 将文件分成了一半。

例如,上面的文件可能会被拆分成

但我希望处理整个文件的内容。

这是我的代码,它在hadoop中引用Reading file as single record

被驱动的代码

我的映射器代码

我的 CombineFileInputFormat,它覆盖 isSplitable 并返回 false

WholeFileRecordReader

我希望每个映射器都解析多个小文件,并且每个小文件都不能拆分。

但是,上面的代码将剪切(拆分)我的输入文件并引发解析错误(因为我的解析器会将行拆分为标记)。

在我的概念中,combineFileInputFormat 会将多个文件收集到一个拆分中,每个拆分都将输入一个映射器。因此,一个映射器可以处理多个文件。

在我的代码中,最大输入拆分设置为 25MB,所以我认为问题在于 combineFileInputFormat 将拆分输入拆分的小文件的最后一部分以满足拆分大小限制。

但是,我已经覆盖 isSplitable 并返回 false,但它仍然拆分小文件。

这样做的正确方法是什么?

我不确定是否可以为映射器指定文件数量,而不是指定输入拆分大小?

0 投票
0 回答
186 浏览

hadoop - 如何根据时间戳/日期拆分日志文件

为了管理报告的目的,我必须分析一个巨大的日志文件。

日志文件的格式如下:-

[2014-08-28 08:49:40 GMT][Level:DEBUG] 来自 UGUBUKBBBHJGJ.mt.site (123.131.21.20) 的连接,用户:com.my.solution.name.abc 的用户:12345678

[2014-08-28 08:49:41 GMT][Level:DEBUG] 来自 TYIYIYPOYUUGG.mt.site (123.131.21.20) 的连接,用户:12345678,com.my.solution.name.def

[2014-08-29 05:55:21 GMT][Level:DEBUG] 来自 OJPPMMJOOHJIH.mt.site (123.131.22.33) 的连接,用户:com.my.solution.name.ghi 的用户:12345678

[2014-08-29 05:55:22 GMT][Level:DEBUG] 来自 HGJJKHKHKHKJH.mt.site (123.131.22.33) 的连接,用户:com.my.solution.name.jkl 的用户:12345678

我已经用一些虚拟值替换了日志中的实际值。

如何拆分我的日志文件,使我的一个输入拆分仅包含单个日期的日志,因此一个映射器处理一天的所有日志。

0 投票
1 回答
647 浏览

hadoop-partitioning - Hadoop TotalOrderPartitioner

我正在尝试通过以下代码在 hadoop 中使用总订单分区器:

此代码在运行时抛出异常如下:

0 投票
2 回答
13515 浏览

hadoop - 失败:ParseException:无法识别列规范中“交换”“字符串”“,”附近的输入

我正在使用最新的 AWS Hive 版本0.13.0

运行以下(创建表)查询时出现上述错误。

如果我将交换重命名为“xch”,它会成功创建表。任何原因?

0 投票
1 回答
527 浏览

mapreduce - 如何在 map/reduce 中覆盖 shuffle/sort,否则,如何将 map/reduce 中的排序列表从最后一个元素获取到 patitioner

假设只有一个减速器。

我的方案是获得大学中前 N 名得分手的名单。数据是格式的。默认情况下,Map/reduce 框架按升序对数据进行排序。但是我希望列表按降序排列,或者至少如果我可以从最后访问排序列表,我的工作变得非常容易。我可以将数据限制在一个限制内,而不是向 reducer 发送大量数据。(我想覆盖预定义的随机/排序)感谢和问候 Ashwanth

0 投票
2 回答
88 浏览

hadoop - 如何得到最均匀的分区结果?

我不知道是否有任何算法可以为基于键的数据分区获取最佳分区(需要确保同一结果数据集中的相同键记录)。

例如:我有一个数据集需要分成两部分:</p>

有 2^5 种不同的分区。如

另一个分区是:

后一个分区比前一个分区要好,因为它允许记录的数量更均匀地分布在两个部分。

所以,我需要一个算法来找到最佳分区。

谁能给我一些关于这个话题的建议?我该如何解决这个问题?

谢谢。

0 投票
0 回答
874 浏览

hadoop - Hive 存储桶的自定义哈希函数

我需要使用几个减速器(例如 4)在 Hive 中实现输出结果的总排序。正如我通过链接发现的那样Hive 正在使用表达式:

hash_function(bucketing column) mod num_buckets。

作为输入数字集(41,42,43,51,52,53)的结果,桶将按以下方式查找:

  • 1 桶:52
  • 2 桶:41、53
  • 3 桶:42
  • 4 桶:43,51

所以输出不会以适当的方式排序。也许有办法为数字集设置自定义函数,例如:

  • 1 桶:41,42
  • 2 桶:43,51
  • 3 桶:52
  • 4 桶:53