在伪分布式模式下运行配置单元脚本时出错

时间:2013-11-22 16:39:35

标签: hadoop hive hiveql

我正在尝试以伪分布式模式运行配置单元脚本。当我运行交互模式时,脚本中的命令运行得非常好。但是,当我在脚本中添加所有这些命令并运行时,我收到错误。

剧本:

  add jar /path/to/jar/file;
  create table flights(year int, month int,code string) row format serde 'com.bizo.hive.serde.csv.CSVSerde';
  load data inpath '/tmp/hive-user/On_Time_On_Time_Performance_2013_1.csv' overwrite into table flights;

HDFS中确实存在'On_Time_On_Time_Performance_2013_1.csv'。我得到的错误是:

   FAILED: SemanticException Line 3:17 Invalid path ''/tmp/hive-user/On_Time_On_Time_Performance_2013_1.csv'': No files matching path hdfs://localhost:54310/tmp/hive-user/On_Time_On_Time_Performance_2013_1.csv

  fs.default.name=hdfs://localhost:54310

我的hadoop运行正常。

有人可以提供任何指示吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这不是一个真正的答案,但它是一个更详细和可重复的问题表述。

a)需要从这里下载csv-serde:git clone https://github.com/ogrodnek/csv-serde

b)使用mvn包构建它 c)创建一个文本文件,其中包含与给定表的三个字段对应的三个逗号分隔字段。 c)如果路径是“/ shared”,则以下是要加载的正确序列:

add jar /shared/csv-serde/target/csv-serde-1.1.2-0.11.0-all.jar;
drop table if exists flights;
create table flights(year int, month int,code string) row format serde 'com.bizo.hive.serde.csv.CSVSerde' stored as textfile;
load data inpath '/tmp/hive-user/On_Time_On_Time_Performance_2013_1.csv' overwrite into table flights;

我确实看到与OP中相同的错误:FAILED:SemanticException Line 2:17无效路径''/ tmp / hive-user / On_Time_On_Time_Performance_2013_1.csv'':没有匹配路径的文件hdfs:// localhost:9000 / TMP /蜂房用户/ On_Time_On_Time_Performance_2013_1.csv