2017-08-01 140 views
0

我安装了单个节点Cloudera以开始了解这些技术。现在,我试图从CSV文件创建HUE表。使用HUE创建Hive表

当我尝试做这件事,正在创建的表,但没有任何数据,只是列结构,我得到了以下错误:

Error while compiling statement: FAILED: SemanticException Line 1:17 Invalid path ''/user/josholsan/ic_data/_glucosa.csv'': No files matching path hdfs://server_name:8020/user/josholsan/ic_data/_glucosa.csv

错误说没有匹配此文件路径,但是当我尝试在终端下面,该文件是正确的有:

hadoop fs -ls hdfs//server_name.8020/user/josholsan/ic_data/_glucosa.csv 

代码HUE正在执行创建表是以下之一:

CREATE TABLE `test`.`cpk` 
(
    `id` bigint , 
    `numsipcod` string , 
    `valor` bigint , 
    `fecharegistro` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
    WITH SERDEPROPERTIES ("separatorChar" = "\t", 
    "quoteChar"  = "\"", 
    "escapeChar" = "\\" 
) 
    STORED AS TextFile TBLPROPERTIES("skip.header.line.count" = "1") 
; 

LOAD DATA INPATH '/user/josholsan/ic_data/_glucosa.csv' INTO TABLE `test`.`glucosa`; 

我也尝试从本地使用LOAD DATA LOCAL INPATH加载文件。

我实际上并不知道如何继续。我一直在检查互联网,但我发现没有帮助我。 有,关于我的注意力叫什么,是该文件的权限,当我写这上面行命令,权限是: - RW-R - R--

不管怎么说,我禁用了权限检查HDFS设置。

任何有HDFS/HUE/Cloudera知识的人都知道这里可能存在哪些问题? 感谢你这么多提前=)

+1

蜂巢需要一个** **目录作为'LOCATION',而不是文件。带领头或下划线的文件通常是由设计_ignored_设计的信号量或临时文件... –

+0

非常感谢你@SamsonScharfrichter。重新命名文件与领先_解决了问题。关于目录LOCATION,你怎么指定你想要加载到表中的文件?它对我没有任何作用。再次感谢你。你能把它作为解决方案发布吗? –

回答

1

TL;DR    重命名文件 - 中的Hadoop生态系统中,数据文件的名字开始与一个圆点或下划线是通常被忽略,被设计。

which files ignored as input by mapper?

(... Hadoop source code excerpt...)

So if you use ... TextInputFormat ... the hidden files (the file name starts with "_" or ".") will be ignored.

蜂房TextFile格式依赖于MapReduce的TextInputFormat - 因此所有带有前导点或下划线开头被忽略的文件;它们应该是信号量(例如Pig或Spark使用的_SUCCESS)或临时目录(例如.impala_insert_staging/)等。

此外,从the Impala documentation的摘录:

The INSERT statement has always left behind a hidden work directory inside the data directory of the table. Formerly, this hidden work directory was named .impala_insert_staging . In Impala 2.0.1 and later, this directory name is changed to _impala_insert_staging .
(While HDFS tools are expected to treat names beginning either with underscore and dot as hidden, in practice names beginning with an underscore are more widely supported.)