hadoop - 如何使用 Hive 处理倾斜数据?

标签 hadoop hive inner-join jointable

我正在配置单元中进行连接操作。但是当 reducer 达到 99% 时,reducer 卡住了。

然后我发现表中有倾斜数据。 前任。表 A 中有 100 万条数据,表 B 中只有 10k。在表 A 中,连接列有 80% 的值相同,其余为其他。因此 Hive reducer 停留在该值。

这是我的查询:

INSERT INTO TABLE xyz SELECT m.name, m.country, m.user_type, m.category FROM A m JOIN category n ON (m.name = n.name) where country=2 GROUP BY m.name, m.country, m.user_type, m.category;

所以请提出可能的解决方案。我如何处理这种数据的连接操作。

最佳答案

从 Hive 0.10.0 开始,可以将表创建为倾斜或更改为倾斜(在这种情况下,在 ALTER 语句之后创建的分区将倾斜)。此外,倾斜表可以通过指定 STORED AS DIRECTORIES 选项来使用列表分桶功能。有关详细信息,请参阅 DDL 文档:Create Table , Skewed Tables , 和 Alter Table Skewed or Stored as Directories

引用使用此 link .

关于hadoop - 如何使用 Hive 处理倾斜数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36147699/

相关文章:

Apache Pig 的 Python UDF 失败

dataframe - spark jdbc-到源的多个连接?

hadoop - hadoop dfs -ls给出了本地文件系统中不存在的文件夹列表

sql - Hadoop配置单元查询

hadoop - 当我们在HIVE中添加一个 jar 时会发生什么?

MySql - 计数和分组存在问题

mysql - SQL JOIN从表flights对应的表格表2中返回记录

sql - Select and Update with join 给出不同的记录

android - 在可移植设备上运行 MapReduce

hadoop - Hive - LIKE 运算符