我实际上是在尝试开发一个简单的 Node.js 客户端,它可以用来在 Cosmos 表上查询我的 Hive 表。
我首先尝试使用 Node.js 将此实现用于 Hive: https ://github.com/wdavidw/node-thrift-hive 。我的代码如下:
var router = express.Router();
var request = require('request');
var _ = require('lodash');
var hive = require('thrift-hive');
// Client connection
var client = hive.createClient({
version: '0.7.1-cdh3u3',
server: '130.206.80.46',
port: 10000,
timeout: 1000
});
// Execute call
router.route('/')
.get(function(req, res, next) {
client.execute('use default', function(err) {
// Query call
client.query('select * from interserre')
.on('row', function(database) {
console.log(database);
})
.on('error', function(err) {
console.log(err.message);
client.end();
})
.on('end', function() {
client.end();
});
});
})
module.exports = router;
我收到此错误:
events.js:85
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
之后,我尝试使用 Python 示例(由文档提供,只是为了运行一个简单的测试。
我什至无法连接到服务器。
Could not connect to 130.206.80.46:10000
我认为问题在于我们没有提供任何允许我们连接到 Cosmos 门户的信息。使用 Thrift 无法放置您的凭据。服务器无法识别您是真正的 Cosmos 用户并拒绝您的连接。
蟒蛇只是一个测试。我实际上正在做一个 Hackaton,并计划使用 Node.js 来查询我拥有的数据。你认为问题出在哪里?模块?宇宙门户?