Zookeeperスタンドアロン環境とクラスタ環境の構築

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築#

1.1 ダウンロード

Zookeeper の対応するバージョンをダウンロードします。ここではバージョン 3.4.14 をダウンロードしました。公式ダウンロードアドレス: https://archive.apache.org/dist/zookeeper/

# https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz を取得します

1.2 解凍

# tar -zxvf zookeeper-3.4.14.tar.gz

1.3 環境変数の設定

# vim /etc/プロファイル

環境変数を追加します:

ZOOKEEPER_HOME=/usr/app/zookeeper-3.4.14 をエクスポートします。
PATH=$ZOOKEEPER_HOME/bin:$PATH をエクスポートします

設定された環境変数を有効にします。

# ソース /etc/profile

1.4 設定を変更する#

インストール ディレクトリの conf/ ディレクトリに移動し、構成サンプルをコピーして変更します。

# cp zoo_sample.cfg zoo.cfg

データ保存ディレクトリとログファイルディレクトリを指定します (ディレクトリは事前に作成する必要はなく、プログラムによって自動的に作成されます)。変更後の完全な構成は次のとおりです。

# 各ティックのミリ秒数
ティックタイム=2000
# 初期値であるティック数
# 同期フェーズは
初期制限=10
# 通過できるティック数
# リクエストを送信し、確認応答を受け取る
同期制限=5
# スナップショットが保存されるディレクトリ。
# /tmpをストレージとして使用しないでください。ここでの/tmpは
# 例のため。
データディレクトリ=/usr/local/zookeeper/data
データログディレクトリ=/usr/local/zookeeper/log
# クライアントが接続するポート
クライアントポート=2181
# クライアント接続の最大数。
# より多くのクライアントを処理する必要がある場合は、これを増やします
#最大クライアント接続数=60
#
# 必ずメンテナンスセクションをお読みください
# 自動消去をオンにする前に管理者ガイドを参照してください。
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# dataDir に保持するスナップショットの数
#自動パージ.スナップ保持カウント=3
# 消去タスク間隔(時間単位)
# 自動パージ機能を無効にするには「0」に設定します
#自動パージ.パージ間隔=1

構成パラメータの説明:

•tickTime: 計算に使用される基本的な時間単位。たとえば、セッション タイムアウト: N*tickTime;
•initLimit: クラスターに使用され、スレーブ ノードがマスター ノードに接続して同期するための初期接続時間を許可します。これは tickTime の倍数として表されます。
•syncLimit: クラスターに使用され、マスターノードとスレーブノード間でメッセージ、要求、応答を送信する時間の長さ (ハートビートメカニズム)。
•dataDir: データの保存場所;
•dataLogDir: ログディレクトリ;
•clientPort: クライアント接続に使用するポート。デフォルトは2181

1.5 起動

環境変数が設定されているので、以下のコマンドを使用して直接起動できます。

zkServer.sh 開始

1.6 検証

JPS を使用して、プロセスが開始されたかどうかを確認します。QuorumPeerMain が表示された場合、プロセスが正常に開始されたことを意味します。

[root@hadoop001 bin]# jps
3814 クォーラムピアメイン

2. クラスタ環境の構築#

クラスターの高可用性を確保するには、Zookeeper クラスター内のノード数を奇数 (少なくとも 3 ノード) にする必要があります。そのため、ここでは 3 ノード クラスターの構築方法を説明します。ここでは構築に 3 つのホストを使用します。ホスト名は hadoop001、hadoop002、hadoop003 です。

2.1 設定を変更する#

Zookeeper インストール パッケージを解凍し、構成ファイル zoo.cfg を次の内容に変更します。次に、scp コマンドを使用して、インストール パッケージを 3 つのサーバーに配布します。

ティックタイム=2000
初期制限=10
同期制限=5
データディレクトリ=/usr/local/zookeeper-cluster/data/
データログディレクトリ=/usr/local/zookeeper-cluster/log/
クライアントポート=2181
# server.1 1 はサーバ ID で、任意の有効な数字にすることができます。サーバ ノードを示します。この ID は、dataDir ディレクトリの下の myid ファイルに書き込まれます。# クラスタ間通信ポートと選択ポートを指定します server.1=hadoop001:2287:3387
サーバー2=hadoop002:2287:3387
サーバー3=hadoop003:2287:3387

2.2 ノードの識別#

3 つのホストの dataDir ディレクトリに新しい myid ファイルを作成し、対応するノード ID を書き込みます。 Zookeeper クラスターは、myid ファイルを通じてクラスター ノードを識別し、上記で構成されたノード通信ポートと選出ポートを通じてノードと通信し、リーダー ノードを選出します。

ストレージディレクトリを作成します。

# 3つのホストすべてがコマンド mkdir -vp /usr/local/zookeeper-cluster/data/ を実行します。

ノード ID を作成し、myid ファイルに書き込みます。

# hadoop001 ホストエコー "1" > /usr/local/zookeeper-cluster/data/myid
# hadoop002 ホストエコー "2" > /usr/local/zookeeper-cluster/data/myid
# hadoop003 ホストエコー "3" > /usr/local/zookeeper-cluster/data/myid

2.3 クラスターを起動する#

3 つのホストそれぞれで次のコマンドを実行してサービスを開始します。

/usr/app/zookeeper-cluster/zookeeper/bin/zkServer.sh を起動します

2.4 クラスタ検証#

起動後、zkServer.sh status を使用してクラスター内の各ノードのステータスを表示します。図に示すように、3 つのノード プロセスが正常に開始され、hadoop002 がリーダー ノード、hadoop001 と hadoop003 がフォロワー ノードです。

   

ビッグデータシリーズの他の記事については、GitHubオープンソースプロジェクト:ビッグデータ入門をご覧ください。

要約する

以上がZookeeperスタンドアロン環境とクラスタ環境構築の紹介です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信させていただきます。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Centos7 で ZooKeeper3.4 ミドルウェアを構築するための一般的なコマンドの概要
  • ZooKeeper をベースにした Hadoop 高可用性クラスタの構築のチュートリアル図
  • Zookeeper を使用して SpringCloud で構成センターを構築する方法
  • Linux で Zookeeper 管理センターを構築する手順の共有
  • ActiveMQはZookeeperのマスタースレーブ(levelDBマスター/スレーブ)に基づいて構築されています。

<<:  Reactを使用する際の7つの落とし穴のまとめ

>>:  シンプルなリスト機能を実装するミニプログラム

推薦する

MySQLのエンコードの不一致によって発生する可能性のある問題

ストアドプロシージャとコーディングMySQL ストアド プロシージャでは、テーブルとデータのエンコー...

ウェブフロントエンドコードを書く際の考慮事項のまとめ

1. HTMLタグの前に次のような文を追加するのが最適です。 <!DOCTYPE HTML P...

上部の固定divは半透明効果に設定できます

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Vueはアップロードコンポーネントを実装します

目次1. はじめに2. アイデアファイルをアップロードする2つの方法3. ライフサイクル4. コード...

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下...

Linux resolv.conf の簡単な分析

1. はじめにresolv.conf は、さまざまなオペレーティング システムのドメイン ネーム シ...

Vueはechartを使用してラベルと色をカスタマイズします

この記事では、参考までに、echartを使用してタグと色をカスタマイズするVueの具体的なコードを紹...

MySQL マスタースレーブレプリケーションでエラーをスキップする方法

1. 従来のbinlogマスタースレーブレプリケーション、エラー報告をスキップする方法 mysql&...

MySQL で中国語の文字をピンインでソートする簡単な例

名前を格納するフィールドが GBK 文字セットを使用している場合、GBK 内部コード自体がエンコード...

MySQLデータベースの追加、削除、変更操作の詳細な説明

データの挿入テーブル名(列名1、列名2、列名3)の値(値1、値2、値3)に挿入します。ユーザーに(u...

MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

目次MySQL NDB Clusterとはクラスター構築のための準備作業クラスターのデプロイを開始す...

Centos7 で yum を使用して Ceph 分散ストレージをインストールするチュートリアル

目次序文yumソース、epelソースを設定するCephソースの設定Cephとそのコンポーネントをイン...

DockerでEurekaを設定する方法

ユーレカ: 1. JDKイメージを構築するEurekaコンテナを起動するjdkフォルダと必要なファイ...

Oracle VM VirtualBox の CentOS7 オペレーティング システムのインストール チュートリアル図

目次インストール手順環境設定実行構成インストール手順ダウンロードアドレス: バージョン6.0 最初に...

psdカット画像をdiv+css形式に変換する

PSD から div css へのウェブページ切り取り例ステップ 1: まず、すべてのタグの内側と外...