kafka集群部署

来源:互联网 发布:出租外汇交易软件 编辑:程序博客网 时间:2024/05/18 05:49
kafka集群部署
下载kafka安装包:

wget https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.1.0/kafka_2.10-0.10.1.0.tgz

解压

tar –zxvf kafka_2.10-0.10.1.0.tgz

配置zookeeper配置文件

vi  config/zookeeper.properties//模板  其他文件类似

      #这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

tickTime=2000

      #这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒

initLimit=10

      #这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒

syncLimit=5

      #快照日志的存储路径

dataDir=/var/kafka/zookeeper/2080

        #事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多

dataLogDir=/var/kafka/zookeeper/2080

# the port at which the clients will connect

clientPort=2080

# disable the per-ip limit on the number ofconnections since this is a non-production config

maxClientCnxns=0

server.1=localhost:12000:13000

server.2=localhost:12001:13001

server.3=localhost:12002:13002

#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
# localhost为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
 
创建myid文件

echo "1" > /var/kafka/zookeeper/2080/myid

echo "2" > /var/kafka/zookeeper/2081/myid

echo "3" > /var/kafka/zookeeper/2082/myid

注意点:zookeeper不会主动的清除旧的快照和日志文件,这个是操作者的责任
kafka配置文件配置:

     vi  config/server.properties//模板  其他文件类似

broker.id=1

delete.topic.enable=true

listeners=PLAINTEXT://:19000

host.name=localhost

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/var/kafka/logs/kafka-19000

num.partitions=1

num.recovery.threads.per.data.dir=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=localhost:2080,localhost:2081,localhost:2082

zookeeper.connection.timeout.ms=6000

创建kafka启动脚本:

vikafka//创建文件

#!/bin/sh
function Stop()
{
ps -ef |grep kafka|grep -v grep |awk '{print $2}'|xargs kill -9
}
 
function Start()
{
/bin/bash /usr/local/kafka_2.10-0.10.1.0/bin/zookeeper-server-start.sh /usr/local/kafka_2.10-0.10.1.0/config/zookeeper2080.properties &> /dev/null &
/bin/bash /usr/local/kafka_2.10-0.10.1.0/bin/zookeeper-server-start.sh /usr/local/kafka_2.10-0.10.1.0/config/zookeeper2081.properties &> /dev/null &
/bin/bash /usr/local/kafka_2.10-0.10.1.0/bin/zookeeper-server-start.sh /usr/local/kafka_2.10-0.10.1.0/config/zookeeper2082.properties &> /dev/null &
sleep 3
/bin/bash /usr/local/kafka_2.10-0.10.1.0/bin/kafka-server-start.sh /usr/local/kafka_2.10-0.10.1.0/config/server19000.properties &> /dev/null &
/bin/bash /usr/local/kafka_2.10-0.10.1.0/bin/kafka-server-start.sh /usr/local/kafka_2.10-0.10.1.0/config/server19001.properties &> /dev/null &
/bin/bash /usr/local/kafka_2.10-0.10.1.0/bin/kafka-server-start.sh /usr/local/kafka_2.10-0.10.1.0/config/server19002.properties &> /dev/null &
}
case $1 in
        stop)
            Stop
            ;;
        start)
            Start
            ;;
        *)
            echo "Usage: `basename $0` {stop|start}"
            ;;
esac
启动kafka
kafka start
查看kafka端口使用情况
netstat –ntpl
查看kafka
jps
添加一个topic
./bin/kafka-topics.sh --create --zookeeper localhost:2080 --replication-factor 2 --partitions 1  --topic  logstash
查看topic
./bin/kafka-topics.sh --list --zookeeper localhost:2080
删除topic
./bin/kafka-topics.sh --delete --zookeeper localhost:2080  --topic  logstash
创建生产者
./bin/kafka-console-producer.sh --broker-list localhost:19000 --topic logstash
创建消费者
./bin/kafka-console-consumer.sh --zookeeper localhost:2080 --topic logstash --from-beginning
压力测试:
生产测试:
            参数说明:
          messages                生产者发送总的消息数量
message-size                每条消息大小
batch-size                每次批量发送消息的数量
topics                        生产者发送的topic
threads                        生产者使用几个线程同时发送
broker-list                安装kafka服务的机器ip:port列表
producer-num-retries        一个消息失败发送重试次数
request-timeout-ms        一个消息请求发送超时时间
 
旧版:./bin/kafka-producer-perf-test.sh --messages 1000000 --message-size 1000 --batch-size 100 --topic logstash --threads 4 --broker-list 192.168.3.12:19000,192.168.3.12:19001
 
版本:bin/kafka-producer-perf-test.sh --num-records 50000 --record-size 5120  --throughput 10000 --topic logstash --producer-props bootstrap.servers=192.168.3.12:19000,192.168.3.12:19001,192.168.3.12:19002 acks=all
返回结果解析说明:
start.time,end.time,compression,message.size,batch.size,total.data.sent.in.MB,MB.sec,total.data.sent.in.nMsg,nMsg.sec
消费测试:
            参数说明:
zookeeperzk                配置
messages                消费者消费消息总数量
topic                        消费者需要消费的topic
threads                        消费者使用几个线程同时消费
group                        消费者组名称
socket-buffer-sizesocket        缓冲大小
fetch-size                每次向kafka broker请求消费大小
consumer.timeout.ms        消费者去kafka broker拿去一条消息超时时间
./kafka-consumer-perf-test.sh --zookeeper 10.138.65.216:2181,10.138.65.217:2181,10.138.65.218:2181 --messages 50000 --topic logstash --threads 2 
       
返回结果解析说明:
start.time,end.time,fetch.size,data.consumed.in.MB,MB.sec,data.consumed.in.nMsg,nMsg.sec
0 0
原创粉丝点击