HBase 完全分散型クラスタの展開

HBase 完全分散型クラスタの展開

1. はじめに

HBase は分散型の列指向のオープンソース データベースです。一般的なリレーショナルデータベースとは異なり、非構造化データを保存するのに適したデータベースです。もう 1 つの違いは、HBase が行ベースではなく列ベースのモデルであることです。 HBase は BigTable とまったく同じデータ モデルを使用します。ユーザーはデータ行をテーブルに保存します。データ行にはオプションのキーと任意の数の列が含まれます。 1 つ以上の列が ColumnFamily を形成します。 Fmaily の下の列は HFile に配置されているため、データのキャッシュが容易になります。テーブルはスパース形式で保存されるため、ユーザーは行に対してさまざまな列を定義できます。 HBase では、データは主キーによってソートされ、テーブルは主キーに基づいて複数の領域に分割されます。

分散型の運用環境では、HBase は HDFS を基本的なストレージ ファシリティとして使用して HDFS 上で実行する必要があります。 HBase の上位層は、データにアクセスするための Java API 層を提供し、アプリケーションが HBase に保存されているデータにアクセスできるようにします。 HBase クラスターは、主にマスター、リージョン サーバー、Zookeeper で構成されます。具体的なモジュールは次の図に示されています。

HBase の関連モジュールの機能を簡単に紹介します。

マスター

HBase マスターは、複数の RegionServer を調整し、各 RegionServer の状態を検出し、RegionServer 間の負荷を分散するために使用されます。 HBaseMaster には、Region を RegionServer に割り当てる役割もあります。 HBase では複数のマスターノードを共存させることができますが、そのためには Zookeeper の助けが必要です。ただし、複数のマスター ノードが共存する場合は、1 つのマスターのみがサービスを提供し、他のマスター ノードはスタンバイ状態になります。動作中のマスター ノードがダウンすると、他のマスター ノードが HBase クラスターを引き継ぎます。

リージョンサーバー

RegionServer には複数のリージョンが含まれます。 RegionServer の役割は、テーブルを管理し、読み取りおよび書き込み操作を実装することだけです。クライアントは RegionServer に直接接続し、通信して HBase のデータを取得します。リージョンは、HBase データが実際に保存される場所であり、つまり、リージョンは HBase の可用性と配布の基本単位です。テーブルが大きく、複数の CF で構成されている場合、テーブル内のデータは複数のリージョンに保存され、各リージョンに複数のストレージ ユニット (ストア) が関連付けられます。

動物園の飼育員

HBase にとって、Zookeeper の役割は非常に重要です。まず、Zookeeper は HBase Master の HA ソリューションです。つまり、Zookeeper は少なくとも 1 つの HBase マスターが実行されていることを確認します。 Zookeeper はリージョンとリージョン サーバーの登録を担当します。実際、Zookeeper は分散型ビッグデータ フレームワークにおけるフォールト トレランスの標準フレームワークとなっています。 HBase だけでなく、分散型ビッグデータに関連するほぼすべてのオープンソース フレームワークは、HA を実現するために Zookeeper に依存しています。

HBase クラスターは Hadoop クラスターをベースに構築されるため、HBase クラスターを構築する前に Hadoop クラスターを構築し、両者の互換性を考慮する必要があります。

2. 環境整備

(1)各サーバーのホスト名を変更し、hostsファイルを追加し、ファイアウォールをオフにする

  1. [root@c7001 ~]# cat > > /etc/hosts < <  終了   
  2. 192.168.16.135 c7001  
  3. 192.168.16.80 c7002  
  4. 192.168.16.95 c7003  
  5. 192.168.16.97 c7004  
  6. 192.168.16.101 c7005  
  7. 終了

(2)c7001はクラスタを起動するためにsshパスワードフリーログインを設定する

  1. ssh-keygen -t rsa  
  2. sh-コピー-id -i ~/.ssh/id_rsa.pub c7001  
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub c7002  
  4. ssh-copy-id -i ~/.ssh/id_rsa.pub c7003  
  5. ssh-copy-id -i ~/.ssh/id_rsa.pub c7004  
  6. ssh-copy-id -i ~/.ssh/id_rsa.pub c7005

(3)各サーバーはjdk1.7+で構成されている

  1. [root@c7001 ~]# tar zxf jdk-8u171-linux-x64.tar.gz -C /opt/  
  2. [root@c7001 opt]# mv jdk1.8.0_171/ jdk1.8  
  3. [root@c7001 opt]# vim /etc/profile  
  4. JAVA_HOME =/opt/jdk1.8をエクスポートします。  
  5. PATHをエクスポート=$PATH:$JAVA_HOME/bin  
  6. [root@c7001 ~] ソース /etc/profile  
  7. [root@c7001 opt]# java -version  
  8. Javaバージョン「1.8.0_171

3. hbaseをインストールする

  1. c7003 c7004 c7005  
  2. [root@c7003 opt]# tar zxf /usr/src/hbase-1.3.0-bin.tar.gz -C /opt/

設定ファイルを変更する

  1. [root@c7003 hbase-1.3.0]# vim conf/hbase-env.sh  
  2. #jdk変数を変更する 
  3. JAVA_HOME =エクスポート  JAVA_HOME = /opt/jdk1.8.0_121  
  4. #HBase 独自の Zookeeper をオフにして、Zookeeper クラスターを使用します。  
  5. エクスポートHBASE_MANAGES_ZK = false  

hbase-site.xml を編集し、構成ファイルを追加します。

  1. <? xml  バージョン= "1.0" ?>    
  2. <? xml スタイルシート タイプ= "text/xsl"   href = "configuration.xsl" ?>    
  3. <構成>    
  4. <プロパティ>     
  5. <名前> hbase.rootdir</名前>     
  6. <> hdfs://c7001:9000/hbase </>     
  7. </プロパティ>     
  8. <プロパティ>     
  9. <名前> hbase.cluster.distributed </名前>     
  10. <></>     
  11. </プロパティ>     
  12. <プロパティ>     
  13. <名前> hbase.zookeeper.quorum </名前>     
  14. <> c7003、c7004、c7005 </>     
  15. </プロパティ>     
  16. <プロパティ>     
  17. <名前> hbase.zookeeper.property.dataDir </名前>     
  18. <> /opt/hbase-1.3.0/tmp/zk/data </​​値>     
  19. </プロパティ>    
  20. </構成>    
  21. vi リージョンサーバー 
  22. #次のコンテンツを追加します:  
  23. c7004  
  24. c7005

Hbaseを他のマシンにコピーする

  1. [root@c7003 opt]$ scp -r hbase-1.3.0 root@c7004:/opt/  
  2. [root@c7003 opt]$ scp -r hbase-1.3.0 root@c7005:/opt/

クラスターを起動する

  1. [root@c7003 hbase-1.3.0]$ bin/start-hbase.sh

ウェブアクセスIP:16010

各ノードのプロセス(画像は複製中)

<<:  IaaS、PaaS、SaaS の違いは何ですか?

>>:  IT の回復力と事業継続性を向上させる 3 つの方法

推薦する

中国のプライベートクラウド市場は急速に発展しており、華雲データが新たな勢力として台頭している。

2017年、世界のクラウドコンピューティング市場は成長を続け、クラウドコンピューティング業界の規模は...

ウェブマスターネットワークからの毎日のレポート:Intradeが破産の危機に、P2Pオンライン融資のリスクが再び露呈

1. ポルノおよび違法出版物対策国家事務所は、違法および不法なウェブサイトのリストを公開した。中国国...

OpenStack を学習する上での難しさは何ですか?どのような知識蓄積が必要でしょうか?

OpenStack の学習は難しいと多くの人が報告しています。この記事の著者も、OpenStack ...

フレンドリーリンクの価値の解釈:ウェブサイトのフレンドリーリンクの包括的な調査

SEO を行う人にとって、理解しなければならないことの 1 つは、フレンドリー リンクです。私たちは...

Kubernetes: デプロイメントの新時代

序文前回はDockerチュートリアルを紹介しました。次に、Kubernetes への扉を開けてみまし...

NetEase Cloud: オーディオとビデオのトレンドが生まれ、R&Dの課題を解決する必要がある

近年、モバイルインターネットの普及とスマート端末機器の広範な使用により、ショートビデオ、ライブブロー...

ロングテールキーワードは役に立たない?この記事を読めば理解できるかも知れません!

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています顧客の印象...

Pinduoduoは崩壊するのか?

第2四半期の財務報告が発表された日、ピンドゥオドゥオの株価は13%以上下落し、疑念やパニックさえも高...

Pechoin が明かす: インターネットの考え方を活用して 1 日で 380 万個を売るには?

スキンケア商品の専業販売員として、私が日々考えているのは、女性のお客さまにどうしたらもっとお役に立て...

SEMマーケティングでは、行動を起こす前に十分なオーディエンス分析と慎重な計画が必要です。

マーケティングで最も重要なことは、消費者を理解し、その消費動機を徹底的に分析することです。Shi Y...

Ctrip ホテル検索エンジン AWS クラウド実践

著者について: Gong Xian、Ctrip のシニア バックエンド開発エンジニア。 Ctrip ...

面接官は、9 つ​​の分散 ID 生成方法を一​​気に述べたときに少し困惑しました。

数日前、私のWeChatパブリックアカウントのフォロワーが、最近の面接について不満を述べるメッセージ...

頼林鋒:115クラウドディスクは閉鎖されず、関連するソーシャルプラットフォームが立ち上げられる

南都ニュース記者李星星:東莞のインターネットの「兄貴分」115クラウドディスクが最近、最前線に躍り出...

新サイトに2ヶ月間も社内ページがなかった理由と改善策の分析

まず、私はプロのSEO業者ではありません。現在、深センでシリコンゴム製品工場を経営しています。 20...