問題タブ [thrift-protocol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP - クラス 'HbaseClient' が含まれていても見つかりません
これについてしばらく頭を悩ませていました。PHP/Thrift を使用して HBase と通信することを始めたばかりです (Python で問題なく実行できます)。何らかの理由で、以下のコードは $client = new 行に見つからないクラス 'HbaseClient' を生成しています:
文字通り理由がわかりません。Hbase.php インクルード ファイルでは、クライアントは次のように定義されています。
ここで明らかに単純なものが欠けていますか?(完全な HBase.php はこちら: http://pastebin.com/6kd9r2Se )
前もって感謝します!
php - PHP - Thrift 0.9.0 - クラス 'Thrift\Transport\TTransport' が TSocket.php に見つかりません
PHP を thrift で使用しようとしていますが、特定のクラスが見つからないため、適切に実行できません。0.8.0 では問題なくこれを実行できましたが、0.9.0 をダウンロードしたので、thrift ファイルを適切に含める方法について途方に暮れています。
コードのスニペットは次のとおりです。
次に示すように、すべてのファイルがディレクトリに適切に配置されます。
しかし、コマンド ライン (php -f index.php) からファイルを実行すると、次のエラーが表示されます。
クラス 'Thrift\Transport\TTransport' が /home/user/final/Thrift/Transport/TSocket.php の 35 行目に見つかりません
次に何をすべきか本当に途方に暮れています.PHPで「use」コマンドまたは「namespace」を使用することに慣れていません.これはこれを解決するのに役立つと感じています. php の倹約の README には、symfony の使用についても言及されていますが、これは私をさらに混乱させます。
どんなアドバイスでも大歓迎です!
ありがとう!
hbase - Thrift 用のデバッガー?
Thrift を介してメッセージをスニッフィング、スロットル、および変更できるツールを探しています。Web 開発用の Charles Web Proxy に非常によく似たもの。そのようなことはありますか?
javascript - Node Thrift デシリアライゼーション
私は単純なthriftシリアライズ/デシリアライズを試みていますが、次のメッセージで失敗した場合はデシリアライズします:
なぜこれが起こっているのかわかりません。私には、このエラー メッセージは間違った型を取得しているように聞こえますが、シリアル化が機能するため、シリアル化されたオブジェクトには正しい型が必要です。このエラーは、TBinaryProtocol.prototype.skip の実行時に protocol.js ファイルによってスローされます。これが私のコードです:
hive - NONE 認証を実行している HiveServer2 と通信する方法
ruby TCPSocket 経由で HiveServer2 と通信しようとしています。Thrift SASL 仕様に従って、START メッセージを送信してからプレーンな認証情報を送信します。サーバーは空のペイロードで COMPLETE ステータスを返します。チャレンジをペイロードとして返す必要がありますが、空の文字列です。
HiveServer2 は、COMPLETE である 5 つのステータスを返します。サーバーはもう何も返さないため、このソケットを介してこれ以上通信することはできません。
auth_message が間違った方法で構築されているか、他の何かが間違っていると思われます。
HiveServer2 が私の要求を理解する方法を誰か提案できますか?
どんな助けでも大歓迎です。
UPD: Thrift SASL仕様
UPD2: 解決しました! STARTTLS ブロックは次のようになります。
サーバーから COMPLETE ステータスを受信したら、TCLIService::Client を使用して HiveServer2 と通信できます。注意すべき点は 1 つだけです。
基になるトランスポートへのすべての書き込みには、ペイロード データの 4 バイト長を前に付け、その後にペイロードを付ける必要があります。このトランスポートからのすべての読み取りでは、4 バイト長のワードを読み取ってから、この長さのワードで指定されたバイト数をすべて読み取る必要があります。
php - Thrift - Scala から PHP へ (データベースから動的にデータを取得できない)
Neo4j をデータベースとして組み込んだ Scala プロジェクトを開発しました。Thrift サービスを使用して、PHP ファイルから Scala 関数を呼び出しました。Thrift を使用して Php ファイルから Scala 関数を呼び出すことで、Neo4j データベースにデータを挿入できます。しかし問題は、Neo4j データベースからデータを取得しようとするたびに、新しく挿入されたデータを取得できないことです。Thrift サービスを再起動したときにのみ、完全なデータを取得しています。この問題を解決するにはどうすればよいですか?
ruby - 倹約を介して旅客労働者を直接ターゲットにする方法
倹約を使用して、アプリケーションが互いに通信できるようにしようとしています。すべてのアプリケーションは同じネットワークで実行され、すべて Nginx と Phusion Passenger で実行される ruby アプリケーションです。Thrift を使用して Thrift::HTTPClientTransport を使用してアプリ間で通信することに問題はありませんが、これには受信側アプリケーションで HTTP URL を公開する必要があります。このパスへのリクエストを受け取り、呼び出されたメソッドを呼び出し、thrift 経由で応答するラック ミドルウェアを作成しました。
私の質問は、パッセンジャーを実行しているときに、ミドルウェアの必要性を回避し、HTTP トランスポートを盗むにはどうすればよいかということです。旅客ワーカーが利用可能になったときに登録する独自のプロキシ サーバーを作成し、それらの作品にポートを割り当てて、thrift を使用するクライアントが Thrift::BufferedTransport または Thrift::FramedTransport を介してメソッドを直接呼び出すことができるようにすることを含む、いくつかのアイデアを考えました。カスタム プロキシ サービスの必要性を回避する方法が必要であると感じています。
何か案は?