一、简介
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。(摘自百度百科)
二、下载
下载地址:https://kafka.apache.org/
下载得到:kafka_2.12-2.5.0.tgz
三、安装
tar zxvf kafka_2.12-2.5.0.tgz -C /mylab/soft/
四、配置
1.修改环境变量
修改~/.bashrc
vi ~/.bashrc
#kafka_2.12-2.5.0
export KAFKA_HOME=/mylab/soft/kafka_2.12-2.5.0
export PATH=$KAFKA_HOME/bin:$PATH
source ~/.bashrc
env
2.修改配置文件
a) 创建工作目录
mkdir -p $KAFKA_HOME/working/zookeeper
mkdir -p $KAFKA_HOME/working/logs
ls $KAFKA_HOME/working
b) zookeeper.properties
vi $KAFKA_HOME/config/zookeeper.properties
dataDir=/mylab/soft/kafka_2.12-2.5.0/working/zookeeper
c) server.propertiesc
vi $KAFKA_HOME/config/server.properties
log.dirs=/mylab/soft/kafka_2.12-2.5.0/working/logs
zookeeper.connect=master:2181
d) consumer.properties
vi $KAFKA_HOME/config/consumer.properties
bootstrap.servers=master:9092
group.id=test-consumer-group
五、启动和停止服务
启动kafka服务
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
停止用
$KAFKA_HOME/bin/kafka-server-stop.sh
要是没有外部的zookeeper,可以启动kafka内置的zookeeper
$KAFKA_HOME/bin/zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties
停止用
$KAFKA_HOME/bin/zookeeper-server-stop.sh
六.测试
1.创建topic
$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper master:2181 --topic test --partitions 1 --replication-factor 1
2.查看topic
$KAFKA_HOME/bin/kafka-topics.sh --list --zookeeper master:2181
$KAFKA_HOME/bin/kafka-topics.sh --describe --zookeeper master:2181 --topic test
3.从console往topic输入
$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list master:9092 --topic test
4.消费消息
消费
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server master:9092 --topic test
从头开始消费
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server master:9092 --topic test --from-beginning
退出ctrl-C
六.spark 相关
3.spark streaming-kafkad包
地址:https://mvnrepository.com/
搜索:spark-streaming-kafka
好像只有scala 2.11版本的,没有scala 2.12版本的
https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka_2.11/1.6.3
spark-streaming-kafka_2.11-1.6.3.jar
前一个是scala版本(必须要匹配环境里的scala版本),后一个是kafka jar版本
scala-kafka编程一定要加上这句话
import scala.collection.JavaConversions._
spark-sql-kafka
七、参考URL
https://www.cnblogs.com/once/p/10146666.html 使用Docker快速搭建Zookeeper和kafka集群