环境:必要的依赖,1g的内存。2台机器。
0.安装java
略
1.安装ZooKeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
从3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包,而之前的普通的tar.gz的包里面是只是源码的包无法直接使用。
# cd /software
# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.6-bin.tar.gz
# tar xvf apache-zookeeper-3.5.6-bin.tar.gz
# mv apache-zookeeper-3.5.6-bin /usr/local/zookeeper
# echo "export PATH=\$PATH:/usr/local/zookeeper/bin" >> /etc/profile
# source /etc/profile
# cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
# vi /usr/local/zookeeper/conf/zoo.cfg
改一处,加一处
dataDir=/usr/local/zookeeper/data
server.0=集群成员IP1:2888:3888
server.1=集群成员IP2:2888:3888
...
如果是单机就写一个。
# mkdir /usr/local/zookeeper/data
# vi /usr/local/zookeeper/data/myid
就写一个数字,这个数字就是上面server.0 .1的这个数,根据后面成员IP确定数字。
# zkServer.sh start
# zkServer.sh status
2.安装kafka
# 所有机器都要向其他机器做免密:过程略。
# cd /software
# wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.1/kafka_2.12-2.3.1.tgz
# tar xvf kafka_2.12-2.3.1.tgz
# mv kafka_2.12-2.3.1 /usr/local/kafka
# echo "export PATH=\$PATH:/usr/local/kafka/bin" >> /etc/profile;source /etc/profile
# vi /usr/local/kafka/config/server.properties
1.改broker.id为你台机器在配置zookeeper文件里的编号
2.zookeeper.connect改成zookeeper服务机器,如果是集群,就填多个。
开启kafka
# kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
# jps
1300 QuorumPeerMain
2216 Jps
2121 Kafka
三条,视为成功。
1.增
# kafka-topics.sh --create --zookeeper 集群成员IP:2181 --replication-factor 副本数 --partitions 分片数 --topic 主题名字
# kafka-topics.sh --create --zookeeper 10.1.1.55:2181 --replication-factor 1 --partitions 2 --topic test
2.查
# kafka-topics.sh --list --zookeeper 10.1.1.55:2181 my-replicated-topic
3.测试
开启生产者模式
# kafka-console-producer.sh --broker-list 集群成员IP:9092 --topic 主题
# kafka-console-producer.sh --broker-list 10.1.1.55:9092 --topic test
变成箭头
>
开启消费者模式
# kafka-console-consumer.sh --bootstrap-server 集群成员IP:9092 --topic 主题 --from-beginning
# kafka-console-consumer.sh --bootstrap-server 10.1.1.55:9092 --topic test --from-beginning
会占用终端
没有报错
生产者输入,消费者输出相同内容。
成功。
4.kafka与filebeat/logstash
filebeat->kafka
#================================ Outputs =====================================
output.kafka:
enabled: true
hosts: ["kafka_IP:9092"] #如果你是kafka集群,请用,分隔
topic: test
kafka->logstash
input{
kafka {
topics => "test"
type => "kafka"
bootstrap_servers => "kafka_IP:9092,kafka_IP:9092,kafka_IP:9092" //你的kafka地址
codec => "json" //JSON形式写入
}
}
具体仍需讨论