1、Kafka集群部署

1.1集群部署的基本流程

下载安装包、解压安装包、修改配置文件、分发安装包、启动集群

1.2集群部署的基础环境准备

安装前的准备工作(zk集群已经部署完毕) 
 关闭防火墙

chkconfig iptables off  && setenforce 0

 创建用户

groupadd kafka && useradd kafka && usermod -a -G kafka kafka

 创建工作目录并赋权

mkdir -p /home/tuzq/software/kafka mkdir -p /home/tuzq/software/kafka/servers chmod 755 -R /home/tuzq/software/kafka

 切换到kafka用户下 
su kafka (本次实验,笔者使用root用户,即模拟在root下的安装。实际生产环境安装时请在指定用户下安装)

1.3 Kafka集群部署

1.3.1、下载安装包

http://kafka.apache.org/downloads.html 
在linux中使用wget命令下载

wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz

1.3.2、解压安装包

tar -zxvf /home/tuzq/software/kafka_2.11-0.9.0.1.tgz -C /home/tuzq/software/kafka/servers/
cd /home/tuzq/software/kafka/servers/
ln -s kafka_2.11-0.9.0.1 kafka

修改kafka的环境变量

vim /etc/profile
在文件的最底部写上:
#set kafka env
export KAFKA_HOME=/home/tuzq/software/kafka/servers/kafka
export PATH=$PATH:$KAFKA_HOME/bin

保存,然后执行:

source /etc/profile

1.3.3、修改配置文件

[root@hadoop1 kafka]# cp /home/tuzq/software/kafka/servers/kafka/config/server.properties
/home/tuzq/software/kafka/servers/kafka/config/server.properties.bak
[root@hadoop1 kafka]# vim /home/tuzq/software/kafka/servers/kafka/config/server.properties

输入以下内容:

#broker的全局唯一编号,不能重复
broker.id=0 ##用来监听链接的端口,producer或consumer将在此端口建立连接
port=9092 # 处理网络请求的线程数量
num.network.threads=3 # 用来处理磁盘IO的现成数量
num.io.threads=8 # 接受套接字的缓冲区大小
socket.send.buffer.bytes=102400 #接受套接字的缓冲区大小
socket.receive.buffer.bytes=102400 # 请求套接字的缓冲区的大小
socket.request.max.bytes=104857600 # kafka运行日志存放的路径
log.dirs=/home/tuzq/software/kafka/servers/logs/kafka # topic在当前broker上的分片个数
num.partitions=2 # 用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1 # segment文件保留的最长时间,超时将被删除
log.retention.hours=168 #滚动生成新的segment文件的最大时间
log.roll.hours=168 # 日志文件中每个segment的大小,默认为1G
log.segment.bytes=1073741824 # 周期性检查文件的时间,这里是300秒,即5分钟
log.retention.check.interval.ms=300000 ##日志清理是否打开
log.cleaner.enable=true #broker需要使用zookeeper保存meta数据
zookeeper.connect=hadoop11:2181,hadoop12:2181,hadoop13:2181 # zookeeper链接超时时间
zookeeper.connection.timeout.ms=6000 # partition buffer中,消息的条数达到阈值,将触发flush到磁盘
log.flush.interval.messages=10000 # 消息buffer的时间,达到阈值,将触发flush到磁盘
log.flush.interval.ms=3000 #删除topic需要server.properties中设置delete.topic.enable=true否则只是标记删除
delete.topic.enable=true #此处的host.name为本机IP(重要),如果不改,则客户端会抛出:Producer connection to localhost:9092 unsuccessful 错误! (如果是hadoop2机器,下面配置成hadoop2)
host.name=hadoop1 #外网访问配置(如果是hadoop2的,下面是192.168.106.92)
advertised.host.name=192.168.106.91

1.3.4、分发安装包

将包分发到hadoop2和hadoop3上

[root@hadoop1 software]# pwd
/home/tuzq/software
[root@hadoop1 software]# scp -r kafka root@hadoop2:$PWD
[root@hadoop1 software]# scp -r kafka root@hadoop3:$PWD

然后分别在hadoop1机器上创建软连

[root@hadoop2 software]# cd /home/tuzq/software/kafka/servers/
[root@hadoop2 servers]# ls
kafka kafka_2.11-0.9.0.1
[root@hadoop2 servers]# rm -rf kafka
[root@hadoop2 servers]# ln -s kafka_2.11-0.9.0.1 kafka
[root@hadoop2 servers]#

在hadoop2上修改配置

[root@hadoop3 servers]# cd /home/tuzq/software/kafka/servers/
[root@hadoop3 servers]# ls
kafka kafka_2.11-0.9.0.1
[root@hadoop3 servers]# rm -rf kafka
[root@hadoop3 servers]# ls
kafka_2.11-0.9.0.1
[root@hadoop3 servers]# ln -s kafka_2.11-0.9.0.1 kafka
[root@hadoop3 servers]# ls
kafka kafka_2.11-0.9.0.1
[root@hadoop3 servers]#

修改kafka的环境变量

vim /etc/profile
在文件的最底部写上:
#set kafka env
export KAFKA_HOME=/home/tuzq/software/kafka/servers/kafka
export PATH=$PATH:$KAFKA_HOME/bin

保存,然后执行:

source /etc/profile

1.3.5、再次修改配置文件(重要)

依次修改各服务器上配置文件的的broker.id,分别是0,1,2不得重复。

1.3.6、启动集群(注意在三台服务器上都要执行下面的命令)

依次在各节点上启动kafka 
cd $KAFKA_HOME 
bin/kafka-server-start.sh config/server.properties

让kafka后台运行:

[root@hadoop1 kafka]# bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
[1] 9412
[root@hadoop1 kafka]# jps
4624 DataNode
4241 DFSZKFailoverController
9475 Jps
9412 Kafka
5093 NodeManager
3981 JournalNode
4974 ResourceManager
4095 NameNode
[root@hadoop1 kafka]#

从上面可以看出有一个kafka进程 9412 Kafka

停止kafka的命令:

[root@hadoop1 kafka]# bin/kafka-server-stop.sh config/server.properties

kafka-broker配置文件

kafka-producer配置文件

kafka-consumer配置文件

Kafka集群部署 (守护进程启动)的更多相关文章

  1. 分布式消息系统之Kafka集群部署

    一.kafka简介 kafka是基于发布/订阅模式的一个分布式消息队列系统,用java语言研发,是ASF旗下的一个开源项目:类似的消息队列服务还有rabbitmq.activemq.zeromq:ka ...

  2. zookeeper集群+kafka集群 部署

    zookeeper集群 +kafka 集群部署 1.Zookeeper 概述: Zookeeper 定义 zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目 Zooke ...

  3. kafka 集群部署 多机多broker模式

    kafka 集群部署 多机多broker模式 环境IP : 172.16.1.35   zookeeper   kafka 172.16.1.36   zookeeper   kafka 172.16 ...

  4. Zookeeper+Kafka集群部署(转)

    Zookeeper+Kafka集群部署 主机规划: 10.200.3.85  Kafka+ZooKeeper 10.200.3.86  Kafka+ZooKeeper 10.200.3.87  Kaf ...

  5. 3、Kafka集群部署

    Kafka集群部署 1)解压安装包 [ip101]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/app/ 2)修改解压后的文件名称 [ip101]$ mv k ...

  6. Zookeeper+Kafka集群部署

    Zookeeper+Kafka集群部署 主机规划: 10.200.3.85  Kafka+ZooKeeper 10.200.3.86  Kafka+ZooKeeper 10.200.3.87  Kaf ...

  7. Kafka集群部署以及使用

    Kafka集群部署 部署步骤 hadoop102 hadoop103 hadoop104 zk zk zk kafka kafka kafka http://kafka.apache.org/down ...

  8. 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程

    本博文的主要内容有   kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...

  9. 基于Centos7xELK+Kafka集群部署方案

    本次集群部署使用ELK版本统一为6.8.10,kafka为2.12-2.51 均可在官网下载 elasticsearch下载地址:https://www.elastic.co/cn/downloads ...

随机推荐

  1. bedtools 的安装与使用

    1) 安装 bedtools 提供了3种安装方式 从google code 下载源代码进行安装 利用系统中的包管理工具进行安装, 比如cnetos 下的yum, ubuntu下的apt-get, ma ...

  2. c语言的fopen

    c语言fopen函数 fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 其中, “文件指针名”必须是被说明为FILE 类型的指针变量: “文件名” ...

  3. Jmeter在命令行运行技巧

    For non-interactive testing, you may choose to run JMeter without the GUI. To do so, use the followi ...

  4. 安装SQL Server 2008数据库(带完整图解)

    方法/步骤   1 双击sql server 2008的.exe安装文件,进入[SQL Server 安装中心]. 2 点击界面左侧的[安装],然后点击右侧的[全新SQL Server 独立安装或向现 ...

  5. Oracle 用户解锁

    ALTER USER hr ACCOUNT UNLOCK ALTER USER hr IDENTIFIED BY welcome

  6. resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced

    Maven在执行中报错: - Failure to transfer org.slf4j:slf4j-api:jar:1.7.24 from http://localhost:8081/nexus/c ...

  7. 2017年要学习的三个CSS新特性

    这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东西要学习.尽管CSS有很多新的特性, ...

  8. CALayer的position,anchorPoint属性 与UIView的frame 属性

    彻底理解CALayer的position,anchorPoint属性 与UIView的frame 属性 一.position,anchorPoint两者都是CALayer的属性,都是CGPoint点 ...

  9. JS 保存表单默认值 为空时自动填充默认值

    var inputArray = document.getElementsByTagName("input"); var strArray = []; ; i < input ...

  10. poj_3258 二分法

    题目大意 给定区间[0,L],在区间内给定N个数,加上区间的端点总共N+2个值.这N+2个数相邻的两个数之间有一个差值delta[i],现在可以从除去端点之外的这N个数中删除M个,使得剩余的N+2-M ...