0

我已经低于 HiveRows。第一个工作并创建表格。第二个在加载时失败。

--HiveRow1
"create table hotel_price_data (hotel string, room string, bus_date string, price string)
row format delimited fields terminated by '|' location '/tmp'"
--HiveRow2
"LOAD DATA LOCAL INPATH 'C:/tmp/out.txt' OVERWRITE INTO TABLE  hotel_price_data"

HiveRow1 可以工作并且可以看到在 Sandbox UI 中创建的表。

HiveRow2,加载部分目前是一个问题。

##########错误
13/07/24 19:45:55 INFO parse.ParseDriver: Parsing command: LOAD DATA LOCAL INPATH 'C:/tmp/out.txt' OVERWRITE INTO TABLE  hotel_price_data
13/07/24 19:45:55 INFO parse.ParseDriver: Parse Completed
13/07/24 19:45:55 INFO hive.log: DDL: struct hotel_price_data { string hotel, string room, string bus_date, string price}
FAILED: Hive Internal Error: java.lang.RuntimeException(java.net.UnknownHostException: **unknown host: sandbox**)
java.lang.RuntimeException: java.net.UnknownHostException: unknown host: sandbox
    at org.apache.hadoop.hive.ql.Context.getScratchDir(Context.java:170)
    at org.apache.hadoop.hive.ql.Context.getExternalScratchDir(Context.java:222)
    at org.apache.hadoop.hive.ql.Context.getExternalTmpFileURI(Context.java:315)
    at org.apache.hadoop.hive.ql.parse.LoadSemanticAnalyzer.analyzeInternal(LoadSemanticAnalyzer.java:225)
    at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:243)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:431)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:336)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:909)
    at org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:191)
    at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:187)
    at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:127)
    at talenddemosjava.hive_connection_0_1.hive_connection.tHiveRow_4Process(hive_connection.java:1314)
    at talenddemosjava.hive_connection_0_1.hive_connection.tHiveRow_1Process(hive_connection.java:1245)
    at talenddemosjava.hive_connection_0_1.hive_connection.tHiveRow_2Process(hive_connection.java:1132)
    at talenddemosjava.hive_connection_0_1.hive_connection.tFileInputDelimited_1Process(hive_connection.java:1019)
    at talenddemosjava.hive_connection_0_1.hive_connection.tHiveConnection_1Process(hive_connection.java:461)
    at talenddemosjava.hive_connection_0_1.hive_connection.runJobInTOS(hive_connection.java:1628)
    at talenddemosjava.hive_connection_0_1.hive_connection.main(hive_connection.java:1494)
Caused by: java.net.UnknownHostException: **unknown host: sandbox**
4

1 回答 1

0

我不确定这在 Windows 上是如何工作的,但我认为您的文件路径C:/tmp/out.txt不正确。根据手册“文件路径可以是:

  • 相对路径,例如:project/data1
  • 绝对路径,例如:/user/hive/project/data1
  • 带有方案和(可选)权限的完整 URI,例如:hdfs://namenode:9000/user/hive/project/data1"

该文件需要在 HDFS 存储中才能使用LOAD DATA LOCAL INPATH. 我猜C:/tmp/out.txt是指本地存储上的文件,而不是 HDFS 中的文件。您可以使用hdfs -put 命令上传文件

于 2013-07-25T07:32:54.177 回答