使用 HUE 创建 Hive table

Creating Hive table using HUE

我安装了一个单节点的Cloudera来开始学习这项技术。现在,我正在尝试通过 CSV 文件在 HUE 上创建 table。

当我尝试这样做时,正在创建 table 但没有任何数据,只有列结构,我收到以下错误:

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 正在执行以创建 table 的代码如下:

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 知识的人都知道这可能是这里的问题所在? 非常感谢你 =)

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.

Hive 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.)