【发布时间】:2015-03-21 06:05:05
【问题描述】:
几个月前,我删除了(或停用,不记得了)一个 DSE 分析节点(IP 为 10.14.5.50)。当我现在尝试执行 dse shark (CREATE TABLE ccc AS SELECT ...) 查询时,我现在收到:
15/01/22 13:23:17 ERROR parse.SharkSemanticAnalyzer: org.apache.hadoop.hive.ql.parse.SemanticException: 0:0 Error creating temporary folder on: cfs://10.14.5.50/user/hive/warehouse/mykeyspace.db. Error encountered near token 'TOK_TMP_FILE'
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:1256)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:1053)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:8342)
at shark.parse.SharkSemanticAnalyzer.analyzeInternal(SharkSemanticAnalyzer.scala:105)
at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:284)
at shark.SharkDriver.compile(SharkDriver.scala:215)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:342)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:977)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888)
at shark.SharkCliDriver.processCmd(SharkCliDriver.scala:347)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413)
at shark.SharkCliDriver$.main(SharkCliDriver.scala:240)
at shark.SharkCliDriver.main(SharkCliDriver.scala)
Caused by: java.lang.RuntimeException: java.io.IOException: Error connecting to node 10.14.5.50:9160 with strategy STICKY.
at org.apache.hadoop.hive.ql.Context.getScratchDir(Context.java:216)
at org.apache.hadoop.hive.ql.Context.getExternalScratchDir(Context.java:270)
at org.apache.hadoop.hive.ql.Context.getExternalTmpFileURI(Context.java:363)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData(SemanticAnalyzer.java:1253)
... 12 more
我猜上面的错误是由于我的键空间引用了旧节点:
shark> DESCRIBE DATABASE mykeyspace;
OK
mykeyspace cfs://10.14.5.50/user/hive/warehouse/mykeyspace.db
Time taken: 0.997 seconds
我有什么办法可以修复这个错误的数据库路径吗?
尝试(但失败)了重新创建数据库的解决方法:在cqlsh 中,我创建了一个键空间thekeyspace 并添加了一个表thetable。我打开了dse hive(并注意到DESCRIBE DATABASE thekeyspace 给了我一个正确的cfs 路径)。但是,我无法使用 DROP DATABASE thekeyspace 删除数据库。
附加信息:
- 我的键空间中没有外部表。
- 对表进行 SELECT 有效。
- 设置
-hiveconf cassandra.host=WORKING_NODE_IP没有帮助。 - 以下命令返回正确的 IP:s(即不是
X.X.X.50):dsetool listjtdsetool jobtrackerdsetool sparkmaster
- 当我使用
dse hive执行查询时,我遇到了同样的错误。 - 当我在其 REPL 中执行
set;时,没有 Shark 变量引用X.X.X.50。 - 我正在运行 DSE 4.5。
【问题讨论】:
-
我现在正在通过将现有集群节点之一更改为 IP 10.14.5.50 来解决此问题。对于一个小问题,这是一个荒谬的解决方案,但我还没有找到改变 Hive 中实际 IP 的方法。
-
开始相信这应该被认为是一个错误。在 Twitter 上 Ping DataStax 关于这个:twitter.com/jensrantil/status/558557186734170112
标签: datastax-enterprise datastax