最近要做实时计算相关的东西,目前每天约100G日志,还在不断增长,高峰时一天400G日志。
考虑过flume+activemq+storm+redis+hadoop, 考虑用kafka做mq的备用方案。
ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连接。 |
ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中,只有一个Leader,其他的都是Follower,如果ZooKeeper集群在运行过程中Leader出了问题,系统会采用该算法重新选出一个Leader。 ZooKeeper集群启动的时候,会首先选出一个Leader,在Leader election过程中,某一个满足选举算的结点就能成为Leader。 |
dataDir=/usr/local/tmp/zookeeperclientPort=2181server.170=192.168.197.170:2888:3888server.171=192.168.197.171:2888:3888server.172=192.168.197.172:2888:3888
|
> tar xzf kafka-<VERSION>.tgz > cd kafka-<VERSION> > ./sbt update > ./sbt package > ./sbt assembly-package-dependency
修改 conf/server.properties
zookeeper.connect=192.168.197.170:2181,192.168.197.171:2181,192.168.197.172:2181
broker.id分别改成broker.id=170broker.id=171broker.id=172host.name分别改成(如果不改,client访问集群时,如果没在hosts配置对应机器的 hostname,访问将会报错)host.name=192.168.197.170host.name=192.168.197.171
host.name=192.168.197.172
可根据需求修改port: broker节点使用端口号 默认 9092
log.dir: 消息目录位置
cd /usr/local/kafka_2.8.0-0.8.0JMX_PORT=9999 bin/kafka-server-start.sh config/server.properties &
bin/kafka-create-topic.sh --zookeeper 192.168.197.170:2181 --partition 1 --topic leo-test
bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181
topic: leo-test partition: 0 leader: 171 replicas: 171 isr: 171说明:
partiton: partion id,由于此处只有一个partition,因此partition id 为0
leader:当前负责读写的lead broker id
relicas:当前partition的所有replication broker list
isr:relicas的子集,只包含出于活动状态的brokerbin/kafka-create-topic.sh --zookeeper 192.168.197.170:2181 --replica 2 --partition 2 --topic leo-test2
topic: leo-test partition: 0 leader: 171 replicas: 171 isr: 171
topic: leo-test2 partition: 0 leader: 171 replicas: 171,170 isr: 171,170
topic: leo-test2 partition: 1 leader: 170 replicas: 170,171 isr: 170,171
命令:pkill -9 -f server.properties