Hive内部错误:java.lang.RuntimeException(java.net.UnknownHostException

时间:2013-07-24 23:49:03

标签: hive

我的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可以工作,可以看到在沙盒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**

1 个答案:

答案 0 :(得分:0)

我不确定它在Windows上是如何工作的,但我不认为你的文件路径C:/tmp/out.txt是正确的。根据{{​​3}}“文件路径可以是:

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

在使用LOAD DATA LOCAL INPATH加载文件之前,该文件必须位于HDFS存储中。我猜C:/tmp/out.txt指的是本地存储上的文件,而不是HDFS中的文件。您可以使用hdfs -put the manual