HBase テーブルの作成 Java API とシェルの例
⚡ スマートサマリー
HBaseはデータをテーブルに格納し、それらのテーブルは2つの方法で作成および操作できます。 Java HTableを使用したAPIDescriptまたは、HBaseAdmin を使用するか、HBase シェルで直接 create コマンドを使用します。

HBaseでテーブルを作成する方法 Java API
HBaseでは、テーブルは2つの方法で作成できます。 Java API および HBase シェルを介して。このセクションでは、 Java APIとは、アプリケーションがより大きなジョブの一部として、プログラムによってテーブルを作成したり、データをロードしたりできるようにするものです。
介して Java APIを使用すると、HBaseにテーブルを作成し、テーブルにデータをロードすることもできます。 Java コーディング。ここで設定するのは次の2点です。
- HBaseとの接続を確立する Java APIです。
- 使い方 Eclipse の Java コーディング、デバッグ、テスト。
HBaseでテーブルを作成する手順は次のとおりです。 Java APIです。
ステップ 1) Java プロジェクトイン Eclipse
このステップでは、 Java プロジェクトイン Eclipse HBase接続の場合は、「HbaseConnection」という名前になります。
新 Java 以下のプロジェクトダイアログには、「HbaseConnection」プロジェクトがセットアップされている様子が表示されています。
上記のスクリーンショットを見ると、次のようになります。
- この欄にプロジェクト名を入力してください。この例では、プロジェクト名は「HbaseConnection」です。
- デフォルトの保存場所を指定するには、このチェックボックスをオンにしてください。ここでは、/home/hduser/work/HbaseConnection が保存先パスです。
- チェックボックスをオンにします Java ここの環境。この場合 JavaSE-1.7は Java 版。
- ファイルの保存場所を選択してください。今回の場合は、2番目のオプション「ソースファイルと授業ファイル用の別フォルダを作成する」を選択しました。
- 「完了」ボタンをクリックすると、「HbaseConnection」プロジェクトが作成されます。 Eclipse そして開く Eclipse ホームページ。
ステップ2)ビルドパスを設定します Eclipse
ソフトウェア設定ページで、下図のように Eclipse ホームページから、以下の手順に従ってビルドパス構成を開きます。
Right click on project -> Select Build Path -> Configure build path
以下のスクリーンショットは、ビルドパス設定を開くために使用する右クリックメニューを示しています。
上記のスクリーンショットから:
- プロジェクトを右クリックします。
- ビルドパスを選択してください。
- 「ビルドパスの設定」を選択します。
「ビルドパスの設定」をクリックすると、下のスクリーンショットに示すような別のウィンドウが開きます。「ライブラリ」タブでは、HBaseとHadoopのJARファイルをプロジェクトに追加します。
このステップでは、関連する HBase JAR を Java プロジェクトはスクリーンショットに示されているとおりです。
- 追加すべき重要なJARファイル:hbase-0.94.8.jarとhadoop-core-1.1.2.jar。
- 「図書館」タブをご覧ください。
- 「外部JARファイルを追加」オプションを押してください。
- 必要な重要なJARファイルを選択してください。
- 「完了」ボタンを押して、これらのファイルを「src」に追加します。 Java 図書館関連のプロジェクト。
JARファイルを追加すると、以下に示すようにプロジェクトの「src」ディレクトリに表示されます。
このプロジェクトに含まれるすべてのJARファイルは、Hadoopエコシステムで使用できる状態になりました。
ステップ 3) HBase 接続を確立する
このステップでは、HBaseConnection.javaを使用して、HBase接続を確立します。 Java コーディング。
ソフトウェア設定ページで、下図のように Eclipse トップメニューで、 Java プログラムは以下のとおりです: 実行 -> 実行 -> Java アプリケーション。以下のメニューには、起動中のプログラムが表示されます。
- 実行を選択します。
- 「実行」を選択 Java 応用。
- このコードは、HBaseとの接続を確立します。 Java APIです。
- このコードを実行すると、HBaseに「education」と「projects」という2つのカラムファミリーを持つ「guru99」テーブルが作成されます。現時点では、HBaseには空のスキーマのみが作成されます。
以下のコード抜粋は HTable を強調表示していますDescriptまたは、テーブルスキーマを構築する addFamily 呼び出し:
上記のスクリーンショットから、以下の機能を実行していることがわかります。
- HTableの使用Descriptまたは、HBaseに「guru99」テーブルを作成することもできます。
- addFamily メソッドを使用して、「education」と「projects」を列ファミリーとして「guru99」テーブルに追加します。
以下のコードは、HBaseとの接続を確立し、2つのカラムファミリーを持つ「guru99」テーブルを作成します。このコードをHBaseConnection.javaドキュメント内に配置してください。
// Place this code inside Hbase connection import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; Import org.apache.hadoop.hbase.client.HBaseAdmin; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
これは、HBaseConnection.java に実行前に配置する必要がある必須コードです。 Java プログラム。
このプログラムを実行すると、HBaseとの接続が確立され、その結果、列名を含むテーブルが作成されます。
- テーブル名は「guru99」です。
- 列ファミリーは「教育」と「プロジェクト」です。
ステップ 4) HBase で作成されたテーブルを確認する
HBaseシェルモードで「list」コマンドを使用すると、「guru99」テーブルが2つのカラムファミリーで作成されているかどうかを確認できます。「list」コマンドは、HBaseで作成されたすべてのテーブルに関する情報を提供します。
HBaseシェルでlistコマンドを実行すると、以下に示すように新しいテーブルが作成されていることが確認できます。
- Code HBaseシェルで「list」コマンドを実行して確認します。
- 「list」コマンドを実行すると、HBaseに作成されたテーブルが表示されます。この例では、「guru99」テーブルが作成されていることが確認できます。
HBase シェルを使用したテーブルの作成
ほかに Java API を使用すると、HBase シェルから直接テーブルを作成できます。これは、迅速なテストのためにテーブルを設定する最も速い方法です。シェルを使用して HBase でテーブルを作成する構文は次のとおりです。
Syntax: create <tablename>, <columnfamilyname>
例:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
上記の例では、各カラムファミリーの仕様に従って指定された名前でHBaseにテーブルを作成する方法を説明しています。さらに、テーブルスコープ属性を渡すこともできます。
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
ここで、{NAME=>'Edu', VERSIONS=>…} ブロックは、「Edu」という名前の列ファミリーと、その列ファミリーが保持するセルバージョンの数を設定します。大きな数値はあくまで例示であり、実際には VERSIONS は 3 や 5 などの小さな値になります。
HBaseテーブルの一覧表示、説明、および検証
テーブルの作成は、HBase でテーブルを扱う最初のステップにすぎません。「guru99」テーブルが作成されたら、いくつかの一般的なコマンドを使用して、データの読み取り、書き込み、または変更を行う前に、テーブルを検査して状態を確認できます。これらのコマンドはすべて、 HBaseシェル.
listコマンドは、HBase内のすべてのユーザーテーブルを返します。
hbase> list
describeコマンドは、テーブルの構造(列ファミリーや現在有効になっているかどうかなど)を表示します。
hbase> describe 'guru99'
existsコマンドはテーブルが存在するかどうかを確認し、is_enabledコマンドはテーブルが書き込みを受け付けられるかどうかを報告します。
hbase> exists 'guru99' hbase> is_enabled 'guru99'
これらの読み取り専用チェックは、いつでも安全に実行できます。これらは、テーブルが正しく作成されたことを確認し、データをロードする前に列ファミリーをレビューする最も迅速な方法です。
HBaseテーブルを変更する
HBaseのテーブルスキーマは作成後に固定されません。alterコマンドは、テーブルを再作成することなく、テーブルの列ファミリーとテーブルスコープ属性を変更します。HBaseのバージョンによっては、最初にテーブルを無効にしてからalterコマンドを実行し、再度有効にする必要がある場合があります。
「guru99」テーブルに新しい列ファミリーを追加するには:
hbase> alter 'guru99', {NAME => 'contact'}
カラムファミリーが保持するバージョン数を設定するには:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
テーブルから列ファミリーを削除するには:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
テーブルスコープの属性を変更することもできます。たとえば、テーブルを読み取り専用に設定したり、リージョンファイルの最大サイズを128MBに設定したりできます。
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
alterコマンドはスキーマを書き換えるため、本番テーブルへの変更は慎重に計画し、その後describeコマンドで結果を確認してください。
HBaseテーブルの無効化、有効化、削除
テーブルを削除したり、特定の変更を適用したりするには、HBaseではまずテーブルを無効にする必要があります。テーブルを無効にするとオフラインになるため、クライアントはテーブルへの読み書きができなくなり、構造的な変更を安全に行うことができます。
テーブルを無効化し、is_disabledでその状態を確認します。
hbase> disable 'guru99' hbase> is_disabled 'guru99'
テーブルを再度有効にして、読み書きを再開してください。
hbase> enable 'guru99'
テーブルを削除するには、まず無効化する必要があります。ping テーブルとその中のすべてのデータを完全に削除するため、使用には十分注意してください。
hbase> disable 'guru99' hbase> drop 'guru99'
複数のテーブルを一度に削除するには、drop_all は正規表現に一致する名前のすべてのテーブルを削除します。create、alter、disable、enable、drop を組み合わせることで、テーブルの全ライフサイクルをカバーできます。 データ処理 HBaseテーブル内。






