我为 Impala 创建了一个cloudera集群。
cloudera版本:cloudera express 5.8.1
impala版本:2.6.0-cdh5.8.0版本
如果我通过 impala-shell
:
create table test as select 1;
返回以下错误:
WARNINGS: Failed to open HDFS file for writing: hdfs://[DNhostname]:8020/user/hive/warehouse/test/_impala_insert_staging/[...]/[...].0.
Error(255): Unknown error 255
但是,如果我运行:
create table test (testcol int);
insert into test select 1;
…创建表时没有任何问题。
关于为什么第一个语句会失败而第二组命令会成功,以及我能做些什么来修复它,有什么想法吗?我可能把目录权限搞砸了,不管是在本地还是在hdfs上,不管我是怎么设置的 dfs.permissions
设置为false可关闭hdfs权限。我不知道如何检查本地文件夹以确保正确的用户具有正确的权限。不管是哪种情况,我都不知道为什么权限会导致 CREATE TABLE AS SELECT
声明失败但不是 CREATE
,那么 INSERT
.
我还应该提到这一点 DNhostname
是我所在的hdfs datanode/impala守护进程的主机名,而不是namenode的主机名。这让我担心因为 DNhostname
原来是我的namenode所在的地方;我把它移到另一个主机上的原因超出了这个问题的范围。有没有可能 CREATE TABLE AS SELECT
仍希望namenode DNhostname
不知为什么?
1条答案
按热度按时间a14dhokn1#
因为在create语句中没有指定新路径,所以您正在使用默认db路径创建一个新表。如果您尝试在这个过程中使用另一个数据库,您很可能会成功。
这将证明此数据库在元存储中的位置错误。转到metastore.dbs并在那里找到数据库的id。您需要正确设置数据库的位置,如: