Zookeeperの構成
Zookeeperは分散調整コンポーネントです。分散調整テクノロジーは、主に分散環境内の複数のプロセス間の同期制御を解決するために使用され、「ダーティデータ」の結果を防ぐために特定の重要なリソースに整然とアクセスできるようにします。
構成
Zookeeper圧縮パッケージ/ home / streamを直接解凍します。変更が必要な構成ファイルはzkconfディレクトリにあり、zoo_sample.cfgをコピーして、名前を変更します。cpzoo_sample.cfg zoo.cfg、zoo.cfgの構成アイテムファイルは次のとおりです。
注:ネイティブのconfディレクトリにはzoo.cfgはありません。
Z- oo.cfg構成:
# the port at which the clients will connect
//zookeeper对外通信端口,默认不用修改
clientPort=2181
# The number of milliseconds of each tick
//Zookeeper服务器心跳时间,单位毫秒
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
//投票选举新leader的初始化时间
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
//Leader与Follower之间的最大响应时间单位,响应超过syncLimit*tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
//数据持久化目录,也保存有节点的ID信息,需要自己创建指定
dataDir=/home/xxxx/zookeeperxxxx/data
//日志保存路径,这个目录必须手工创建指定,否则启动报错。
dataLogDir=/home/xxx/zookeeper/logs
//Session超时时间限制,如果客户端设置的超时时间不在这个范围,那么会被强制设置为最大或最小时间。默认的Session超时时间是在2 *tickTime ~ 20 * tickTime这个范围
maxSessionTimeout=120000
# The number of snapshots to retain in dataDir
//这个参数和下面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。(No Java system property)New in 3.4.0
autopurge.snapRetainCount=2
# Purge task interval in hours
# Set to "0" to disable auto purge feature
//在上文中已经提到,3.4.0及之后版本,ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时,需要配置一个1或更大的整数,默认是0,表示不开启自动清理功能,但可以运行bin/zkCleanup.sh来手动清理zk日志。
autopurge.purgeInterval=3
//配置zookeepe集群各节点之间通信和选举的端口,其中2888端口号是zookeeper服务之间通信的监听端口,而3888是zookeeper选举通信端口。server.N N代表这个节点的ID编号,需要用户手工指定各节点对应的编号,编号不能有重复;
server.1=namenode:2888:3888
server.2=datanode1:2888:3888
server.3=datanode2:2888:3888
クラスターノード番号myidを構成します
新しいファイルmyidを作成し(zoo.cfgによって構成されたdataDirディレクトリの下にあります。ここでは/ home / xxx / zookeeperxxx / dataです)、myidの値がサーバー番号と同じになるようにします(例:namenode:1のmyid)。 ; datanode1のmyid:2など;
log4j.propertiesを構成します。
〜/ zookeeper / conf /パスにlog4j.propertiesファイルがあります。ホストおよびその他のログパス構成情報を変更する必要があります。
起動と検証
binディレクトリに入り、。/ zkServer.shstartでサービスを開始します。
./zkServer.sh statusを実行して、各ノードのステータスを表示します。ノードの1つがリーダーで、残りがフォロワーです。jpsからも表示できます。追加のQuorumPeerMainプロセスがあります。
./zkServer.sh stopサービスを停止します。サービスが開始されません。以下を確認してください:
①ポート218128883888が占有されています
②IPとホスト名は/ etc / hostsに追加されず、ホスト名は構成で構成されます
Kafka 配置
Kafkaは分散型の高スループットメッセージングシステムであり、そのノードステータスはZkによって維持される必要があります。
構成
Kafkaのtar.gzパッケージを/ home / streamディレクトリに直接解凍します。xxx / kafka / config /server.propertiesファイルを変更する必要があります。変更するために一般的に使用される構成項目は次のとおりです。
// Kはafka機械の各ノードは、ブローカー、現在のノードの構成ブローカ番号ID、各ノード番号は一意でなければなりません。
// K外部のafkaデフォルト通信ポート9092と同様に、マシンのIPアドレスを、あなたは、ホスト名とポートは、現在のホストを使用する指定、および9092のデフォルトのポートを使用しない場合。
// K afkaデータ永続ディレクトリは手動で作成する必要があります指定します。
// K afkaクラスターのデータ保持期間(デフォルトは168時間)は、通常、変更を推奨しませんが、タイムアウトの単一のコマンドトピックを変更できます。
//指定されたZookeeperクラスターを構成します。
delete.topic.enable |
デフォルトはfalse |
トピックの削除パラメーターを有効にします。trueに設定することをお勧めします。 |
//如果不开启true,那么当用命令删除topic的时候并不是真正的删除,而只是标记为marked for deletion
log.cleanup.policy = delete //默认
//日志清理策略 选择有:delete和compact 主要针对过期数据的处理,或是日志文件达到限制的额度,会被 topic创建时的指定参数覆盖
auto.leader.rebalance.enable =true //默认false
//是否自动平衡broker之间的分配策略
message.max.bytes =1000000 //默认
//消息体的最大大小,单位是字节。服务器可以接收到的最大的消息大小。注意此参数要和consumer的maximum.message.size大小一致,否则会因为生产者生产的消息太大导致消费者无法消费。
replica.fetch.max.bytes=1000000
//最好和上面保持一致
log.retention.check.interval.ms=5minutes //默认
//文件大小检查的周期时间,是否触发 log.cleanup.policy中设置的策略;
起動と検証
各ホストのbinディレクトリに移動し、サービスを1つずつ開始します。
cd / home / xxx / kafka_xxxx / bin;
バックグラウンドでサービスを開始します。
nohup ./kafka-server-start.sh ../config/server.properties&
検証:
kafkaプロセスがあるかどうかを確認するjpsコマンド。zkCli.shを使用して、ブローカーのステータスが登録されているかどうかを確認し、トピックテストを作成することもできます。