Hbase公式ドキュメント(中国語
http://abloz.com/hbase/book.html#quickstart
ディレクトリ
- 2. Apache HBase (TM) 設定方法
- 3. アップグレード
- 4. HBase シェル
- 5. データモデル
- 6. HBaseとスキーマ設計
- 7. HBaseとMapReduce
- 8. HBaseのセキュリティ
- 9.
- 10. 外部API
- 11. パフォーマンスチューニング
- 12. HBaseのトラブルシューティングとデバッグ
- 13.ケーススタディ
- 14. HBaseの運用管理
- 15. HBaseの作成と開発
- 16. ZooKeeper
- 17.コミュニティ
- A. よくある質問
- B. ディープhbck
- C. HBaseにおける圧縮
- D. YCSB:ヤフー・クラウド・サービス評価とHBase
- E. HFileフォーマットバージョン2
- F. HBaseに関する追加情報
- G. HBaseの歴史
- H. HBaseとApacheソフトウェア財団(ASF)
- J. 0.95 RPC仕様
- 用語集
- 5.1. テーブル webtable 5.2. カラムファミリーアンカー 5.3. コラムファミリーコンテンツ 8.1. オペレーションとパーミッションのマッピング
-
シーケンス
1. はじめに
テーブルインデックス
-
2.1.
Hadoopバージョン対応表
この本は HBase の公式ガイドです。バージョンは 0.95-SNAPSHOT . HBaseの公式サイトで見ることができます。また ジャバドック , JIRA および ウィキ をクリックすると、より詳細な情報をご覧いただけます。
本書は編集中です。パッチの提供は、公式HBase JIRA .
このバージョンは、翻訳者のレベルにより制限され、明確に理解できない部分や必要のない部分は、オリジナルの英文が残されています。
トップページ
もしあなたが、エキサイティングな分散コンピューティングの世界に初めて足を踏み入れるのであれば、面白い時代だと感じることでしょう。分散コンピューティングは難しく、分散システムを作るには、ハードウェア、ソフトウェア、ネットワークなど多くのスキルが必要です。クラスタは様々なエラーで故障する可能性があります。例えば、HBase自体のバグ、(OSを含む)設定ミス、ハードウェアの故障(ネットワークカードやディスク、メモリまで)今までスタンドアロンでプログラムを書いていた人は、やり直しが必要です。こちらが参考になります。 分散コンピューティングの誤謬 .
目次
1.2 節、"クイックスタート"。 は、HBaseのスタンドアロン版を実行する方法を説明します。 彼はローカルディスク上で実行します。 セクション 2、"設定" は、HDFS上で動作する分散型HBaseの実行方法について説明します。
このガイドでは、1台のマシンにHBaseをインストールする方法について説明します。このガイドでは シェル テーブルを作成し、行を挿入し、そして行を削除し、最後にHBaseを停止する、という作業を10分もあれば行うことができます。
を選択します。
Apacheダウンロードミラー
をダウンロードします。
HBase リリース
. をクリックします。
stable
ディレクトリにあるファイルをダウンロードし、接尾辞が
.tar.gz
ファイル; 例えば
hbase-0.95-SNAPSHOT.tar.gz
.
解凍して、解凍先のディレクトリに移動してください。
$ tar xfz hbase-0.95-SNAPSHOT.tar.gz
$ cd hbase-0.95-SNAPSHOT
これで、HBaseを起動する準備ができました。しかし
conf/hbase-site.xml
を設定するために
hbase.rootdir
で、HBaseがデータを書き込むディレクトリを選択します。
<?xml version="1.0"? >
<?xml-stylesheet type="text/xsl" href="configuration.xsl"? >
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///DIRECTORY/hbase</value>
</property>
</configuration>
は
DIRECTORY
を、ファイルを書き込むディレクトリに移動します。デフォルトの
hbase.rootdir
へのポイントです。
/tmp/hbase-${user.name}
ということは、再起動後にデータを失うことになります(OSが
/tmp
ディレクトリ)
では、HBaseを起動します。
$ . /bin/start-hbase.sh
starting Master, logging to logs/hbase-user-master-example.org.out
HBaseとZookeeperを含むすべてのサービスが単一のJVM上で動作しています。HBaseのログは
logs
ディレクトリに保存されるので、起動に問題がある場合はこのログを確認することができます。
は ジャワ ?
Oracleの1.6版がインストールされていることを確認する必要があります
ジャワ
. コマンドラインでjavaと入力して応答があれば、Javaがインストールされています。そうでない場合は、まずインストールしてから
conf/hbase-env.sh
を変更するために
JAVA_HOME
は、Javaをインストールしたディレクトリを指しています。
使用方法 シェル HBaseに接続する
$ . /bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010
hbase(main):001:0>
入力 ヘルプ 次に <RETURN> シェルコマンドの列を見ることができます。このヘルプは非常に詳しく書かれていますが、注意すべきはテーブル名、行、列を引用符で囲む必要があることです。
という名前のテーブルを作成します。
test
テーブルで、1つのカラムファミリである
cf
. すべてのテーブルをリストアップして作成を確認し、いくつかの値を挿入することができます。
hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds
上記では、3つの行を別々に挿入しています。最初の行のキーは
row1
であり、列は
cf:a
という値を持つ
value1
HBaseのカラムは、カラムファミリーのプレフィックスとカラム名をコロンで区切って構成されています。例えば、この行のカラム名は
a
.
挿入の確認.
このテーブルをスキャンして、次のようにします。
hbase(main):007:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1288380727188, value=value1
row2 column=cf:b, timestamp=1288380738440, value=value2
row3 column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds
行を取得し、次のようにします。
hbase(main):008:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds
を無効にしてからこのテーブルをドロップすると、先ほど行ったことがクリアされます。
hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds
シェルを閉じる
hbase(main):014:0> exit
上記の手順は、実験とテストのみを目的としています。次に セクション 2.の "コンフィギュレーション" ここでは、HBaseのさまざまな動作モード、分散型HBaseの実行に必要なソフトウェア、およびその設定方法について説明します。
この章は、スロースタートの設定ガイドです。
HBaseには以下のようなニーズがあります。この章をよく読んで、すべてのニーズが満たされていることを確認してください。要件が満たされないと、不可解なエラーに遭遇したり、データが失われたりすることもあります。
HBaseは、Hadoopと同じ設定システムを使用しています。デプロイメントを設定するには、 conf/hbase-env.sh ファイル内の環境変数を編集します - この設定ファイル内のメイン起動スクリプトはクラスタを起動するために使用されます - そして、HBase のデフォルト設定を上書きするかのように XML ファイルに設定を追加し、HBase に使用するファイルシステム、ZooKeeper のフルロケーション[ ]を指示します。 1 ].
分散モードで実行する場合、HBaseの設定ファイルを編集した後、confディレクトリがクラスタの各ノードにコピーされていることを確認してください。hbaseは自動的に同期しません。を使用してください。 rsync .
[ 1 ] XMLを注意深く編集し、すべての要素を閉じることを確認します。また xmllint などで、編集後の文書が正しくフォーマットされていることを確認してください。
2.1. 基本条件
ここでは、必要なサービスや必要なシステム構成について説明します。
Hadoopと同様、HBaseにはOracle版の ジャバ6 . その問題のあるu18版以外は動作しますが、できれば最新のものを使ってください。
インストールされている必要があります ssh は、その sshd Hadoopスクリプトが他のHadoopやHBaseプロセスをリモートで操作できるように、sshも起動しておく必要があります。sshはすべてのプロセス間で開いている必要があり、Googleで詳しく説明されているように、パスワードなしでログインできるようにします("ssh passwordless login")。
HBaseはIPアドレスを取得するためにローカルのホスト名を使用します。順方向DNSと逆方向DNSの両方が可能です。
マシンに複数のインターフェイスがある場合、HBase は hostname で指定されたプライマリインターフェイスを使用します。
これだけでは不十分な場合は
hbase.regionserver.dns.interface
を使用して、プライマリ・インターフェースを指定します。もちろん、設定ファイルはクラスタ全体で一貫している必要があり、各ホストは同じネットワーク・インターフェイスを使用します。
を設定する方法もあります。
hbase.regionserver.dns.nameserver
を使用して、システムに付属するネームサーバーを使用する代わりに、ネームサーバーを指定することができます。
HBase はループバック IP アドレスが 127.0.0.1 であることを想定しています。Ubuntuや他のいくつかのディストリビューションでは、例えば127.0.1.1がデフォルトとなり、これが問題を引き起こすことになります。
/etc/hosts
はこのような感じになっているはずです。
127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu
クラスタのクロックは基本的な整合性を確保する必要があります。わずかな不整合は許容範囲ですが、大きな不整合は奇妙な動作を引き起こす可能性があります。実行中 NTP などで時刻を同期させてください。
問い合わせをしたり、変な障害が発生したら、システム時刻が正しいかどうか確認してみましょう
HBaseはデータベースであるため、同時に多くのファイルハンドルを使用することになります。ほとんどのLinuxシステムで使われている1024というデフォルトの値では十分ではなく、結果として よくある質問 なぜ "java.io.IOException... が表示されるのでしょうか?(Too many open files)"がログに表示されるのですが? 例外が発生します。また、次のような例外が発生することもあります。
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.
2010-04-06 03:04:37,542 INFO org.apache.hadoop.hdfs.DFSClient: Abandoning block blk_-6935524980745310745_1391901
そこで、ファイルハンドルの最大制限を変更する必要があります。計算方法はおおよそ次の通りです。列のファミリーごとに最低でも1つのStoreFile(エリアが圧迫されている場合は5-6まで可能)。カラムファミリあたりの StoreFile の平均数と、リージョンサーバあたりのリージョンの平均数を掛け合わせる。例 例:スキーマが 3 つのカラムファミリ、カラムファミリごとに 3 つの StoreFile、リージョンサーバーごとに 100 のリージョンを持つと仮定すると、JVM は 3 * 3 * 100 = 900 のファイル記述子を開く(開いている jar ファイル、設定ファイルなどは含まれない)。
また、hbase ユーザーの
nproc
を指定します。
OutOfMemoryError
例外
3
] [
4
].
はっきり言って、この2つの設定はOSに対するもので、HBase自体に対するものではありません。よくある間違いは、HBaseが動作しているユーザーと、最大値を設定するユーザーが同じユーザーでないことです。HBaseが起動すると、ログの最初の行が正しいことを確認するためにulimit情報が表示されるようになりました。[ 5 ]
Ubuntuを使用している場合は、このように設定します。
ファイル内の
/etc/security/limits.conf
のような行を追加します。
hadoop - nofile 32768
を置くことができます。
hadoop
には、HBase と Hadoop を実行しているユーザーを指定します。2ユーザー使うなら2つ必要です。そしてnprocのハードリミットとソフトリミットで...みたいな。
hadoop soft/hard nproc 32000
.
で
/etc/pam.d/common-session
この行を追加します。
session required pam_limits.so
それ以外の場合は
/etc/security/limits.conf
は有効になりません。
そして、ログアウトしてログインしなおすと、これらの設定が有効になります!
HBaseはWindowsではあまりテストされていません。そのため、Windowsで実行することは推奨されません。
どうしても動かしたい場合は Cygwin を作成し、unix環境を仮想化します。詳しくは Windowsインストールガイド . または メーリングリストの検索 Windowsに関する最近のノートを探す
2.1.3. ハドゥープ
HBaseのデプロイメントには、Hadoopのバージョンの選択が重要です。次の表は、さまざまな HBase がサポートする Hadoop のバージョンに関する情報です。HBaseのバージョンに基づき、適切なHadoopのバージョンを選択する必要があります。バンドルされたHadoopディストリビューションの選択はありません。ApacheのHadoopディストリビューションを利用するか、以下のHadoopパブリッシャー製品を見てみてください。 http://wiki.apache.org/hadoop/Distributions%20and%20Commercial%20Support
表2.1. Hadoop バージョンサポート表
HBaseはHadoopに依存しているため、そのlibの下にHadoop jarファイルが同梱されています。このコンパニオンjarはスタンドアローンモードでのみ使用されます。分散モードでは、HadoopのバージョンはHBaseの下のバージョンと同じである必要があります。HBase の lib ディレクトリにある Hadoop jar ファイルを、実行している分散 Hadoop バージョンの jar ファイルに置き換えて、バージョンの不一致の問題を回避してください。クラスタ内のHBase下のjarファイルをすべて置き換えるようにしてください。Hadoopバージョンのミスマッチ問題の現れ方はさまざまですが、すべてハングアップしているように見えます。
HBase 0.92 および 0.94 は Hadoop 0.20.205, 0.22.x, 1.0.x, 1.1.x で動作します。HBase 0.94 はさらに Hadoop-0.23.x および 2.x でも動作しますが、特定の maven プロファイルを使用してコードを再コンパイルする必要があるかもしれません(トップレベルの pom.xml を参照)。
Apache HBase 0.96.0 は最低でも Apache Hadoop 1.x を必要としますが、hadoop-2.0 でも同様に実行できます。Apache HBase 0.96.xの時点では、最低でもApache Hadoop 1.0.xが必要です。0.20.205 や branch-0.20-append などの古い Hadoop では正常に動作しなくなりました。Hadoopをアップグレードできない場合は、Apache HBase 0.96.xに移行しないでください[ ]。 6
HBase は、耐久性のある同期を実装した HDFS 上で実行されていない限り、データを失います。Hadoop 0.20.2, Hadoop 0.20.203.0, Hadoop 0.20.203 は使用しないでください。204.0 はこの属性を持っていません。現在、Hadoop のバージョン 0.20.205.x あるいはそれ以上のリリース -- これには hadoop-1.0.0 -- でのみ、動作する durable sync[. - 動作する durable sync[] があります。 7 ]. 同期機能は、クライアント側 -- hbase-site.xml -- とサーバー側 -- hdfs- site.xml の両方で dfs.support.append を true に設定して明示的に有効にする必要があります (HBase が必要とする同期機能は append コードパスのサブセットです)。
<property> <name>dfs.support.append</name> <value>true</value> </property>
この編集を行った後、クラスタを再起動する必要があります。hdfs-default.xmlのdfs.support.appendの設定に関する記述の中にある小さなコメントは無視しましょう。
2.1.3.4. Hadoopのセキュリティ
HBase は Hadoop 0.20.x で動作しているので、セキュリティ機能を使うことができます -- バージョン 0.20S と CDH3B3 の両方を使い、hadoop.jar を置き換えればですが。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例