一、环境准备

  • Linux操作系统
  • Java运行环境(1.6或以上)
  • zookeeper 集群环境,可参照Zookeeper集群部署 。
  • 服务器列表:

配置主机名映射。

vi /etc/hosts
##添加如下内容
168.5.7.75 server1
168.5.7.76 server2
168.5.7.77 server3

二、kafka集群部署及启动

2.1、介质准备

分别登录server1、server2、server3执行,操作、配置相同:

##更新或安装wget命令
yum -y install wget
##创建安装目录
mkdir -p /usr/local/services/kafka
##获取安装包kafka_2.11-2.3.0.tgz
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.0/kafka_2.11-2.3.0.tgz
##解压缩kafka_2.11-2.3.0.tgz
tar -zxvf kafka_2.11-2.3.0.tgz

2.2、配置环境变量

分别登录server1、server2、server3执行,操作、配置相同:

export KAFKA_HOME=/usr/local/services/kafka/kafka_2.11-2.3.0
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile

说明:再任一路径下输入 kafka 按 Tab 键后会补全 Kafka 相关脚本.sh,即Kafka 环境变量配置成功。 因 Kafka 脚本运行时会加载 /config 路径下的相关配置文件,故当不在 Kafka 安装目录 bin 下执行相关脚本时, 需要指定配置文件绝对路径。

2.3、修改配置文件

登录server1执行操作:

cd $KAFKA_HOME/config
cp server.properties server.properties.$(date +%Y%m%d)
vi server.properties
##修改文件内配置如下
broker.id=1
log.dirs=/opt/data/kafka-logs
port=9093
zookeeper.connect=server1:2181,server2:2181,server3:2181

登录server2执行操作:

cd $KAFKA_HOME/config
cp server.properties server.properties.$(date +%Y%m%d)
vi server.properties
##修改文件内配置如下
broker.id=2
log.dirs=/opt/data/kafka-logs
port=9093
zookeeper.connect=server1:2181,server2:2181,server3:2181

登录server3执行操作:

cd $KAFKA_HOME/config
cp server.properties server.properties.$(date +%Y%m%d)
vi server.properties
##修改文件内配置如下
broker.id=3
log.dirs=/opt/data/kafka-logs
port=9093
zookeeper.connect=server1:2181,server2:2181,server3:2181

说明:broker.id 用于指定代理的 id,需保证同一个集群下 broker.id 要唯一;log.dirs 指定日志存储路径。

2.4、启动服务

分别登录server1、server2、server3执行,操作、配置相同:

cd $KAFKA_HOME/bin
## -daemon :守护进程方式启动
kafka-server-start.sh -daemon ../config/server.properties

连接测试

#登录 ZooKeeper
cd /usr/local/services/zookeeper/zookeeper-3.4.13/bin
./zkCli.sh -server server1:2181
ls /

日志查看

##查看 KafkaServer 启动 日志
cat $KAFKA_HOME/logs/server.log

参考资料

参考书籍:Kafka入门与实践

  • 作者:
    DeepInThought


    出处:
    https://www.cnblogs.com/DeepInThought


    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 最新文章

    1. October 27th Week 44th Thursday 2016
    2. Android 4.2版本以下使用WebView组件addJavascriptInterface方法存在JS漏洞
    3. swiper 内容超出纵向滚动 解决办法
    4. uc_client是如何与UCenter进行通信的
    5. Scala - Spark Lambda“goesto“ => 分析
    6. Java生产者和消费者问题
    7. C# 如何通过拼接XML调用存储过程来优化系统性能
    8. UDP广域网,局域网通信-原理分析,穿透技术
    9. Java异常的分类
    10. QTP自传之初识
    11. linux .o,.a,.so文件解析
    12. 配置Samba服务
    13. [置顶] ※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十四)
    14. rem vh vw vmin vmax ex ch
    15. Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)
    16. hdu 3829 Cat VS Dog 二分匹配 最大独立点集
    17. Python3 randrange() 函数
    18. WPF C# 命令的运行机制
    19. sql语句基础
    20. mysql中的concat函数,concat_ws函数,concat_group函数之间的区别

    热门文章

    1. CockroachDB学习笔记——[译]如何优化Go语言中的垃圾回收
    2. 【AMAD】django-channels -- 为Django带来异步开发
    3. awk工具的基本用法
    4. YUV RGB 格式转换
    5. 【ARM-Linux开发】"libxml/parser.h: 没有那个文件或目录"解决方案
    6. U盘自动复制文件
    7. 关于keepalived执行后日志狂刷IPVS: Can't initialize ipvs: Protocol not available的问题
    8. centos7.4安装图形界面及报错处理
    9. 【AtCoder】AGC002
    10. 【LOJ】#3103. 「JSOI2019」节日庆典