私は非常に奇妙な状況に陥っています。Hbaseを実行するためにthriftを使用してnodeJSクライアントを取得しようとしましたが、戻りデータを取得することを除いて、ほとんどの方法で成功したようです。hbase.0.94.8 (現在は安定版) を実行していますが、確実に実行されています。thrift 0.9.0 を実行しています。ビルドも実行もされています。両方を実行すると、シェルを使用して Hbase にクエリを実行し、thrift の Web ページにアクセスすることもできますが、次のコードを実行しても何も起こりません。
var thrift = require('thrift'),
HBase = require('./Hbase.js'),
HBaseTypes = require('./Hbase_types.js');
var connection = thrift.createConnection('localhost',9090,{ transport: thrift.TBufferedTransport,protocol:thrift.TBinaryProtocol });
connection.on('connect',function(){
console.log('connected');
var client = thrift.createClient(HBase,connection);
client.getTableNames(function(err,data){
if(err)
console.log('there was an error:',err);
else
console.log('hbase tables:',data);
});
});
connection.on('error',function(err){
console.log('error',err);
});
私は間違いなく接続を取得します(または、少なくとも接続イベントが発生します)が、反対側には何もないようです。回答する前に、Hbase マスターは確実に実行されており、thrift は確実に実行されており、9095 で Web ページが、9090 でサービスが (ログで報告されているように) 実行されています。ログは何も起こっていないことを反映しているように見えます (つまり、thrift と hbase のログはリクエストの影響を受けていないようです) が、確実に接続に成功しています。
何かご意見は?