3

私は実際に、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 の例を使用しようとしました (単純なテストを実行するためだけにドキュメントで提供されています)。

http://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/BigData_Analysis_-_User_and_Programmer_Guide#Python

サーバーに接続することさえできませんでした。

Could not connect to 130.206.80.46:10000

問題は、Cosmos ポータルに接続するための情報を提供していないことにあると思います。Thrift では、資格情報を入力する方法はありません。サーバーは、あなたが実際の Cosmos ユーザーであることを識別できず、接続を拒否します。

Pythonは単なるテストでした。私は実際にハッカトンを行っており、Node.js を使用して自分が持っているデータを照会することを計画していました。問題はどこから来ると思いますか?モジュール?コスモスポータル?

4

1 に答える 1

2

現在、Java、Python、および Node.js で記述された HiveServer1 と HiveServe2 の両方の Hive クライアント サンプルのスイートを Cygnus に追加しています。これは Cygnus 0.9.0 で登場したものです。それまでの間、作業 (Java および Python のクライアント) の現在のステータスをdevelopブランチで確認できます。

Node.jsに関しては、あなたが経験したように、認証されていない方法でHiveServer1( node-thrift-hive、 )に接続できるライブラリがあります(技術的に言えば、それらはHiveサーバーのNOSASL構成でのみ機能します)。node-hiveHiveServer2 に関しては、 などのライブラリでも同じことが起こりますjsh2

于 2015-09-24T14:27:52.163 に答える