Kafka使用及开发概要,Kafka使用开发概要


Kafka是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录、浏览、点击、分享、喜欢)以及系统运行日志(CPU、内存、磁盘、网络、系统及进程状态)。

当前很多的消息队列服务提供可靠交付保证,并默认是即时消费(不适合离线)。高可靠交付对linkedin的日志不是必须的,故可通过降低可靠性来提高性能,同时通过构建分布式的集群,允许消息在系统中累积,使得kafka同时支持离线和在线日志处理。


直接上干货吧:

1.命令 =========zookepper========== (kafka自带)单点启动zookeeper zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
zookeeper集群启动 zkServer.sh start   /home/hadoop/hadoop_workspace/zookeeper-3.4.6/conf/zoo.cfg
zkServer.sh start 
查看状态 zkServer.sh status
停止 zkServer.sh stop
zookeeper的命令行
zkCli.sh 
zookeeper集群需要在 /opt/hadoop/zookeeper/data中加入myid  对应机器1,2,3...

查看对应端口是否被占用:netstat -apn | grep 2181


===========kafka============
启动kafka
kafka-server-start.sh $KAFKA_HOME/config/server.properties 若启动失败,先进一下Zookeeper控制台 zkCli.sh
创建topic
kafka-topics.sh --create --zookeeper 192.168.0.121:2181 --replication-factor 1 --partitions 20 --topic topicname kafka-topics.sh --create --zookeeper 192.168.0.121:2181 --replication-factor 1 --partitions 1 --topic topicname kafka-topics.sh --create --zookeeper 192.168.0.121:2181 --replication-factor 2 --partitions 2 --topic topicname
启动producer kafka-console-producer.sh --broker-list 192.168.0.121:9092 --topic topicname
启动comsumer
kafka-console-consumer.sh --zookeeper 192.168.0.121:2181 --topictopicname --from-beginning 删除topic kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic topicname --zookeeper 127.0.0.1  删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录删除zookeeper "/brokers/topics/"目录下相关topic节点

查看topic列表 kafka-topics.sh --list --zookeeper 192.168.0.121:2181
kafka-console-consumer.sh --zookeeper 192.168.6.103:2181 --topic page_visits --from-beginning
若是集群,修改kafka 配置server.properties zookeeper.connect=192.168.2.4:2181,192.168.2.5:2181,192.168.6.102:2181,192.168.6.103:2181 还需要修改hostname=ip地址,前提是将主机名设置为ip地址 目录: /opt/hadoop/zookeeper/data中加入myid 一个识别号
2.kafka 分区 为了更好的实现负载均衡和消息的顺序性,kafka的producer在分发消息时可以通过分发策略发送给指定的partition。实现分发的程序是需要制定消息的key值,而kafka通过key进行策略分发。
3.基础开发 hadoop-consumer https://github.com/kafka-dev/kafka/tree/master/contrib/hadoop-consumer Producer的编写 <a href="https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+Producer+Example/>
PS. 建立集群是注意关闭防火墙 kafka消费者读取消息,每次迭代179条

相关内容