最近のプロジェクトは、私が連絡先データが大きすぎないか.NETプラットフォームの開発者が、午前として、Hadoopのビッグデータ環境への我々のデータを格納する必要が始めた(彼はまだあるので、大きすぎるA)。幸いにも、Googleに百度、またはその履歴データの一部が巣に転送されるように、HBaseの多次元のプロセスからデータを読み取るために、HBaseのにデータを書き込むためのC#、およびビッグデータ開発され、解決策を見つけた、またはデータの一部は、機械学習ライブラリの調査にプッシュされます。
まず、定義された古道具のHBaseにアクセスし、クラスC#を生成し、
1.1 HBaseの送信元アドレスは倹約の定義を取得するには
HBaseのバージョンは、実行のHBaseに対応する必要があります。
むしろthrift2よりも、倹約を選択してください、その理由は、派手な倹約インターフェイスを使用する方が簡単です。
1.2倹約、生成されたC#コードを取得します。
倹約は、コードが「私を参照することができ、生成スリフトに半分の時間」
リサイクルサービスのHBaseの第二に、開始
次のコマンドを入力します。
HBaseのデーモン。SH 倹約を開始 HBase -daemons。SHスタートスリフト(クラスタ版)
倹約は、デフォルトのポート9090で、あなたはHBaseの-site.xml構成ファイルにデフォルトのポートを変更することができます。
C#の持つ第三に、書き込みテストコード
VaRの輸送= 新 TSocket(" 10.34.51.62 "、9090 ); TPROTOCOLプロトコル = 新しいTBinaryProtocol(トランスポート) VaRのクライアント= 新しいHbase.Client(プロトコル)。 transport.Open(); VAR tablsの=のclient.getTableNames()。 foreachの(VARのトンでtabls) { Console.WriteLineを(Encoding.Default.GetString(T))。 } // 写 突然変異変異= 新しい突然変異(); mutation.Column = Encoding.UTF8.GetBytes(" PERSONAL_DATA:ABC " ); mutation.Value = Encoding.UTF8.GetBytes(" こんにちは" ); client.mutateRow(Encoding.UTF8.GetBytes(" EMP ")、Encoding.UTF8.GetBytes(" 008 ")、新しいリスト<変異> {突然変異}、NULL ); Console.WriteLineを(" 成功を追加" ); VaRの行= client.getRow(Encoding.UTF8.GetBytes(" EMP ")、Encoding.UTF8.GetBytes(" 008 ")、NULL ); foreachの(VARの R における行) { Console.WriteLineを(Encoding.UTF8.GetString(r.Row))。 foreachの(VARの C でr.Columns) { Console.WriteLineを(" - " + Encoding.UTF8.GetString(c.Key)+ " :" + Encoding.UTF8.GetString(c.Value.Value)); } } client.deleteAllRow(Encoding.UTF8.GetBytes(" EMP ")、Encoding.UTF8.GetBytes(" 008 ")、NULL ); Console.WriteLineを(" 成功の削除" ); Console.ReadKey(); transport.Close();
コードは、HBaseの書き込み、読み込み、削除、およびその他の機能を実装します。
第四に、テスト結果
正常に書き込まれ。
V.の概要
注1. Mavenの依存関係を見た古道具とバージョンを選択します
2. thirftバージョンではなく、thrift2
rowKey +キーと同じ列の3 HBaseのは、データが変更されます