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

hive - 如何按具有特定分区的配置单元中的数据进行分组?

我有以下内容:

为什么无法group by获取数据?

0 投票
1 回答
979 浏览

hadoop - 使用可变长度/非分隔二进制文件在 hadoop 中拆分

我刚刚开始研究基于 hadoop 的开放街道地图数据摄取器。有几种格式 - 但我一直针对基于协议缓冲区的格式(注意 - 它不是纯 pb)。

在我看来,将文件预拆分为序列文件会更有效 - 而不是以自定义记录阅读器/输入格式处理可变长度编码 - 但需要进行完整性检查。

PBF 格式描述中更详细地描述了该格式 但基本上它是 [BlobHeader,Blob] 块的集合。

有一个 Blob 标头

然后是 Blob(其大小由标头中的 datasize 参数定义)

一旦你进入blob显然会有更多的结构 - 但我会在映射器中处理它 - 我想做的是最初每个映射器有一个blob(后来可能是每个映射器的一些blob)。

其他一些输入格式/记录读取器使用“足够大”的拆分大小,然后向后/向前搜索到分隔符 - 但由于没有分隔符可以让我知道 blob/headers 的偏移量 - 并且没有索引也指向他们 - 如果不首先通过文件流式传输,我看不到任何方法来获得我的分割点。

现在我不需要从磁盘上实际读取整个文件——我可以从读取标题开始,使用该信息查找 blob,将其设置为第一个分割点,然后重复。但这是我能想到的预分割成序列文件的唯一替代方法。

有没有更好的方法来处理这个 - 或者如果没有,对这两个建议的想法?

0 投票
1 回答
1516 浏览

java - 使用 -libjars 的 MapReduce 流作业,自定义分区器失败:“找不到类”

我正在尝试将自定义(java)分区器附加到我的 MapReduce 流作业。我正在使用这个命令:

其中重要的一点是文件 NumericPartitioner.jar,它位于运行命令的同一文件夹中(比 Hadoop 根安装低一级。)这是它的代码:

然而,当我尝试运行上述命令时,我得到:

这是怎么回事,我怎样才能让 mapReduce 找到我的分区器?

0 投票
2 回答
194 浏览

hadoop - 分区器或多个输出

我想听听您对 Partitioner vs MultipleOutputs 的看法。
假设我有一个包含密钥的文件

我想要 2 个文件:一个文件包含以开头的键0:,另一个包含以1:. 我应该使用哪种方法:
1) 使用自定义分区器,它将解析键并为 getPartition() 返回 0 或 1。
2)在reduce阶段使用MultipleOutputs.write,通过解析key并为MultipleOutputs.write的参数 提供zeroor 。onenamedOutput

哪一个更好?对我来说,1) 更好,因为减速器处理单个文件。

0 投票
1 回答
452 浏览

java - Hadoop 中的默认哈希分区器将哪两个不同的键分配给同一个减速器?

正如我们所知,这Hadoop保证了来自不同的相同密钥mappers将被发送到相同的reducer.

但是如果两个不同的key有相同的hash值,它们肯定会去相同的 reducer,那么它们会被有序地发送到相同的 reduce方法吗?哪个部分负责这个逻辑?

非常感谢!

0 投票
2 回答
694 浏览

hadoop - Hadoop如何分配给reducers来处理不平衡的负载 - CustomPartition

我有一个 map reducer 作业,它必须在多个输出中输出,我正在使用 multipleOutputFormat,如本例所示:http: //grepalex.com/2013/05/20/multipleoutputs-part1/

这是挑战:

  • 如果我的分区器向每个减速器发送一个键(假设键是指单独的输出文件),那么我的一些具有大量数据的减速器将永远占用。
  • 如果我的分区器随机发送每个减速器(theKey+randomNumber),那么许多减速器写入多个输出,我有 IO 问题。

作为解决方案:

  • option1:根据权重为reducers分配key。所以所有的减速器都有相同的负载。(1 个大键被发送到 5 个不同的减速器,而 6 个小键被发送到单个减速器)

  • 选项2:再次根据权重分配键,但确保减速器只能取一个键。(1 个大键被发送到 5 个不同的,但 6 个小键也被发送到单独的减速器)

优点缺点:

  • 在选项 1 中:我有平衡减速器,但一些减速器写入不同的文件(小键)。
  • 在选项 2 中:我有不平衡的减速器,但限制了减速器的最大负载,并且每个减速器都写入自己的文件。

这两个选项都在合理的时间内运行。我需要一些关于我应该选择哪一个的建议。

谢谢

0 投票
1 回答
4318 浏览

hadoop - 使用 hive 在大范围分区中选择数据

我使用 hive 在大范围分区中选择数据时遇到了一些问题

这是我要执行的 HQL:

"cdate" 是表 RAW_TABLE 的分区

但是在给我工作ID后它卡住了

一旦我将其更改为:

然后它开始工作

有什么解决方案可以帮助我执行第一个 HQL?

感谢您的帮助!

0 投票
0 回答
467 浏览

c++ - 未定义对 hadoopPipes 的引用

我为 MapReduce 任务编写了以下代码

当运行代码以及以下生成文件时:-

显示以下错误:-

在函数partitionReducer::reduce(HadoopPipes::ReduceContext&)': partitionMR.cpp:(.text._ZN16partitionReducer6reduceERN11HadoopPipes13ReduceContextE[partitionReducer::reduce(HadoopPipes::ReduceContext&)]+0x1a9): undefined reference toHadoopUtils::toString(int)' collect2: ld 返回 1 退出状态 make: * [partitionMR] 错误 1

关于我得到的错误的任何线索?!?

请帮助!谢谢 !

0 投票
1 回答
49 浏览

hadoop - 在map reduce中通过map函数的文件

是否有可能以某种方式通过每个映射函数传递一组文件。要求是为不同的 2 操作并行处理每个文件。我对 map reduce 完全陌生,我使用 JAVA 作为我的编程语言。

0 投票
3 回答
103 浏览

java - 提供具有相同文件拆分的地图拆分

如何为馈送到映射器的文件的每一行提供同一文件的拆分?

基本上我想做的是

我可以在java中使用map reduce来做到这一点吗?