概述
Kafka特性:
1、高吞吐量、低延迟:Kafka每秒可以处理几十万条消息,他的延迟最低只有几毫秒
2、每个topic可以分多个partition,consumer group 对partition进行consume操作
3、可扩展性:kafka集群支持热扩展
4、持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
5、容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
6、高并发:支持数千个客户端同时读写
Broker:Kafka节点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群
Topic:一类消息,消息存放的目录即主题,对消息进行划分唯一的逻辑单元
message:Kafka中最基本的传递对象
Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列
Segment:partition物理上有多个segment组成,每个segment存着message信息
Kafka存储策略:
1、kafka以topic来进行消息管理,每个topic包含多个partition,每个partition对应一个逻辑log,有多个segment组成
2、每个segment中存储多条消息,消息id由其逻辑位置决定,即从消息id可以直接定位到消息的存储位置,避免id到位置的额外映射
服务器:
server1: 192.101.11.162 server1
server1: 192.101.11.163 server2
server1: 192.101.11.164 server3
一、准备工作
1.下载、安装JDK1.8,Zookeeper,kafka
下载URL:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
jdk-8u251-linux-x64.tar.gz
下载URL:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
apache-zookeeper-3.6.1-bin.tar.gz
下载URL:http://kafka.apache.org/downloads
kafka_2.12-2.5.0.tgz
3.解压JDK1.8,Zookeeper,kafka
#tar -zxvf jdk-8u251-linux-x64.tar.gz
#tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz
#tar -zxvf kafka_2.12-2.5.0.tgz
4.创建运行目录
#mkdir /usr/local/components/
#mv jdk1.8.0_251 /usr/local/components/
#mv apache-zookeeper-3.6.1-bin /usr/local/components/
#mv kafka_2.12-2.5.0 /usr/local/components/
5.创建数据目录
#mkdir -p /data/zookeeper/
#mkdir -p /data/kafka/
二、安装JDK
1.编辑/etc/profile,增加如下环境变量
#vi /etc/profile
export JAVA_HOME=/usr/local/components/jdk1.8.0_251
export PATH=$JAVA_HOME/bin:$PATH
2.让/etc/profile文件修改后立即生效
#source /etc/profile
3.显示PATH环境变量,检验修改后的结果
#echo $PATH
printenv
4.验证JDK安装完成,显示版本号
#java -version
三、安装zookeeper
1.分发到其他节点
#scp ...............
2.复制并修改配置
#cp zoo_sample.cfg zoo.cfg
#vi zoo.cfg
修改:
dataDir=/data/zookeeper/
增加:
server.1=192.101.11.162:8880:7770
server.2=192.101.11.163:8880:7770
server.3=192.101.11.164:8880:7770
创建日志目录
#mkdir -p /data/zookeeper/logs/
#cd ./bin
#vi zkEnv.sh
增加:
ZOO_LOG_DIR=/data/zookeeper/logs/
3.分发到其他节点
#scp ...............
4.配置实例ID,其他节点同理
#cd /data/zookeeper/
#echo "1" >myid
5.启动运行
#cd bin
#./zkServer.sh start
四、安装kafka
1.分发到其他节点
#scp ...............
2.修改配置
#cd config
#vi server.properties
修改broker.id,修改为不同的值(三个节点分别为:1,2,3)
broker.id=1
修改log.dirs,这是Kafka的数据目录
log.dirs=/data/kafka/
修改listeners(server1:9092,server2:9092,server3:9092)
listeners=PLAINTEXT://server1:9092
其他参数设置:
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
num.partitions=10
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
注意:内存生产建议配置 4G
3.启动运行
#cd bin
#./kafka-server-start.sh ../config/server.properties &
4.创建Topic
# ./kafka-topics.sh --create --zookeeper zk1:2181,zk2:2181,zk3:2181 --topic test --partitions 1 --replication-factor 3 ##一个分区,三个副本
5.查看Topic列表
# ./kafka-topics.sh --list --zookeeper zk1:2181,zk2:2181,zk3:2181
6.查看Topic状态
# ./kafka-topics.sh --describe --zookeeper zk1:2181,zk2:2181,zk3:2181 --topic test
7.producer发送消息
#./kafka-console-producer.sh --broker-list server1:9092,server2:9092,server3:9092 --topic test
8.consumer接收消息
#./kafka-console-consumer.sh --bootstrap-server server1:9092,server2:9092,server3:9092 --topic test --from-beginning
五、安装KafkaOffsetMonitor
1.下载
0.2.0版本下载:
百度网盘:https://pan.baidu.com/s/1sj0YERV
百度网盘:https://pan.baidu.com/s/1geEBEvT 密码:jaeu
0.4.6 版本下载:
CSDN的下载地址:https://download.csdn.net/download/guang564610/10371172
百度云盘:https://pan.baidu.com/s/1A_Ukh6FlvOYkUws7kUPAqg
下载后上传KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar或KafkaOffsetMonitor-assembly-0.2.0.jar到服务器指定目录
2.运行
# touch kafka-monitor-start.sh
# vi kafka-monitor-start.sh
nohup java -cp KafkaOffsetMonitor-assembly-0.4.6-SNAPSHOT.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk hadoop010:2181,hadoop011:2181,hadoop012:2181 --port 8080 --refresh 10.seconds --retain 1.days --dbName offsetapp_kafka 1>kafkaOffsetMonitor_stdout.log 2>kafkaOffsetMonitor_stderr.log &
# chmod +x kafka-monitor-start.sh
# ./kafka-monitor-start.sh
3、访问
http://ip:8080
分享到:
相关推荐
本文详细记录了Centos下kafka集群环境部署过程,完全可以做实操手册。在此分享,希望能帮助到有用到的朋友!
日志分析集群,在本地centos7虚拟机搭建的Es+firebeat+logstash+kibana+kafka+head的完整集群部署文档,很详细,通常的EFK日志分析,加上kafka的消息队列,可以处理PB级别的日志内容。
有3台服务器,ip分别为192.168.174.10,192.168.174.11,192.168.174.12。 1、官网下载,分别在每台机器上解压安装 # 创建kafka的安装目录 ...export KAFKA_HOME=/usr/local/software/kafka/kafka_2.12-1.1
按照文档操作可安装7个节点的大数据集群,包括hadoop,hive,hbase,spark,tez,flume,kafka等等,自动化运维部署及监控,日志查询等功能
4.1. 查看SSH是否安装,需要客户端与服务都安装,centos7自带ssh服务,一般可以跳过安装步骤 27 4.2. 安装命令 27 4.3. service sshd restart 启动、重启SSH服务; 27 4.4. 开机启动。 27 4.5. 退出SSH命令 27 4.6. ...
1.2 安装centos6.5 3 1.2.1 注意安装细节 3 1.2.2 设置VIM 命令 3 1.2.3 配置仅主机连网 4 1.2.4 配置网络出现的问题 5 1.2.5 设置桥接上网 6 1.2.6 设置nat上网 12 2 安装基本工具 15 2.1 SSH免登陆配置 15 2.2 ...
153_kafka集群安装与启动4 ^; K& j3 @6 p0 M 154_kafka创建主题以及查看主题结构 155_考察zk中kafka结构9 N: Y8 u4 {# m/ z1 d3 H 156_kafka分区服务器服务方式 157_kafka编程API实现生产者和消费者+ w9 l1 N( D8 E%...
kafka,zookeeper,配置,集群,消息队列 公司自用,可以部署到服务器,直接启动,不需要加别的配置 给需要的人,简单省事
资料-CentOS7搭建Hadoop-2.7.7集群 ClickHouse官方中文文档 ETL流程、数据流图及ETL过程解决方案 Google-MapReduce中文版_1.0 Hadoop安装及分布式部署 Hadoop精选面试题和MapReduce编程企业级编程实践 HDFS-part2-...
系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 微服务的概念源于2014年3月Martin Fowler所写的...