我在创建配置单元数据库时遇到以下错误
失败:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。com/facebook/fb303/FacebookService$Iface(脸书服务)Hadoop version:**hadoop-1.2.1**
HIVE Version:**hive-0.12.0**
Hadoop路径:/home/hadoop_test/data/hadoop-1.2.1
配置单元路径:/home/hadoop_test/data/hive-0.12.0
我复制了Hive*。jar、jline-.jar、antlr运行时。jar从hive-0.12.0/lib到hadoop-1.2./lib
12条答案
按热度按时间ni65a41a1#
确保正确指定了位置
ncecgwcz2#
通过以下方式,我解决了这个问题。
如果无法设置该值,则会得到错误。
Error: Error while processing statement: Cannot modify hive.msck.path.validation at runtime. It is not in list of params that are allowed to be modified at runtime (state=42000,code=1)
在e1d1e1中添加内容:
rsaldnfx3#
设置hive.metastore.schema。配置单元站点中的验证属性。xml设置为true,默认为false。
有关更多详细信息,请查看此link。
pcrecxhr4#
出现此错误的原因是我们向外部配置单元表添加了一个新列设置hive.msck.path。验证=忽略;已修复配置单元查询,但Impala还有其他问题,可通过以下步骤解决:
执行使元数据无效后,Impala查询开始失败,返回错误:列的Parquet模式不兼容
Impala错误解决方案:设置PARQUET_FALLBACK_SCHEMA_RESOLUTION=名称
如果您正在使用Cloudera发行版,以下步骤将使更改永久化,您不必为每个会话设置选项。
Cloudera Manager->Clusters->Impala->Configuration->Impaal Daemon查询选项高级配置代码段(安全阀)
添加值:PARQUET_FALLBACK_SCHEMA_RESOLUTION=名称
注意:在Cloudera Manager中设置参数时,不要使用SET或分号
lg40wkob5#
使用“hive--hiveconf-hive.root.logger=DEBUG,console”打开hive-cli,从那里启用日志和调试,在我的例子中,分区的camelcase名称写在hdfs上,我创建了hive表,其名称完全用小写。
zmeyuzjn6#
亚马逊雅典娜
如果您是因为Amazon Athena错误而来到这里的,您可以在下面使用这一点。首先检查所有文件是否具有相同的架构:
我们删除了带有
awscli
的文件。另请参阅包含一些额外步骤的docs。
wgmfuz8q7#
没有一个建议的解决方案对我有效。
我在表位置路径中发现了一个名为
_$folder$
的0B文件(在同一级别的分区中)。删除它使我可以运行e1d1e而没有问题。此文件是从s3还原(回滚到以前的版本控制状态)合并而来的
rt4zxlrg8#
我也面临同样的错误。在我的例子中,原因是在HDFS仓库中创建了一个同名目录。删除此目录后,它解决了我的问题。
zed5wv109#
这可能是因为您的metastore_db已损坏。从metastore_db中删除.lck文件。
zynd9foi10#
hive-e“msck repair table database.tablename”它将修复表的元存储模式;
9q78igpj11#
要使用MSCK正确解决此问题
1.如果旧分区的路径不存在,请使用
ALTER TABLE dbname.tablename DROP PARTITION IF EXISTS (partition_column_name > 0);
1.运行MSCK修复命令
MSCK REPAIR TABLE dbname.tablename;
为什么需要步骤1,因为如果从文件系统(HDFS)中删除分区,
MSCK Repair
命令将出错,所以通过先从元存储中删除所有分区,然后与MSCK同步,可以正确添加所需的分区guicsvcw12#
当底层hdfs目录被新分区更新时,我遇到了类似的问题,因此hive元存储不同步。
使用以下两个步骤求解:
1.MSCK table table_name显示了所有分区不同步的内容。
1.MSCK REPAIR table table_name添加了缺少的分区。