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

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

推薦する

WEBAPP開発スキルのまとめ(モバイルWebサイト開発の注意点)

1. レスポンシブな Web を開発するには、ページを画面サイズに適応させる必要があります。前の記...

HTML で中国語を UTF-8 に変換する方法

HTMLでは、中国語のフレーズ「學好好學」は「學好好學」と表現できます。プロジェクトでは、SMSアラ...

ウェブデザインに必須のツール: Firefox Web Developer プラグイン CSS ツールセットのチュートリアル

プラグインは Firefox ブラウザにインストールされます。 Web Developer プラグイ...

CSS3入力ボックスの実装コードはGoogleログインのアニメーション効果に似ています

CSS3を使用して、Googleログインページと同様の入力ボックスをアニメーション化します。効果1 ...

PSSHを使用してLinuxサーバーを一括管理する

pssh は、多数のマシンでのバッチ ssh 操作に使用される、Python で実装されたオープン ...

Windows での MySQL 8.0.12 のインストール手順と基本的な使用方法のチュートリアル

この記事では、WindowsでのMySQL 8.0.12のインストール手順と使用方法のチュートリアル...

Dockerコンテナを終了した後も実行を継続する方法

現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...

React NativeプロジェクトでLottieアニメーションを使用する方法

Lottie は、Airbnb が開発した iOS、Android、React Native 向けの...

MySQL テーブルと列のコメントの概要

コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることが...

CSS と HTML とフロントエンド テクノロジーのレイヤー図

フロントエンドテクノロジー層 (写真は少し極端ですが、参考までに) Javascript と DOM...

Nginx プロセス スケジューリングの問題の詳細な説明

Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...

ナビゲーションデザインと情報アーキテクチャ

<br />ナビゲーションについて話すときは、ほとんどの場合、ナビゲーションがコンテンツ...

nginx を使用して 1 つのドメイン名で複数の Laravel プロジェクトを構成する方法の例

背景会社のサブプロジェクトが増えるにつれて、さまざまなサイズのプロジェクトが10個以上になります(バ...

Nginx 仮想ホストの詳細な分析

目次1. 仮想ホスト1.1 仮想ホストの概念1.2 仮想ホストタイプ2. IP仮想ホストに基づく2....

React 並行関数エクスペリエンス (フロントエンド並行モード)

React は、開発者が Web およびモバイルベースのアプリケーションを作成するために使用するオ...