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

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

推薦する

JavaScript キャンバスで動的な点と線の効果を実現

この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...

KTLツールはMySQLからMySQLへのデータの同期方法を実現します

ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...

Docker で Portainer ビジュアル インターフェースを構築するための詳細な手順

前回述べた問題を解決するために、オンラインで検索したところ、非常に優れたビジュアル インターフェース...

JS はランダム点呼システムを実装します

参考までに、JSを使用してランダム点呼システムを実装します。具体的な内容は次のとおりです。毎回の授業...

dockerプライベート倉庫の構築と利用の詳細説明

1. リポジトリイメージをダウンロードする docker プルレジストリ 2. プライベートウェアハ...

MySql クライアントが数秒で終了する問題を解決する (my.ini が見つからない)

問題の説明 (環境: windows7、MySql8.0)今日、MySql をインストールした後、M...

HTML ページでコンテンツの選択、コピー、右クリックを防止する方法の詳細な説明

時には、Web ページに掲載されているコンテンツが悪意のある人物に盗用されるのを望まないため、Web...

Node.js のモジュール性、npm パッケージ マネージャーの説明

目次モジュール化の基本概念モジュール化とは何かモジュール分解の利点Node.js のモジュール性No...

DockerでMySQLコンテナを作成する簡単な手順

序文すでに Docker をインストールしており、Docker について簡単に理解しています。ここで...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

Vueのインストールと使用

目次1. Vueのインストール方法1: CDNの導入方法2: 直接ダウンロードしてインポートする方法...

MySQL sql_mode の使用に関する詳細な説明

目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...

InnoDB エンジンのパフォーマンスを最適化するための my.cnf パラメータ構成

私はインターネット上で数え切れないほどの my.cnf 構成を読みましたが、言及されている構成のほと...

Linux システムでの virtuoso データベースの詳細なインストールと使用

最近、リンク データについていくつか調査していて、rdf データベースを使用する必要があったため、v...

ウェブページの要素の検査とソースコードの表示の違いについて

Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...