最近のプロジェクトでは、HBase 内の関連データの読み書きに thrift と php を使用する必要があるため、関連するクラスを整理し、いくつかのテストを実行しました。
現在 HBase を操作するために使用している主な方法は次のとおりです:1. HBase シェル。主に構成後にシェルを実行し、count 'xxxx'、scan 'xxxx' などのコマンドを通じて HBase 内のデータを表示します。
2. ネイティブ Java API を通じて、RESTfull API をカプセル化し、提供された API (http) メソッドを通じて HBase を操作します
3. Thrift のシリアル化テクノロジーを使用します。Thrift は C++、PHP、Python などの言語をサポートしており、他の異種システムが HBase を操作するのに適しています。
4. HBase を操作するために以前に作成されたグラフィカル クライアントである HBasExplorer を使用します (http://www.cnblogs.com/scotoma/archive/2012/12/18/2824311.html)。5. ハイブ/ピッグ、これはまだ実際には使用されていません。
現在は、Facebook によってオープンソース化されている 3 番目のメソッド Thrift について主に説明しています。公式 Web サイトは http://thrift.apache.org/ です。
ダウンロード、インストール、開始するには、参考記事の内容を参照してください
実行が成功したかどうかを確認してください...
Hbaseを動作させるためにPHPのクラスファイルを使用する クラスファイルの生成方法は参考記事を参照してください。 ただし、私がテストした生成方法にはバグがありますが、生成されたクラスファイルの名前空間は公式からのものです。ソースコードライブラリ 生成されるのは名前空間Hbaseなのでここは注意が必要です ドライバークラスファイルをデバッグし、必要に応じてダウンロードして使用できます。 https://github.com/xinqiyang/buddy/tree/master/Vender/thrift
次に、テスト操作を実行します。http://blog.csdn.net/hguisu/article/details/7298456 のテスト クラスを参照して、テストを作成し、デバッグします。 リーリー
ここでは、createTable、Insert Row、Get Table、Update Row、Scan Table を操作します。これらの一般的に使用されるものなので、最初によく理解してください。
実際の操作中は次の点に注意する必要があります:
1.phpのバージョンは名前空間をサポートする必要があるため、5.3以降のサポートが必要です
2. thrift の php 拡張機能をインストールします。これはまだ適切な php ファイルを使用する必要があるようです。パフォーマンスが向上するかどうかはわかりません。 3. スキャン関連の動作については、開始/停止とプレフィックススキャンをテストしましたが、まだ大丈夫な気がします。
4. PHP の名前空間が非常にイライラする気がします。どうすればよいですか...セグメンテーションがとても本物ではないように感じます...
次に、時間があれば、他のいくつかの操作を実行し、ストレス テストを実施して、これをクラスターにデプロイします。
誰もがすぐに始められるように、この記事 (参考記事) を書いてくれた hguisu に感謝します。
更新内容:
20130517 クラスター上で Thrift を開始した後、書き込み操作がまだ不安定で、深刻なタイムアウトが発生していることがわかりました。実際、この操作クラスはまだ複雑すぎて最適化できないと感じています。
を書きます。
参考記事:
http://blog.csdn.net/hguisu/article/details/7298456
http://www.bkjia.com/PHPjc/440283.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440283.html技術記事最近のプロジェクトでは、HBase で関連するデータを読み書きするために thrift と php を使用する必要があるため、関連するクラスを整理し、HBase を操作するために使用する主なメソッドは次のとおりです...