1. 概要HBase は列指向の分散データベースであり、その設計コンセプトは Google の BigTable 論文から派生したものです。 HBase の基盤となるストレージは HDFS に基づいて実装され、クラスター管理は ZooKeeper に基づいて実装されています。 HBase の適切に設計された分散アーキテクチャにより、大量のデータを迅速に保存し、ランダムにアクセスすることが可能になります。データ複製およびパーティショニングのメカニズムに基づいて、オンラインでの拡張、削減、およびデータ災害復旧を簡単に実現できます。これは、ビッグデータ分野でキー値データ構造を格納するために最も一般的に使用されるデータベース ソリューションです。 - 公式ドキュメント: https://hbase.apache.org/book.html
- GitHub アドレス: https://github.com/apache/hbase
- HBaseの詳細については、私の記事「列ベースの分散データベース - HBase(環境展開)」も参照してください。
- hbase は HDFS ストレージに依存しているため、HDFS コンテナのデプロイメントについては次の記事を参照してください: [クラウドネイティブ] Hadoop on k8s 環境のデプロイメント
- ただし、実稼働環境では通常、高可用性 Hadoop が使用されます。高可用性のデプロイメントについては、私の記事を参照してください: [クラウドネイティブ] Hadoop HA on k8s 環境のデプロイメント
- Hbase は Zookeeper に依存します。 Zookeeper のコンテナ化されたデプロイメントについては、[クラウドネイティブ] Zookeeper + Kafka on k8s 環境のデプロイメントを参照してください。
2. オーケストレーションのデプロイメントを開始する (非高可用性 HDFS)アドレス: https://artifacthub.io/packages/helm/hbase/hbase 1) チャートパッケージをダウンロードする helmリポジトリにhbaseを追加しますhttps://itboy87.github.io/bigdata-charts/
# hbase バージョン2.4.13 helm pull hbase / hbase --version 0.1.7 2) イメージを構築する以下の Hadoop 高可用性に接続すると、イメージが再構築されます。ここでは、イメージを再構築するのではなく、リモート パッケージをローカルの港湾倉庫にプッシュするだけです。 docker pull ghcr .io / fleeksoft / hbase / hbase -ベース: 2.4 .13 .2
# タグ docker タグ ghcr .io / fleeksoft / hbase / hbase - base : 2.4 .13 .2 myharbor .com / bigdata / hbase - base : 2.4 .13 .2
# 押す docker push myharbor .com / bigdata / hbase -ベース: 2.4 .13 .2 3) YAMLレイアウトを変更する(非高可用性HDFS) 画像: リポジトリ: myharbor .com / bigdata / hbase - base タグ: 2.4.13.2 プルポリシー: IfNotPresent
...
conf : hadoopユーザー名: admin hbaseサイト: hbase .rootdir : "hdfs://hadoop-hadoop-hdfs-nn.hadoop:9000/hbase" hbase .zookeeper .quorum : "zookeeper.zookeeper:2181"
...
hbase : は マスター: レプリカ: 2
リージョンサーバー: レプリカ: 2
# 内部Hadoopを無効にする ハドゥープ: 有効: false
# 内部のZookeeperを無効にする 飼育員: 有効: false - hbase/テンプレート/hbase-configmap.yaml
if [ ` `.`Values`.`hadoop`.`enabled ` = true ];then NAMENODE_URL={{- printf "http://%s-hadoop-hdfs-nn:9870/index.html" .Release.Name }} それ以外 hadoop_url={{ index .Values.conf.hbaseSite "hbase.rootdir" }} hadoop_url=`echo $hadoop_url|awk -F '/' '{print $3}'|awk -F':' '{print $1}'` NAMENODE_URL=http://${hadoop_url}:9870/index.html フィ 4) 展開を開始する # まず構文をチェックする ヘルムリント./hbase
# インストールを開始する helm で hbase をインストールします。/hbase -n hbase --create-namespace 注記 名前: hbase 最終配備日: 2022年11月5日(土) 15:44:14 名前空間: hbase ステータス:展開済み 改訂: 1 テストスイート:なし 注記: 1.次のコマンドを実行すると、 HBASE シェルを取得できます。 kubectl exec - n hbase - it hbase - hbase - master - 0 -- hbase シェル
2. hbase マスター サービス ポートを検査します。 kubectl exec -n hbase サービス hbase を記述します- hbase -マスター
3. hbase マネージャー UI へのポート転送を作成します。 kubectl ポート転送- n hbase svc / hbase - hbase -マスター16010 : 16010
次にブラウザでUIを開きます:
http を開く: // localhost : 16010
4. hbase thrift manager UI へのポート転送を作成します。 kubectl ポート転送- n hbase svc / hbase - hbase -マスター9095 : 9095
次にブラウザでUIを開きます:
http を開く: // localhost : 9095 ハードウェア チェック kubectl get pods 、 svc - n hbase - wide を実行します。 5) テスト検証マスタースレーブスイッチをテストし、現在アクティブなマスターポッドを再起動します。 kubectl ポッド hbaseを削除します- hbase -マスター- 0 - n hbase アクティブ/スタンバイの切り替えは正常に実行できます 6) アンインストール helm アンインストール hbase - n hbase # nsを削除 kubectl削除ns hbase --force 3. オーケストレーションのデプロイメントを開始する(高可用性 HDFS) 1) チャートパッケージをダウンロードする helmリポジトリにhbaseを追加しますhttps://itboy87.github.io/bigdata-charts/
# hbase バージョン2.4.13 helm pull hbase / hbase --version 0.1.7 2) イメージを構築するこれは上記のイメージに基づいて構築されており、イメージに Hadoop を詰め込んだだけです。使用される主なHadoop設定ファイルはcore-site.yaml、hdfs-site.yamlです。 Dockerファイル myharbor.com/bigdata/hbase-baseから: 2.4.13.2
mkdir -p / opt / apacheを実行します
環境変数HADOOP_VERSION = 3.3.2
hadoop を追加します- $ { HADOOP_VERSION } .tar .gz / opt / apache
ENV HADOOP_HOME =/ opt / apache / hadoop
実行ln -s / opt / apache / hadoop - $ { HADOOP_VERSION } $HADOOP_HOME
ENV HADOOP_CONF_DIR = $ { HADOOP_HOME } / et / hadoop
環境変数PATH = $ { HADOOP_HOME } / bin : $PATH 構築を開始する docker build -t myharbor .com / bigdata / hbase - hdfs - ha : 2.4.13.2 を実行します。 --キャッシュなし
### パラメータの説明 # - t: 画像名を指定する # . : 現在のディレクトリ Dockerfile # - f: Dockerfileのパスを指定する # --no-cache: キャッシュなし
# 港へ向かう docker push myharbor .com / bigdata / hbase - hdfs - ha : 2.4 .13 .2 3) 設定を変更する画像: リポジトリ: myharbor .com / bigdata / hbase - hdfs - ha タグ: 2.4.13.2 プルポリシー: IfNotPresent
...
conf : hadoopユーザー名: admin hbaseサイト: hbase .rootdir : "hdfs://myhdfs/hbase" hbase .zookeeper .quorum : "zookeeper.zookeeper:2181" - hbase-hdfs-ha/テンプレート/hbase-configmap.yaml
[ { { .Values .hadoop .enabled } } = true ]の場合;それから NAMENODE_URL = { { - printf "http://%s-hadoop-hdfs-nn:9870/index.html" .Release .Name } } それ以外 NAMENODE_URL = http : //hadoop-ha-hadoop-hdfs-nn-1.hadoop-ha : 9870 : 9870 / index.html フィ # まず構文をチェックする helm lint ./hbase-hdfs-ha
# インストールを開始する helm で hbase - hdfs - haをインストールします。/hbase-hdfs-ha-n hbase - hdfs - ha --create-namespace 注記 名前: hbase - hdfs - ha 最終配備日: 2022年11月5日(土) 17:23:20 名前空間: hbase - hdfs - ha ステータス:展開済み 改訂: 1 テストスイート:なし 注記: 1.次のコマンドを実行すると、 HBASE シェルを取得できます。 kubectl exec -n hbase - hdfs - ha - it hbase - hdfs - ha - hbase - master - 0 -- hbase シェル
2. hbase マスター サービス ポートを検査します。 kubectl exec -n hbase - hdfs - ha サービス hbase - hdfs - ha - hbase -マスターを記述します
3. hbase マネージャー UI へのポート転送を作成します。 kubectlポート転送- n hbase - hdfs - ha svc / hbase - hdfs - ha - hbase -マスター16010 : 16010
次にブラウザでUIを開きます:
http を開く: // localhost : 16010
4. hbase thrift manager UI へのポート転送を作成します。 kubectlポート転送- n hbase - hdfs - ha svc / hbase - hdfs - ha - hbase -マスター9095 : 9095
次にブラウザでUI を開きます:
http を開く: // localhost : 9095 ハードウェア チェック kubectl get pods 、 svc - n hbase - hdfs - ha を実行します。 5) テスト検証マスタースレーブスイッチをテストし、現在アクティブなマスターポッドを再起動します。 kubectl ポッド hbaseを削除します- hbase -マスター- 0 - n hbase アクティブ/スタンバイの切り替えは正常に実行できます 6) アンインストール helm アンインストール hbase - hdfs - ha - n hbase - hdfs - ha # nsを削除 kubectl削除ns hbase - hdfs - ha --force Git アドレス: https://gitee.com/hadoop-bigdata/hbase-on-k8s |