【クラウドネイティブ】HBase on K8s オーケストレーションの導入解説と実践運用

【クラウドネイティブ】HBase on K8s オーケストレーションの導入解説と実践運用

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)

  • hbase/値.yaml
画像
リポジトリ: 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年115日() 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) 設定を変更する

  • hbase-hdfs-ha/値.yaml
画像
リポジトリ: 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年115日() 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

<<:  大手企業間の競争を背景に、国内パブリッククラウド市場が急成長

>>:  インタビュアー: OpenStack、Docker、Mesos、K8S の関係について教えてください。できますか?

推薦する

マイクロソフトは、あらゆるデバイスでWindowsを実行できるクラウドサービス「Windows 365」を発表

本日、マイクロソフトは Inspire 2021 カンファレンスで Windows 365 Clou...

エッジコンピューティングを計画する際に企業が事前に考慮する必要があるいくつかの問題

IoT アプリケーションでは、データの処理、分析、および保存は、ユーザーやデバイスが情報にアクセスす...

SEOの技術はおいしい食事を作ることに似ている

SEO を芸術に例えるのは誇張ではありませんが、実際には私たちはそれを歪曲し、記事を書いて外部リンク...

信頼できる標準化されたSEO環境を提供します

SEO 業界は現在、さまざまな要素が入り混じっています。諺にあるように、大きな森にはさまざまな鳥がい...

Kubernetes のバックアップと復元でよくある 7 つの間違い

翻訳者 |張哲剛校正 |孫淑娟 梁策企業が Kubernetes を本番環境に導入し、Kuberne...

SEOロングテールキーワードがBaidu入札と出会うと、結局は単なるジョークになる

私はかなり長い間SEOをやっていますが、特に目立ったプロジェクトはやったことがありません。ある年、B...

パーソナライズされたコンテンツ推奨エンジンが中小規模のウェブサイトへのトラフィックを増加

元のタイトル: パーソナライズされたコンテンツ推奨エンジン Outbrain が、中小規模のウェブサ...

hostodo-$18/年/メモリ 1g/ハードディスク 150g/トラフィック 3T/QuadraNet/ロサンゼルス

もう一度Hostodoを紹介させてください。その理由は、QuadraNetのロサンゼルスデータセンタ...

Liehuo Vision は Best Logistics がプロモーション ビデオで企業責任を説明するのを支援します

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス「顧客が指定した場所がサ...

半月でウェブサイトのランキングが急速に向上します。サイト全体の診断が非常に重要です。

最近、私はウェディングフォトグラフィーのウェブサイトの最適化とプロモーションに取り組んでいます。ウェ...

nogics-ドイツ VPS/20 USD/年/2CPU/1g メモリ/50g SSD/4T トラフィック

最近、nogics.com は、ドイツのデータ センターにある、4 つの 1TB 純粋 SSD ハー...

トマトスキャンダル:マーケティングの信憑性はわかりにくいが、メリットは明らか

昨日、JD.comのCEOである劉強東氏は深圳で開催された2012年牌戴電子商取引年次大会で、最近ネ...

2020 年のライブ ストリーミング e コマースに関する 6 つの予測

グッズ付きライブストリーミングは電子商取引市場を活性化し、大きなビジネスを生み出しました。キャスター...

ワールドカップは国民の間で話題になっており、さまざまなインターネットマーケティングキャンペーンがこの機会を利用している。

ワールドカップが開催され、北京からたった2ドルで世界中を旅することができます。長く続くスポーツは、全...

smartape: ロシアの VPS、年間 35 ドル、2IP、200Mbps 無制限トラフィック、ロシア市場で有名

ロシアの VPS 業者である smartape は、ロシア市場で高い評価を得ています。同社は 200...