飼育係を見て、そして再生するクラスタ環境のスタンドアロンバージョンをビルドし、メールボックスを残して、原稿を必要とします

第一章:飼育係の紹介

飼育係、動物管理者、Hadoopの(象)、ハイブ(ビー)、ブタ(豚)管理者を管理するために使用されます。

ApacheのSolrのとApache HBaseの分散クラスタは、飼育係を使用しています。

飼育係がされて開いて、分散プログラムのコーディネートサービスを、のHadoopプロジェクトのサブプロジェクトです。主な機能は提供して、構成管理ネームサービス分散ロッククラスタ管理を

1.1:飼育係の役割:構成管理(フォーカス)

質問を例外:

我々のアプリケーションでは、コードに加えて、いくつかのその様々な構成があります。以下のような:データベース接続。一般的に、私たちは、プロファイルの形、あなたのコード内でこれらのプロファイルの導入を使用しています。

私たちは、1つの構成では、サーバーを1つだけ持っている場合は、設定ファイルを使用することをお勧めする場合、多くの場合、変更しないでください。私たちの設定が非常に大きく、多くのサーバがこれを必要とする場合は、その後、コンフィギュレーション・ファイル要求を使用することは良い選択ではありません。

我々は集中構成を管理する方法を見つける必要があります。この時間は、我々はこの中心的な場所の設定を変更し、すべての利害は、このようなサービスで、飼育係を設定ファイルの変更を取得することができます。

問題解決:

飼育係は使用ザブコヒーレンス・プロトコルを一貫性を提供します。今、オープンソース・プロジェクトの多くは、コンフィギュレーションを維持するために、飼育係を使用しています。

このようなHBaseのように、クライアントはあなたがさらに操作を実行する前に、必要な情報を得るために、飼育係、HBaseのクラスタ構成に接続されています。

オープンソースのメッセージ・キューカフカ、飼育係は、情報ブローカーを維持するために使用します。

オープンソースSOAフレームワークにダボアリババも広くサービス管理を実現するために飼育係にいくつかの構成管理に使用されます

 

1.2:役割の飼育係:ネームサービス(理解)

質問例外:

例えば、ネットワークを介してシステムにアクセスするために、私たちはお互いのIPアドレスを知る必要がありますが、IPアドレスは、あなたが仕事のドメイン名へのアクセスに使用する必要があり、この時間は非常に複雑です。しかし、コンピュータがドメイン名ではありません、あなたは各マシンをバックアップするために、我々はIPのマッピングにドメイン名を持って解決策があり、これは問題の一部を解決することができますが、どのようにドメイン名がIPの変化に対応している場合はありますか?だから、そこにDNSは、我々は唯一の私たちは、すべての(既知の)理解している一点にアクセスする必要がある、そしてそれは、ドメイン名はいIPに対応するものを教えてくれます。

問題解決:

我々は非常に不便になる現地時間でサービスのアドレスを保存する場合、この問題はまた、特に私たちのサービスの、特に多数で、私たちのアプリケーションに存在しますが、私たちは一つだけにアクセスする必要がある場合、我々はすべて理解していますアクセスポイントは、ここに提供するために、統一された入り口を、維持するのは非常に簡単になります

1.3:飼育係の役割:分散ロックを(理解)

質問例外:

たとえば:クラスタの各サーバーであった場合には、分散環境では、クラスタの信頼性に各サーバーを改善するために、我々は同じサービスを展開しますが、一つのこと、あなたはお互いにする必要がありますコーディネートは、それをプログラミングすることは非常に複雑になります。そして、私たちはサービス操作を聞かせて、とがあることがあれば、問題の一つのポイントは

問題解決:

使用、分散ロック今回ロック解除サービスの問題は、すぐに別のサービスにフェイルオーバーすることを、仕事に行くための唯一のサービスとなるよう、いくつかの時点で、。多くの分散システムでは、彼らはまたとして知られている、そうしているリーダー選挙

例えば:HBaseのザ・マスターは、ロックのより慎重な使用と同じプロセスを、このメカニズムを使用して、同じプロセスがロックおよびロックを分散または分化していることに留意すべきであるので、使用時にされています。

1.4:飼育係の役割:クラスタ管理(フォーカス)

質問例外:

分散型クラスタでは、しばしば、このようなハードウェア障害、ソフトウェア障害、ネットワークの問題など様々な理由に、いくつかのノードが出入りします。で参加する新しいノードでなく、クラスタからの古いノードがあります

今回は、クラスタ内の他のマシンは、する必要があり、この変更を認識し、この変化に応じて適切な対応を行います。

問題解決:

新しい店舗が入ってくる場合、例えば、我々は、分散ストレージシステムであり、中央の割り当てが制御ノードを格納する責任があり、我々は今の状態に応じてストレージノードクラスタを割り当てる必要があります。その後、我々はする必要が動的クラスターの現在の状態を感知します

消費者がサービスを訪問したときにたとえば、分散型SOAのアーキテクチャ、サービスがクラスタによって提供され、あなたはノードが、今も呼ばれるこのサービス(提供することができた見つけるために、メカニズムのいくつかの種類を使用する必要があるサービスの発見をこのような飼育係、サービス発見)の基礎となるメカニズムの使用にオープンソースSOAフレームワークダボアリババとして。Cosnumer管理などの上下の飼育係の使用上のオープンソースカフカのキューがあります。

第II章:飼育係のストレージ構造

2.1:のznode

飼育係において、のznodeは、ノードがする、ルートノードと同様UNIXファイル・システム・パスでデータを記憶または取得しました

飼育係は、基礎となるデータ構造のセットです。このデータ構造は、ツリー構造「と呼ばれる、各ノードの上、のznode飼育係データはツリー構造に従って格納されるが、のznodeノードは、さらに、4つの異なるタイプに分け、」。

各ノードのznodeデフォルトストアの1メガバイトのデータ状態のみを記録するために使用されます)。

あなたは使用することができますzkCli、コマンドを飼育係にログオンし、そして通じ、LS、作成、削除、取得設定これらのznodeノードコマンドを動作させます。

2.2:のznodeノードタイプ

(1 )PERSISTENT(永続ノード):いわゆる永続的なノードは、ノードを指すが作成され、それはそれ以外の場合は、クライアント・セッションのノード障害を作成しません、アクティブノードを削除する削除操作されるまで持続します消えます。

(2)PERSISTENT_SEQUENTIAL(永続的なノードの順序):基本的なそのようなノードの特性、及びノードが同じ持続あります。その他の機能としては、ZKに、それぞれの親がその子ノードのためのファーストクラスのタイミングを維持しますが、順序が作成され、それぞれの子ノードを記録されます。同時に、子ノードを作成し、このプロパティを設定することができ、この特性に基づいて、そのノードを作成するプロセスは、ZKは、新しいノード名として、自動的に指定されたノードに加えて数字の接尾辞になります。数値サフィックス範囲は、整数値の最大範囲です。ノードを作成中、唯一の我々は、ノード「/ TEST_」を渡す必要があるので、飼育係は自動的に番号を追加するために戻って得られます。

(3)エフェメラル(一時的なノード):持続的なノードが異なり、クライアント・ノード・セッションのライフ・サイクルの一時的な結合。クライアント・セッションが失敗した場合、つまり、ノードは自動的に削除されます。その、ここで言及したセッションフェイルオーバーではなく、切断に注意してください。また、あなたは一時的なノードに子ノードを作成することはできません。

クライアントが失敗した場合、ノードは、おそらく10秒以内に、突然発生した姿を消すだけでなく、時間をかけていない、ということは注目に値します。

(4)EPHEMERAL_SEQUENTIAL(一時的な自動ナンバリングノード):このノードのノードは一時的なものではなく、順序、クライアントのセッションが終了すると、ノードが消えます。

第III章:飼育係のインストール(シングルバージョン)

インストール環境:Linuxシステム、JDK

インストール手順:

最初のステップ:アップロード飼育係アーカイブ

リソースパックは、公式サイトzookeeper.apache.comからダウンロードすることができます。最新のリリースバージョン:3.4.12。

ステップ2:アーカイブ飼育係を抽出

飼育係-3.4.6.tar.gz -zxfタール

CPの飼育係-3.4.6は/ usr / local /飼育係-r

ステップ3:設定飼育係

ブート時に飼育係、名前の隣zoo.cfg設定ファイルを検索するデフォルトのconfディレクトリ。

CP zoo_sample.cfg zoo.cfg

Zoo.cfgは、設定ファイルを変更します。

DATADIRパスを設定します。データ・キャッシュへのパスは、あなたがデータのフォルダを作成する必要があります

ステップ4:スタート飼育係

/ binディレクトリには、zkServer、SHファイルを開始

、./開始zkServer.sh zoo.cfgロードするために、デフォルトの設定ファイルconfディレクトリに移動します:(1)デフォルトの設定ファイルをロードします

(2)ロード設定ファイルを指定:./ [プロファイルパス位置]を開始zkServer.sh

ストップ飼育係:./ zkServer.sh停止

ビュー飼育係のステータス:./ zkServer.sh状態

飼育係ファイルのディレクトリ:

第IV章:飼育係のクラスタ原則

4.1:飼育係のクラスタの役割

主に次の三つのカテゴリーで、クラスタ内の飼育係役割:

4.2:設計されました

(1)最終的な一貫性:関係なく、サーバは、図で示されている場合のクライアント接続は、これが最も重要な性能のZooKeeperです。

(2)信頼性:メッセージmがサーバによって受信された場合、それはすべてのサーバによって受信されます

(3)实时性:Zookeeper保证客户端将在一个时间间隔范围内,获得服务器的更新信息,或者服务器失效的信息;但由于网络延迟的原因,zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新的数据,应该在读数据之前调用sync()接口

(4)等待无关(wait-free):慢的或者实效的client不得干预快速的client请求,使得每个client都能有效的等待

(5)原子性:更新只有成功或者失败,没有中间状态

(6)顺序性:包括全局有序和偏序两种:全局有序是指如果一台服务器上消息a在消息b之前发布,则在所有的server上消息a都会在消息b之前发布;偏序是指如果一个消息b在消息a后被同一个发布者发布,消息a必将排在消息b之前。

第五章:Zookeeper创建集群

使用三个zookeeper搭建一个伪集群,应用部署在linux系统:192.168.110.128;服务器监听端口为2181、2182、2183;投票选举端口为2881/3881、2882/3882、2883/3883。

三个集群都在:/usr/local/zookeepercluster目录下

子目录分别为:zookeeper01、zookeeper02、zookeeper03

安装方法与单机版一样。配置文件需要指定data目录

特殊地方:

每个集群需要提供应用唯一标识

在zookeeper集群中,每个节点需要一个唯一标识,这个唯一标识要求必须是一个自然数,且唯一标识保存位置是:/data/myid,其中myid为配置文件。

配置方案:

(1)手动用vi命令编辑myid,并添加标识1,2,3

(2)使用简化命令:echo [唯一标识] >> myid

echo命令为回声命令,系统会将命令发送数据返回,“>>”为定位,代表系统回声数据指定发送到什么位置,此命令代表系统回声数据发送到myid文件中,如果没有文件则创建文件。

通常需要给配置文件添加客户自行权限,命令如下:

chmod +x 文件名

修改配置文件zoo.cfg:设置服务、投票、选举端口

vi zoo.cfg(每个集群都需要配置)

clientPort=2181 #服务端口根据应用做对应修改,zk01-2181,zk02-2182,zk03-2183
server.1=192.168.70.143:2881:3881
server.2=192.168.70.143:2882:3882
server.3=192.168.70.143:2883:3883

启动zookeeper应用:

在bin/zkServer.sh.start

注:zookeeper集群搭建完成后,至少需要启动两个应用才能提供服务,因为需要选举出主服务节点。启动所有的zookeeper节点后,可以使用命令:bin/zkServer.sh status来查看节点状态,如下所示:

Model:leader 表示主机

Model:follower 表示备份机

关闭zookeeper应用:

命令:bin/zkServer.sh stop

 

第六章:Zookeeper常见命令

启动zookeeper客户端:

bin目录下:./zkCli.sh

(1)当输入命令不正确时,会提示信息:

(2)常用命令:ls

使用格式:ls path 

表示列表路径下的资源

指的注意的是:在zookeeper中,

根节点路径: ls  /

子节点路径: ls  /zookeeper

下一级子节点:ls  /zookeeper/quota

(3)常用命令:quit

表示:退出客户端

(4)连接指定的ip地址下的服务器

./zkCli.sh -server 192.168.110.128:2182

(5)常用命令:connect 【ip】

表示:连接到指定的服务器

例如:connect 192.168.110.128:2183

(6)常用命令:create 【-e】【-s】 path data

表示:创建节点

-e:表示创建临时节点,可以不指定

-s:表示创建一个顺序节点,可以不指定

path:表示在哪个节点下创建新的节点,其中,根节点表示为/

data:表示节点数据

例如:create /test 123

表示:在根节点下,创建一个test节点,数据为123,节点类型没有给定,默认为持久型节点。

例如:创建顺序节点:create /test2 2

zookeeper自动为节点添加后缀信息;

 

 

(7)常用命令:get path

表示:查看指定节点的数据

例如:get /test

 

123
cZxid = 0x400000004
ctime = Fri Jul 05 18:00:23 CST 2019
mZxid = 0x400000004
mtime = Fri Jul 05 18:00:23 CST 2019
pZxid = 0x400000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

(8)常用命令:set path data 【version】

表示:设置对应位置节点的数据

例如:

(9)delete path 【version】

表示:删除指定节点,此命令不能删除有子节点的节点

(10)常用命令:rmr path

表示:删除指定节点,包括子节点

(11)常用命令:quit

表示:退出控制台

 

おすすめ

転載: www.cnblogs.com/ncl-960301-success/p/11228597.html