创建一个包含 ~40K 列的配置单元 table
Creating a hive table with ~40K columns
我正在尝试创建一个相当大的 table。约 300 万行和约 40K 列使用配置单元。首先,我创建一个空的 table 并将数据插入 table.
但是,我在尝试此操作时遇到了错误。
Unable to acquire IMPLICIT, SHARED lock default after 100 attempts. FAILED: Error in acquiring locks: Locks on the underlying objects cannot be acquire. retry after some time
查询非常简单:
create external table database.dataset (
var1 decimal(10,2),
var2 decimal(10,2),
...
var40000 decimal(10,2)
) location 'hdfs://nameservice1/root/user1/project1';
有人以前见过这个错误吗? Cloudera 表示对列数没有限制,但显然这里遇到了一些系统限制。
此外,我可以在指定位置创建一个较小的配置单元table。
运行 在这个博客 post 中似乎识别并解决了问题:http://gbif.blogspot.com/2014/03/lots-of-columns-with-hive-and-hbase.html
简短回答:配置单元将在查询中传递的字符数有限制,但您可以通过以下选项更改来增加字符数:
alter table "SERDE_PARAMS" alter column "PARAM_VALUE" type text;
由于配置单元因未知原因而失败,因此我使用不同的工具来处理数据(针对上述问题),因此未经测试。如果您遇到类似的问题,请尝试一下并提供更新。
我正在尝试创建一个相当大的 table。约 300 万行和约 40K 列使用配置单元。首先,我创建一个空的 table 并将数据插入 table.
但是,我在尝试此操作时遇到了错误。
Unable to acquire IMPLICIT, SHARED lock default after 100 attempts. FAILED: Error in acquiring locks: Locks on the underlying objects cannot be acquire. retry after some time
查询非常简单:
create external table database.dataset (
var1 decimal(10,2),
var2 decimal(10,2),
...
var40000 decimal(10,2)
) location 'hdfs://nameservice1/root/user1/project1';
有人以前见过这个错误吗? Cloudera 表示对列数没有限制,但显然这里遇到了一些系统限制。
此外,我可以在指定位置创建一个较小的配置单元table。
运行 在这个博客 post 中似乎识别并解决了问题:http://gbif.blogspot.com/2014/03/lots-of-columns-with-hive-and-hbase.html
简短回答:配置单元将在查询中传递的字符数有限制,但您可以通过以下选项更改来增加字符数:
alter table "SERDE_PARAMS" alter column "PARAM_VALUE" type text;
由于配置单元因未知原因而失败,因此我使用不同的工具来处理数据(针对上述问题),因此未经测试。如果您遇到类似的问题,请尝试一下并提供更新。