gpt4 book ai didi

hadoop - 在配置单元 0.9 中创建索引

转载 作者:可可西里 更新时间:2023-11-01 16:34:10 26 4
gpt4 key购买 nike

我正在尝试在 Hive 0.9 中的表上创建索引。一个表有 10 亿行,另一个表有 3000 万行。我使用的命令是(除了创建表等)

  CREATE INDEX DEAL_IDX_1 ON TABLE DEAL (ID) AS 
'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'
WITH DEFERRED REBUILD;

alter index DEAL_IDX_1 ON DEAL rebuild;

set hive.optimize.autoindex=true;
set hive.optimize.index.filter=true;

对于 30 磨坊。行表,重建过程看起来不错(mapper 和 reducer 都完成了)直到最后它打印

  Invalid alter operation: Unable to alter index.
FAILED: Execution Error, return code 1
from org.apache.hadoop.hive.ql.exec.DDLTask

查看日志,发现有错误

java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver"

不知道为什么会遇到这个错误,但无论如何,我添加了 derby-version.jar:

add jar /path/derby-version.jar

报错已解决,但还是报错:

org.apache.hadoop.hive.ql.exec.FileSinkOperator: 
StatsPublishing error: cannot connect to database

不确定如何解决问题。不过,我确实在 hive/warehouse 下看到了创建的索引表。

对于10亿行的表,那就是另外一回事了。映射器卡在了 2% 左右。并显示错误

FATAL org.apache.hadoop.mapred.Child: Error running child : 
java.lang.OutOfMemoryError: Java heap space

我试图强制执行最大堆大小以及最大 mapr 内存(请参阅某处提到的设置,但不在配置单元的配置设置中):

set mapred.child.java.opts =  -Xmx6024m
set mapred.job.map.memory.mb=6000;
set mapred.job.reduce.memory.mb=4000;

然而,这无济于事。映射器仍会卡在 2% 并出现相同的错误。

最佳答案

我在索引创建和配置单元/仓库中遇到了类似的问题,但整个过程失败了。我的 index_name 是 TypeTarget(你的是 DEAL_IDX_1),在尝试了很多天不同的方法后,将 index_name 全部小写(typetarget)解决了这个问题。我的问题出在 Hive 0.10.0 中。

此外,未找到类和 StatsPublishing 问题是因为默认情况下,hive.stats.autogather 处于打开状态。在 hive-site.xml 中将其关闭 (false) 应该可以解决这些问题。

希望这可以帮助任何寻求快速修复的人。

关于hadoop - 在配置单元 0.9 中创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com