参考博文:kafka 配置文件参数详解

参考博文:Kafka【第一篇】Kafka集群搭建

参考博文:如何为Kafka集群选择合适的Partitions数量

参考博文:Kafka Server.properties

参考博文:kafka常用配置【重要】

参考博文:kafka常用配置

1. 主机规划

主机名称

IP信息

内网IP

操作系统

安装软件

备注:运行程序

mini01

10.0.0.11

172.16.1.11

CentOS 7.4

jdk、zookeeper、kafka

QuorumPeerMain、Kafka

mini02

10.0.0.12

172.16.1.12

CentOS 7.4

jdk、zookeeper、kafka

QuorumPeerMain、Kafka

mini03

10.0.0.13

172.16.1.13

CentOS 7.4

jdk、zookeeper、kafka

QuorumPeerMain、Kafka

mini04

10.0.0.14

172.16.1.14

CentOS 7.4

jdk、zookeeper

QuorumPeerMain

mini05

10.0.0.15

172.16.1.15

CentOS 7.4

jdk、zookeeper

QuorumPeerMain

其中zookeeper的安装可参见:Hbase-2.0.0_01_安装部署

添加hosts信息,保证每台Linux都可以相互ping通

 [root@mini01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.1.11 mini01
172.16.1.12 mini02
172.16.1.13 mini03
172.16.1.14 mini04
172.16.1.15 mini05

windows的hosts文件也追加如下信息

 c:\windows\system32\drivers\etc
########################################## 追加信息如下:
10.0.0.11 mini01
10.0.0.12 mini02
10.0.0.13 mini03
10.0.0.14 mini04
10.0.0.15 mini05

2. Kafka的部署与配置修改

2.1. 软件部署

 [yun@mini01 software]$ pwd
/app/software
[yun@mini01 software]$ tar xf kafka_2.-2.0..tgz
[yun@mini01 software]$ mv kafka_2.-2.0. /app/
[yun@mini01 software]$ cd /app/
[yun@mini01 ~]$ ln -s kafka_2.-2.0./ kafka
[yun@mini01 ~]$ ll -d kafka*
lrwxrwxrwx yun yun Sep : kafka -> kafka_2.-2.0./
drwxr-xr-x yun yun Jul : kafka_2.-2.0.

2.2. 环境变量

需要使用root权限

 [root@mini01 ~]# tail /etc/profile
done unset i
unset -f pathmunge # kafka
export KAFKA_HOME=/app/kafka
export PATH=$KAFKA_HOME/bin:$PATH [root@mini01 profile.d]# logout
[yun@mini01 hbase]$ source /etc/profile # 使用yun用户,并重新加载环境变量

2.3. 配置修改

 [yun@mini01 config]$ pwd
/app/kafka/config
[yun@mini01 config]$ vim server.properties
############################# Server Basics #############################
# 每一个broker在集群中的唯一标示★★★
# 比如mini01 为0 mini02 为1 mini03 为2
broker.id= ############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
# 启动kafka服务监听的ip和端口,默认为java.net.InetAddress.getCanonicalHostName()获取的ip
#listeners=PLAINTEXT://:9092 # broker通知到producers和consumers的主机地址和端口号
# 如果未设置,使用listeners的配置。否则,使用java.net.InetAddress.getCanonicalHostName()返回的值
# 对于ipv4,基本就是localhost了 127.0.0.1 最后就是访问失败
#advertised.listeners=PLAINTEXT://your.host.name:9092
# 在不同的机器,名称不同 如mini01、mini02、mini03★★★
advertised.listeners=PLAINTEXT://mini01:9092 # broker 处理消息的最大线程数,一般情况下不需要去修改
num.network.threads= # broker处理磁盘IO 的线程数 ,数值应该大于你的硬盘数
num.io.threads= # 发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.send.buffer.bytes= # kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.receive.buffer.bytes= # 这个参数是向kafka请求消息或者向kafka发送消息的请求的最大数,这个值不能超过java的堆栈大小
socket.request.max.bytes= ############################# Log Basics #############################
# kafka数据的存放地址,多个地址的话用逗号分割 /tmp/kafka-logs-,/tmp/kafka-logs-
log.dirs=/app/kafka/logs # 默认的分区数,一个topic默认1个分区数
num.partitions= # 每个数据目录在启动时用于日志恢复和关闭时用于刷新的线程数。
num.recovery.threads.per.data.dir= ############################# Internal Topic Settings #############################
# 组元数据内部主题“__consumer_offset”和“__transaction_state”的复制因子
# 对于开发测试之外的任何内容,建议使用大于1的值来确保可用性,比如3。
offsets.topic.replication.factor=
transaction.state.log.replication.factor=
transaction.state.log.min.isr= ############################# Log Flush Policy #############################
# 在持久化到磁盘前message最大接收条数
#log.flush.interval.messages=
log.flush.interval.messages= # 持久化的最大时间间隔
#log.flush.interval.ms=
log.flush.interval.ms= ############################# Log Retention Policy #############################
# 默认消息的最大持久化时间,168小时,7天
# segment 文件保留的最长时间,超时则被删除
log.retention.hours= # 当分片的大小超过该值时,就会被删除。该功能不依赖于log.retention.hours。为 -1没有大小限制
#log.retention.bytes=
log.retention.bytes=- # 滚动生成新的segment文件的最大时间
log.roll.hours= # 单个分片的上限,达到该大小后会生成新的日志分片 1G
log.segment.bytes= # 日志分片的检测时间间隔,每隔该时间会根据log保留策略决定是否删除log分片
log.retention.check.interval.ms= # 默认为true 启用日志清理器进程在服务器上运行
log.cleaner.enable=true # 默认为true 【当前版本】 启用删除主题。 如果此配置已关闭,则通过管理工具删除主题将不起作用
delete.topic.enable=true
############################# Zookeeper #############################
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=mini01:,mini02:,mini03:,mini04:,mini05: # Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms= ############################# Group Coordinator Settings #############################
# 在开发测试环境下该值设置为0,保证启动后马上可以使用。但在生产环境下,默认值3秒更适合
group.initial.rebalance.delay.ms=

2.4. 其他配置修改

 [yun@mini01 config]$ pwd
/app/kafka/config
[yun@mini01 config]$ vim producer.properties
………………
# 用于建立到Kafka集群的初始连接的主机/端口对列表。客户机将使用所有服务器,而不管这里为引导绑定指定了哪些服务器——此列表只影响用于发现完整服务器集的初始主机。
# 由于这些服务器仅用于初始连接,以发现完整的集群成员关系(可能会动态更改),因此这个列表不需要包含完整的服务器集(但是,如果服务器宕机,您可能需要多个服务器)。
bootstrap.servers=mini01:,mini02:,mini03:
………………
[yun@mini01 config]$ vim consumer.properties
………………
bootstrap.servers=mini01:,mini02:,mini03:
………………

2.5. 启动/停止kafka

 [yun@mini01 ~]$ kafka-server-start.sh -daemon /app/kafka/config/server.properties  # -daemon 可选参数,后台运行
# 如果是后台运行,则控制台没有下面日志信息
[-- ::,] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[-- ::,] INFO starting (kafka.server.KafkaServer)
……………………
[yun@mini01 ~]$ kafka-server-stop.sh # 停止kafka

2.6. zookeeper命令行查看

 [zk: localhost:(CONNECTED) ] ls /
[cluster, controller, brokers, zookeeper, admin, isr_change_notification, log_dir_event_notification, controller_epoch, zhang01, consumers, latest_producer_id_block, config, hbase]
[zk: localhost:(CONNECTED) ] ls /brokers
[ids, topics, seqid]
[zk: localhost:(CONNECTED) ] ls /brokers/ids
[, , ]

kafka_2.11-2.0.0_安装部署的更多相关文章

  1. Storm-0.9.0.1安装部署 指导

    可以带着下面问题来阅读本文章: 1.Storm只支持什么传输 2.通过什么配置,可以更改Zookeeper默认端口 3.Storm UI必须和Storm Nimbus部署在同一台机器上,UI无法正常工 ...

  2. 大数据篇:DolphinScheduler-1.2.0.release安装部署

    大数据篇:DolphinScheduler-1.2.0.release安装部署 1 配置jdk #查看命令 rpm -qa | grep java #删除命令 rpm -e --nodeps xxx ...

  3. zabbix4.0.1 安装部署

    zabbix安装部署 目录 一.环境准备... 3 1.1.版本:... 3 1.2.部署环境... 3 二.安装部署... 3 2.1.zabbix安装... 3 2.1.1.下载zabbix的rp ...

  4. RAC 11.2.0.4 安装 遇到 INS-06001

    今天安装11.2.0.4的grid软件,在配置passwordless SSH的时候,点击setup 出现此错误 开始网上搜了一把.说什么的都有,什么系统bug啊什么的 但是我另外一套rac却很正常就 ...

  5. Oracle Grid 11.2.0.4 安装是出现“[INS-41112] Specified network interface doesnt maintain connectivity across cluster”错误

    最新文章:Virson's Blog 安装Oracle 11.2.0.4 的RAC,在Grid 安装时报错: [INS-41112]Specified network interface doesnt ...

  6. [DPI][suricata] suricata-4.0.3 安装部署

    suricata 很值得借鉴.但是首先还是要安装使用,作为第一步的熟悉. 安装文档:https://redmine.openinfosecfoundation.org/projects/suricat ...

  7. PHP 5.5.38 + mysql 5.0.11 + zabbix3.0 + nginx 安装

    PHP 5.5.38 + mysql 5.0.11 + zabbix3.0 + nginx 1.首先在安装好环境下安装 zabbix3.0情况下 2. yum install mysql-devel ...

  8. presto 0.166安装部署

    系统:linux java:jdk 8,64-bit Connector:hive 分布式,node1-3 node1:Coordinator . Discovery service node2-3: ...

  9. Hbase-2.0.0_01_安装部署

    该文章是基于 Hadoop2.7.6_01_部署 进行的 1. 主机规划 主机名称 IP信息 内网IP 操作系统 安装软件 备注:运行程序 mini01 10.0.0.11 172.16.1.11 C ...

随机推荐

  1. MySQL 索引与查询优化

    本文介绍一些优化 MySQL 索引设计和查询的建议.在进行优化工作前,请务必了解MySQL EXPLAIN命令: 查看执行计划 索引 索引在逻辑上是指从索引列(关键字)到数据的映射,通过索引可以快速的 ...

  2. wget命令的几个常用选项和示例

    wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下 ...

  3. python变量和变量赋值的几种形式

    动态类型的语言 python是动态类型的语言,不需要声明变量的类型. 实际上,python中的变量仅仅只是用来保存一个数据对象的地址.无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保 ...

  4. Linux命令-基本操作和软件安装

    配置JDK环境:JAVA_HOME:D:\software\JDK1.7Path:%JAVA_HOME%\bin;%JAVA_HOME%\lib; ls(查看当前目录下的文件及文件夹)sh initN ...

  5. C#比较两个对象是否为同一个对象。

    两个对象是否为同一个对象:是看两个对象是否指向堆中的同一块内存. 1.使用object.ReferenceEquals() class Program { static void Main(strin ...

  6. js的数据类型:单例模式,工厂模式,构造函数

    js数据类型 基本数据类型:string   undefined   null  boolean  number 引用数据类型  Object  array  function 二者的区别 基本数据类 ...

  7. 捕获未处理的Promise错误

    译者按: 通过监听unhandledrejection事件,可以捕获未处理的Promise错误. 原文: Tracking unhandled rejected Promises 译者: Fundeb ...

  8. js 函数重载

    简单定义:根据不同参数长度来实现让同一个函数,进行不同处理. function addMethod (obj, name, fun) { let old = obj[name] obj[name] = ...

  9. js/es6 元素拖动

    元素事件:鼠标按下事件/鼠标移动事件/鼠标松开事件 元素样式:让元素脱离文档流,采用绝对定位的方式. 一.鼠标按下事件 当鼠标在元素上面按下时,保存元素的初始偏移量和鼠标按下时的坐标,然后在状态变量里 ...

  10. 6;XHTML 超链接

    1.超链接的基本格式 2.超链接的种类 3.相对链接和绝对链接 4.书签的链接 5.基准参考点 6.超链接事件 7.为链接创建键盘快捷键 8.为链接设置制表符次序 超链接也叫 URL 中文翻译为资源定 ...