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つの落とし穴のまとめ

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

推薦する

CSS リセットスタイルリセットの実装例

はじめに: すべてのブラウザには、「ユーザー エージェント スタイル シート」と呼ばれる、すべてのペ...

Mybatis での動的 SQL ステートメント分析

この記事は主にMybatisでの動的SQL文の解析について紹介します。この記事のサンプルコードは非常...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

MySQL 主キー ID を生成する方法 (自己増分、一意、不規則)

目次1. uuid関数を使用して、一意かつ不規則な主キーIDを生成します。 2. idの自動成長1....

MySQL 8.0 をインストールした後、初めてログインするときにパスワードを変更する問題を解決する

MySQL 8.0.16で初回ログイン時のパスワードを変更する方法を紹介します。 MySQLデータベ...

CSSは複数の要素をボックスの両端に揃える効果を実現します

要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...

Web デザインのヒント: ページ レイアウトの簡単なルール

繰り返し: サイト全体で特定のページ デザイン スタイルを繰り返します。繰り返し要素としては、特定の...

HTML テーブルタグチュートリアル (12): 境界線スタイル属性 FRAME

FRAME プロパティを使用して、表の境界線のスタイル タイプを制御します。基本的な構文<T...

HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 1)

中国の習慣では、旧暦の1月15日より前に新年を祝います。ここで、庭にいる友人たちに新年の幸せを祈りた...

MySQLログシステムの使い方に関する簡単なチュートリアル

目次序文1. エラーログ2. バイナリログ1. バイナリログを有効にする2. バイナリログ形式3. ...

HTML要素によるFlashブロックの詳細な例

コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...

ウェブサイトに天気予報を挿入する方法

天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...

nginx アンチホットリンクおよびアンチクローラー設定の詳細な説明

新しい設定ファイルを作成します (たとえば、nginx インストール ディレクトリの下の conf ...

Docker プライベート サーバー イメージを定期的にクリーンアップする方法

CI を利用してリリース用の Docker イメージをビルドすることで、全員のバージョンリリース効率...

Dockerがコンテナサービスを停止または削除できない問題の解決策

序文今日、開発者から、コンテナ サービスを停止、rm (docker rm -f)、または強制終了で...