0

特定の datanode\regionserver にデータを挿入したいのですが、

これにはどのような構成変更が必要ですか?

たとえば、4 つのデータノード A、B、C、D のホスト名があるとします。4 つのスレッドが実行されています。1 つのスレッドはデータノード A と B にのみレコードを挿入しています。別のスレッドはデータノード C にレコードを挿入/アクセスしています。4 番目のスレッドは C と D にレコードを挿入しています。

このタイプの挿入のためにできる設定はありますか? プログラムによる挿入\アクセスに使用される hbase\hadoop API はどれですか?

もう1つ、クライアントのJavaアプリケーションとhbase dbおよびhadoopクラスタの両方で使用される同じ文字フォーマット(UTF8)を指定できますか?

よろしく、ラシュミ

4

1 に答える 1

1

hbase では、特定のデータ ノードまたはリージョン サーバーを実際にターゲットにすることはできません。特定の地域をターゲットにできると思います。各地域サーバーに地域が 1 つしかないことを確認すれば、探しているものにかなり近いものになります。これは hbase の典型的な使用パターンではないと言えるので、これが本当にあなたが望むものであることを確認します。

リージョンを管理するには、hbase.hregion.max.filesize を 100GB などに設定し、手動でテーブルを事前に分割して、分割を無効にする必要があります。HBaseAdmin クラスを使用して、テーブルを事前に分割できます。

文字形式に関しては、hbase にはデータ型や文字セットがなく、すべてがバイトとして格納されるため、utf8 を使用しても問題はありません。

Java を使用している場合は、標準の Java APIを使用できます。他の言語の場合は、Thrift、Avro、および REST インターフェイスを選択できますが、いずれも Java API を使用するほど高速ではありません.

于 2012-07-25T01:35:53.543 に答える