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

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

推薦する

flex-grow、flex-shrink、flex-basis、9グリッドレイアウトを理解する

1. flex-grow、flex-shrink、flex-basis プロパティflex-grow...

MySQLクエリステートメントの簡単な操作例

この記事では、例を使用して、MySQL クエリ ステートメントの簡単な操作を説明します。ご参考までに...

ネイティブ JS カプセル化 vue タブ切り替え効果

この記事の例では、ネイティブJSカプセル化vueタブ切り替えの具体的なコードを参考までに共有していま...

Samba を使用して Linux サーバー上で共有ファイル サービスを構築する方法

最近、私たちの小さなチームは、サーバー上の共有フォルダーを共有して、全員がパブリックリソースドキュメ...

シンプルなショッピングフォームを実装するJavaScript

この記事では、簡単なショッピングフォームを実装するためのJavaScriptの具体的なコードを参考ま...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

CSS3 で虫眼鏡効果を模倣するいくつかの方法の原理の分析

記事のタイトルが「模造虫眼鏡」なのはなぜですか?今日お話ししたいのは、一般的に言われているような、マ...

MySQLデータベースに接続し、クエリ操作を実行するためのIDEAの完全なコード

1.まずMysqlリンク設定ページを書く パッケージ com.wretchant.fredis.me...

Tudou.com フロントエンドの概要

1. 分業とプロセス<br />Tudou.comでは、プロジェクト開発が中核であり、誰...

React Stateの状態とライフサイクルの実装方法

1. コンポーネントの実装方法:組件名稱首字母必須大寫1. JS関数を通じてコン​​ポーネントを実装...

js キャンバスは検証コードを実装し、検証コード機能を取得します

この記事の例では、検証コードを作成して取得するためのjsキャンバスの具体的なコードを共有しています。...

Vueのコンポーネント値の転送から始まるオブザーバーモードの詳細な説明

目次オブザーバーパターンVue パス値最初のステップは、main.jsにバスを登録することです。 2...

モバイル署名機能を実装するJavaScript

この記事では、モバイル署名機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

MySQL5.7.03 上位バージョンから MySQL 5.7.17 への置き換えインストール プロセスと見つかった問題の解決策

1. インストール方法は? 1. [実行] -> [cmd] と入力して、小さな黒いウィンドウ...