无法连接到 CFS 节点

Can't connect to CFS node

几个月前我删除了(或退役,不记得了)一个 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 并添加了一个 table thetable。我打开了 dse hive(并注意到 DESCRIBE DATABASE thekeyspace 给了我一个正确的 cfs 路径)。但是,我无法使用 DROP DATABASE thekeyspace.

删除数据库

附加信息:

偶然发现 this 页面,该页面说您需要 TRUNCATE "HiveMetaStore"."MetaStore"(在 cqlsh 中)删除 Hive 节点后。成功了。