安装kafka

windows

jdk安装

    下载:http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

安装及环境变量配置,自行百度。

zookeeper安装

下载地址:Apache ZooKeeperhttps://zookeeper.apache.org/releases.html

一、下载

1、查看历史版本

 2、选择版本

 3、下载压缩包

 二、安装

1、解压到某个目录下(路径不要出现空格)

例如:D:\ProgramFiles\zookeeper\zookeeper-3.4.12

2、修改配置文件

1)D:\ProgramFiles\zookeeper\zookeeper-3.4.12\conf\zoo_sample.cfg重命名为zoo.cfg

 2)修改dataDir=/tmp/zookeeper  为 D:/ProgramFiles/zookeeper/zookeeper-3.4.12/tmp/zookeeper

 (路径仅为示例,具体可根据需要配置;路径要么是"/"分割,要么是转义字符"\\",这样会生成正确的路径(层级,子目录))

3)Zookeeper端口(默认端口2181)

3、环境变量

1)系统变量中添加ZOOKEEPER_HOME=D:\bigdata\zookeeper-3.4.10

2)编辑系统变量中的path变量,增加%ZOOKEEPER_HOME%\bin

三、运行

打开cmd窗口,输入zkserver,运行Zookeeper

Zookeeper已经安装完成,已在2181端口运行。

kafka安装

一、下载

下载地址:Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/downloads要下载Binary downloads这个类型,不要下载源文件,这种方便使用。

 二、安装

1、解压到某个目录下

(路径不要出现空格)

例如:D:\ProgramFiles\kafka\kafka_2.11-1.1.0

2、修改配置文件

(D:\ProgramFiles\kafka\kafka_2.11-1.1.0\config\server.properties)

1)修改log.dirs=/tmp/kafka-logs 为 D:/ProgramFiles/kafka/kafka_2.11-1.1.0/tmp/kafka-logs

(路径仅为示例,具体可根据需要配置;路径要么是"/"分割,要么是转义字符"\\",这样会生成正确的路径(层级,子目录))

2)kafka会按照默认配置,在9092端口上运行,并连接zookeeper的默认端口2181。

三、运行

    请确保启动kafka服务器前,Zookeeper实例已经在运行,因为kafka的运行是需要zookeeper这种分布式应用程序协调服务。

1、进入kafka安装目录,如:D:\ProgramFiles\kafka\kafka_2.11-1.1.0

2、按下shift+鼠标右键,选择"在此处打开命令窗口",或者在地址栏输入cmd按回车键,打开命令行。

3、在命令行中输入:.\bin\windows\kafka-server-start.bat .\config\server.properties   回车。

四、操作

.bat文件是为了在window系统上执行的文件,相对应的.sh文件是linux下的批处理文件。例如:startup.bat和startup.sh。

1、创建主题

    a、使用命令行手动或者向一个不存在的topic发送(生产)消息时都会新创建一个topic 

    向一个不存在的topic发送(生产)消息时新创建的topic时,其采用为默认的topic-config配置以及server.properties中的topic的配置。

    使用命令行手动创建一个topic可以使用 –config 选项配合topic-config配置中的信息来覆盖默认配置或者使用–delete-config来恢复默认配置。

    b、创建主题(1个分区,1个副本)

    kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test0811

    kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic yqtopic1

主要参数说明

1. partitions分区数

(1). partitions :分区数,控制topic将分片成多少个log。可以显示指定,如果不指定则会使用broker(server.properties)中的num.partitions配置的数量 

(2). 虽然增加分区数可以提供kafka集群的吞吐量、但是过多的分区数或者或是单台服务器上的分区数过多,会增加不可用及延迟的风险。因为多的分区数,意味着需要打开更多的文件句柄、增加点到点的延时、增加客户端的内存消耗。 

(3). 分区数也限制了consumer的并行度,即限制了并行consumer消息的线程数不能大于分区数 

(4). 分区数也限制了producer发送消息是指定的分区。如创建topic时分区设置为1,producer发送消息时通过自定义的分区方法指定分区为2或以上的数都会出错的;这种情况可以通过alter –partitions 来增加分区数。

2. replication-factor副本

(1). replication factor 控制消息保存在几个broker(服务器)上,一般情况下等于broker的个数。 

(2). 如果没有在创建时显示指定或通过API向一个不存在的topic生产消息时会使用broker(server.properties)中的default.replication.factor配置的数量

2、查看topic属性

bin/kafka-topics.bat --zookeeper zk1:2181 --describe --topic test0811

kafka-topics.sh --describe --zookeeper localhost:2181 --topic test0811

结果说明:

第一行,列出了topic的名称,分区数(PartitionCount),副本数(ReplicationFactor)以及其他的配置(Configs) 
Leader:1 表示为做为读写的broker的编号 
Replicas:表示该topic的每个分区在那些borker中保存 
Isr:表示当前有效的broker, Isr是Replicas的子集

3、修改topic

 不能修改replication-factor,以及只能对partition个数进行增加,不能减少 

增加分区数

kafka-topics.bat --zookeeper localhost:2181 --alter --topic test0811 --partitions 3

kafka-topics.sh --alter --zookeeper node1:2181,node2:2181 --topic test0811 --partitions 6

删除Topic 

kafka-topics.sh --delete --topic test0811  --zookeeper localhost:2181 

目前删除操作在默认情况下只是打上一个删除的标记,在重新启动kafka 后才删除。

如果需要立即删除,则需要在server.properties中配置delete.topic.enable=true

4、创建生产者

kafka-console-producer.bat --broker-list localhost:9092 --topic test0811 

5、创建消费者

kafka-console-consumer.bat --zookeeper localhost:2181 --topic test0811

# 新消费者(支持0.9版本+)

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test0811 --new-consumer --from-beginning

(如果要最新的数据,可以不带--from-beginning参数即可)

附录:

kafka配置详解

kafka命令大全

Kafka集群搭建

kafka处理大文件注意事项

Kafka守护进程方式启动防止自动挂掉

linux

jdk安装

1、新建JDK目录:mkdir /opt/java

2、解压到/opt/java中:tar -zxvf jdk-8u211-linux-x64.tar.gz -C /opt/java/

3、切换到/opt/java目录,查看解压结果: cd /opt/java/

4、配置环境变量:vim /etc/profile

在文件最后添加以下内容

export JAVA_HOME=/opt/java/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

运行命令使环境变量生效:source /etc/profile

5、运行java -version 看是否生效: java -version

若出现jdk版本号,则安装并配置环境变量成功。

java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

6、采用相同方法,安装其他服务器(5台服务器) 

zookeeper安装

1、新建安装目录

mkdir /app/zookeeper

2、解压到安装目录中

tar -zxvf zookeeper-3.4.6.tar.gz -C /app/zookeeper/

3、进入/app/zookeeper下,查看是否解压成功

4、配置环境变量

vim /etc/profile

在文件最后添加以下内容

export ZK_HOME= /app/zookeeper/zookeeper-3.4.6
export PATH=${ZK_HOME}/bin:$PATH

运行命令使环境变量生效

source /etc/profile

5、修改配置文件

创建以下两个目录

mkdir data
mkdir dataLog

并且在/opt/zookeeper/data目录下创建myid文件

将5台集群分别的myid文件内容改为1,2,3,4,5

6、修改集群中的主机名称(建议)

vim /etc/sysconfig/network

将HOSTNAME=localhost.localdomain改成node01

NETWORKING=yes
HOSTNAME=node01

重启服务器,reboot,同时查询主机名:hostname

返回:node01,即成功。其他服务器同样操作。

vim /etc/hosts (不要这样修改,否则zookeeper启动失败)

7、 修改主机名与IP映射(服务器都要修改)

vim /etc/hosts

8、修改zookeeper配置文件

切换到/app/zookeeper/zookeeper-3.4.6/conf
如果没有 zoo.cfg 该文件,就复制zoo_sample.cfg文件并重命名为zoo.cfg。

cp zoo_sample.cfg zoo.cfg

修改zoo.cfg文件

vim zoo.cfg

dataDir=/app/zookeeper/data
dataLogDir=/app/zookeeper/dataLog
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
server.4=node04:2888:3888
server.5=node05:2888:3888

9、传输到其他的机器上

scp -r /app/zookeeper/ root@10.16.10.8:/app/

更改 /opt/zookeeper/data 下的myid,修改myid为主机对应值,这个不能一致

9、启动zookeeper

因为zookeeper是选举制,它的主从关系并不是像hadoop那样指定的,成功配置zookeeper之后,在每台机器上启动zookeeper。

切换到zookeeper的bin目录下(已配置环境变量的话,可以不用)

cd /app/zookeeper/zookeeper-3.4.6/bin/

启动命令

zkServer.sh start

查看状态,若出现以下错误说明防火墙没设置,或者/etc/hosts中127.0.0.1设置了主机名的问题,见上说明

JMX enabled by default
Using config: /app/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

10、开放zookeeper防火墙端口

vim /etc/sysconfig/iptables

复制22端口号的那条,修改为2888:3888,加冒号使开放一段端口号

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888:3888 -j ACCEPT

重启防火墙

service iptables restart

kafka安装

1、新建安装目录

mkdir /app/kafka

2、解压到该目录下

tar -zxvf kafka_2.11-0.10.2.0.tgz -C /app/kafka/

3、进入/app/kafka查看解压是否成功

4、配置环境变量

vim /etc/profile

末尾增加以下

export KAFKA_HOME=/app/kafka/kafka_2.11-0.10.2.0
export PATH=${KAFKA_HOME}/bin:$PATH

使环境变量生效

source /etc/profile

5、修改配置参数

vim /app/kafka/kafka_2.11-0.10.2.0/config/server.properties

broker.id=1

# Switch to enable topic deletion or not, default value is false
delete.topic.enable=true
zookeeper.connect=node1:2181,node2:2181,node3:2181,node4:2181,node5:2181
auto.create.topics.enable=true

6、修改防火墙,开放端口号

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 9092 -j ACCEPT

重启防火墙

service iptables restart

7、拷贝到其他服务器

scp -r kafka/ root@node02:/app/

修改每台上的broker.id,不能重复

8、启动kafka

切换到/app/kafka/kafka_2.11-0.10.2.0/

启动命令

bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值