我安装了单个节点Cloudera,开始学习这项技术。现在,我正在尝试从CSV文件创建一个关于HUE的表。
当我尝试这样做时,正在创建表但没有任何数据,只有列结构,我收到以下错误:
编译语句时出错:FAILED:SemanticException Line 1:17 路径''/user/josholsan/ic_data/_glucosa.csv'无效:没有文件 匹配路径 HDFS://服务器名:8020 /用户/ 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知识的人都知道这可能是哪个问题? 非常感谢你提前=)
答案 0 :(得分:1)
TL;DR
重命名您的文件 - 在Hadoop生态系统中,名称以点或下划线开头的数据文件通常通常被忽略。
来自which files ignored as input by mapper?
(... Hadoop源代码摘录...)
因此,如果您使用...
TextInputFormat
...隐藏文件(文件 名称以“_”或“开头。”)将被忽略。
Hive TextFile
格式依赖于MapReduce TextInputFormat
- 因此忽略所有带有前导点或前导下划线的文件;它们应该是信号量(例如Pig或Spark使用的_SUCCESS
)或临时目录(例如.impala_insert_staging/
)等。
此外,摘录自the Impala documentation:
INSERT语句总是留下隐藏的工作目录 在表的数据目录中。以前,这个隐藏的工作 目录名为
.impala_insert_staging
。在Impala 2.0.1和 之后,此目录名称将更改为_impala_insert_staging
(虽然预计HDFS工具会以对象开头处理名称 下划线和点隐藏,在实践名称中以。开头 下划线得到更广泛的支持。)