私は実際に、Cosmos テーブルで Hive テーブルをクエリするために使用できる単純な Node.js クライアントを開発しようとしています。
最初に、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 ユーザーであることを識別できず、接続を拒否します。
Pythonは単なるテストでした。私は実際にハッカトンを行っており、Node.js を使用して自分が持っているデータを照会することを計画していました。問題はどこから来ると思いますか?モジュール?コスモスポータル?