mirror of
https://github.com/didi/KnowStreaming.git
synced 2026-01-16 21:34:31 +08:00
Add km module kafka
This commit is contained in:
241
docs/zh/Kafka安装/Kafka云平台安装手册.md
Normal file
241
docs/zh/Kafka安装/Kafka云平台安装手册.md
Normal file
@@ -0,0 +1,241 @@
|
||||
# Kafka 云平台部署手册
|
||||
|
||||
[TOC]
|
||||
|
||||
---
|
||||
|
||||
## 1、安装包说明
|
||||
|
||||
|软件包|包名称|备注说明|
|
||||
|---|---|---|---|
|
||||
|kafka| kafka_2.12-2.5.0-d-204.tgz| kafka安装包|
|
||||
|kafka-manager| kafka-manager-2.3.0.tar| kafka-manager安装包|
|
||||
|kafka-service-discovery| kafka-sd-2.5.0-d-100.tar| kafka服务发现安装包|
|
||||
|zookeeper| zookeeper-3.4.14.tar| zk安装包|
|
||||
|
||||
## 2、安装顺序
|
||||
|
||||
1. 安装`kafka-manager`
|
||||
2. 安装`zookeeper`
|
||||
3. 安装`kafka`
|
||||
4. 安装`kafka-service-discovery`
|
||||
|
||||
---
|
||||
|
||||
### 2.1、安装kafka-manager
|
||||
|
||||
#### 2.1.1、环境要求
|
||||
|
||||
- **`java-8`**,要求预先安装`JDK8`
|
||||
|
||||
#### 2.1.2、安装步骤
|
||||
|
||||
1. 解压`kafka-manager-2.0.0.tar.gz`
|
||||
```
|
||||
$ tar -xvzf kafka-manager-2.3.0.tar.gz
|
||||
x kafka-manager/
|
||||
x kafka-manager/application.yml
|
||||
x kafka-manager/create_mysql_table.sql
|
||||
x kafka-manager/kafka-manager.jar
|
||||
$
|
||||
```
|
||||
|
||||
2. 初始化`mysql`库&表
|
||||
```
|
||||
mysql库可以任意指定,只需要和kafka-manager的配置文件里面一致即可。
|
||||
|
||||
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql
|
||||
```
|
||||
|
||||
3. 修改配置文件`application.yml`
|
||||
|
||||
```
|
||||
修改mysql配置
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: kafkamanager
|
||||
datasource:
|
||||
kafka-manager:
|
||||
jdbc-url: jdbc:mysql://{mysql_addr}:{mysql_port}/{mysql_db}?characterEncoding=UTF-8&serverTimezone=GMT%2B8
|
||||
username: {mysql_username}
|
||||
password: {mysql_password}
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
```
|
||||
|
||||
4. 启动`kafka-manager`
|
||||
```
|
||||
nohup java -jar kafka-manager.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.2、安装zookeeper
|
||||
|
||||
和网上的一些文章基本一致,可以直接百度一下,或者参看下面的说明。
|
||||
|
||||
1. 解压安装包
|
||||
```
|
||||
tar -zxvf zookeeper-3.4.14.tar.gz
|
||||
```
|
||||
|
||||
|
||||
2. 修改配置文件(先在一台节点上配置)
|
||||
```
|
||||
拷贝新的配置:
|
||||
cp conf/zoo_sample.cfg conf/zoo.cfg
|
||||
|
||||
修改配置:
|
||||
#如果没有该目录,先去创建,这里以tmp根目录为例,事先在tmp下创建好zookeeper-3.4.14/data
|
||||
dataDir=/tmp/zookeeper-3.4.14/data
|
||||
#zk节点有几个,就配置几个,从1递增,下面的示例是有3个zk节点,注意host换成节点ip
|
||||
server.1=host1:2888:3888
|
||||
server.2=host2:2888:3888
|
||||
server.3=host3:2888:3888
|
||||
```
|
||||
|
||||
3. 创建一个myid文件
|
||||
```
|
||||
在 上述dataDir=/tmp/zookeeper-3.4.14/data 目录下,创建myid文件,vi myid
|
||||
|
||||
然后将里面的内容设置为对应的id.
|
||||
|
||||
如配置文件中该主机对应的server.N的N是多少,则myid中的数值就为多少,比如当前的节点作为zk的1号节点,内容就写1
|
||||
```
|
||||
|
||||
4. 其他机器重复上述过程
|
||||
|
||||
5. 启动集群,
|
||||
```
|
||||
./zkServer.sh start
|
||||
./zkServer.sh status #查看集群状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.3、安装 Kafka
|
||||
|
||||
#### 2.3.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.3.2、安装步骤
|
||||
|
||||
1. 获取集群ID
|
||||
|
||||
```shell
|
||||
访问kafka-manager(默认账号密码: admin/admin)
|
||||
|
||||
'运维管控' -> '集群列表' -> '注册集群'
|
||||
|
||||
zookeeper地址填写zk地址(加上namespace)
|
||||
|
||||
bootstrapServers填写kafka引擎节点地址,多个用英文逗号分隔. 例如: xxx.xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
|
||||
集群类型选共享集群
|
||||
|
||||
安全协议填写如下:
|
||||
|
||||
{
|
||||
"security.protocol": "SASL_PLAINTEXT",
|
||||
"sasl.mechanism": "PLAIN",
|
||||
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"dkm_admin\" password=\"km_kMl4N8as1Kp0CCY\";"
|
||||
}
|
||||
|
||||
注册成功后,会生成集群ID(后面kafka引擎配置需要)
|
||||
|
||||
```
|
||||
|
||||
2. 初始化安装包
|
||||
|
||||
这里以 `kafka_2.12-2.5.0-d-204.tgz` 包为例。
|
||||
|
||||
```shell
|
||||
# 解压压缩包:
|
||||
tar -zxf kafka_2.12-2.5.0-d-204.tgz
|
||||
```
|
||||
|
||||
3. 配置文件
|
||||
|
||||
```shell
|
||||
# 配置数据地址
|
||||
log.dirs=将其配置为数据盘的地址。
|
||||
|
||||
# 监听地址
|
||||
listeners=PLAINTEXT://IP:9092,SASL_PLAINTEXT://IP:9093
|
||||
|
||||
# 配置zk地址
|
||||
修改zookeeper.connect,将其配置为kafka集群的zk地址(加上namespace)。
|
||||
zookeeper.connect=xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181/xxxxxxx (多个zk节点用英文逗号分隔)
|
||||
|
||||
# 修改 gateway.url
|
||||
修改gateway.url,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
|
||||
# 修改cluster.id
|
||||
修改cluster.id,将其修改为为该集群添加进kafka-manager之后的集群ID(上述集群ID)
|
||||
|
||||
# 其他配置
|
||||
依据需要进行相应的调整
|
||||
|
||||
```
|
||||
|
||||
4. 启动`kafka`
|
||||
|
||||
```
|
||||
进入/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
5. 集群模式
|
||||
|
||||
```
|
||||
多台机器,重复上述过程即可
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.4、安装 `kafka-service-discovery`
|
||||
|
||||
#### 2.4.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.4.2、安装步骤
|
||||
|
||||
1. 配置`kafka-gateway`
|
||||
|
||||
这一步比较特殊,当前没有操作界面,需要手动往`kafka-manager`的`MySQL gateway_config`表中,手动写入如下数据:
|
||||
|
||||
```
|
||||
INSERT INTO gateway_config(type, name, value, version) VALUES ('SD_CLUSTER_ID', '{clusterId}', '{bootstrapServers}', 1);
|
||||
|
||||
{clusterId}是新加集群的集群ID 例如: 1
|
||||
{bootstrapServers}是新加集群的集群服务地址(集群Broker地址) 例如: xxx:xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
version > 0 即可,建议从1开始.
|
||||
```
|
||||
|
||||
2. 解压`kafka-sd-2.5.0-d-100.tar`文件
|
||||
|
||||
```
|
||||
解压压缩包:tar -zxvf kafka-sd-2.5.0-d-100.tar
|
||||
```
|
||||
|
||||
3. 配置文件(kafka-service-discovery/config/server.prperties)修改
|
||||
|
||||
```
|
||||
修改log.dirs,将其配置为日志输出地址。
|
||||
修改gateway.address,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
```
|
||||
|
||||
4. 启动`kafka-service-discovery`
|
||||
|
||||
```
|
||||
进入kafka-service-discovery/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
283
docs/zh/Kafka安装/Kafka安装部署手册.md
Normal file
283
docs/zh/Kafka安装/Kafka安装部署手册.md
Normal file
@@ -0,0 +1,283 @@
|
||||
# Kafka 云平台部署手册
|
||||
|
||||
[TOC]
|
||||
|
||||
---
|
||||
|
||||
## 1、安装包列表
|
||||
|
||||
|软件包|包名称|备注说明|软件包md5|
|
||||
|---|---|---|---|
|
||||
|kafka| kafka_2.12-1.1.0-d-100.tgz| kafkav1.1安装包| cc78b2ab0c02f0b34faf4e967a9b5c1d|
|
||||
|
||||
|
||||
## 2、安装顺序
|
||||
|
||||
1. 安装`kafka-manager`
|
||||
2. 安装`zookeeper`
|
||||
3. 安装`kafka`
|
||||
4. 安装`kafka-service-discovery`
|
||||
|
||||
---
|
||||
|
||||
### 2.1、安装kafka-manager
|
||||
|
||||
#### 2.1.1、环境要求
|
||||
|
||||
- **`java-8`**,要求预先安装`JDK8`
|
||||
|
||||
#### 2.1.2、安装步骤
|
||||
|
||||
1. 解压`kafka-manager-2.0.0.tar.gz`
|
||||
```
|
||||
$ tar -xvzf kafka-manager-2.0.0.tar.gz
|
||||
x kafka-manager/
|
||||
x kafka-manager/application.yml
|
||||
x kafka-manager/create_mysql_table.sql
|
||||
x kafka-manager/kafka-manager-web-2.0.0-SNAPSHOT.jar
|
||||
$
|
||||
```
|
||||
|
||||
2. 初始化`mysql`库&表
|
||||
```
|
||||
mysql库可以任意指定,只需要和kafka-manager的配置文件里面一致即可。
|
||||
|
||||
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql
|
||||
```
|
||||
|
||||
3. 修改配置文件`application.yml`
|
||||
|
||||
```
|
||||
修改mysql配置
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: kafkamanager
|
||||
datasource:
|
||||
kafka-manager:
|
||||
jdbc-url: jdbc:mysql://{mysql_addr}:{mysql_port}/{mysql_db}?characterEncoding=UTF-8&serverTimezone=GMT%2B8
|
||||
username: {mysql_username}
|
||||
password: {mysql_password}
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
```
|
||||
|
||||
4. 启动`kafka-manager`
|
||||
```
|
||||
nohup java -jar kafka-manager-web-2.0.0-SNAPSHOT.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.2、安装zookeeper
|
||||
|
||||
和网上的一些文章基本一致,可以直接百度一下,或者参看下面的说明。
|
||||
|
||||
1. 解压安装包
|
||||
```
|
||||
tar -zxvf zookeeper-3.4.14.tar.gz
|
||||
```
|
||||
|
||||
|
||||
2. 修改配置文件(先在一台节点上配置)
|
||||
```
|
||||
拷贝新的配置:
|
||||
cp conf/zoo_sample.cfg conf/zoo.cfg
|
||||
|
||||
修改配置:
|
||||
#如果没有该目录,先去创建,这里以tmp根目录为例,事先在tmp下创建好zookeeper-3.4.14/data
|
||||
dataDir=/tmp/zookeeper-3.4.14/data
|
||||
#zk节点有几个,就配置几个,从1递增,下面的示例是有3个zk节点,注意host换成节点ip
|
||||
server.1=host1:2888:3888
|
||||
server.2=host2:2888:3888
|
||||
server.3=host3:2888:3888
|
||||
```
|
||||
|
||||
3. 创建一个myid文件
|
||||
```
|
||||
在 上述dataDir=/tmp/zookeeper-3.4.14/data 目录下,创建myid文件,vi myid
|
||||
|
||||
然后将里面的内容设置为对应的id.
|
||||
|
||||
如配置文件中该主机对应的server.N的N是多少,则myid中的数值就为多少,比如当前的节点作为zk的1号节点,内容就写1
|
||||
```
|
||||
|
||||
4. 其他机器重复上述过程
|
||||
|
||||
5. 启动集群,
|
||||
```
|
||||
./zkServer.sh start
|
||||
./zkServer.sh status #查看集群状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.3、安装 Kafka
|
||||
|
||||
#### 2.3.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.3.2、安装步骤
|
||||
|
||||
1. 获取集群ID
|
||||
|
||||
```shell
|
||||
访问kafka-manager(默认账号密码: admin/admin)
|
||||
|
||||
'运维管控' -> '集群列表' -> '注册集群'
|
||||
|
||||
zookeeper地址填写zk地址(加上namespace)
|
||||
|
||||
bootstrapServers填写kafka引擎节点地址,多个用英文逗号分隔. 例如: xxx.xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
|
||||
集群类型选共享集群
|
||||
|
||||
安全协议填写如下:
|
||||
|
||||
{
|
||||
"security.protocol": "SASL_PLAINTEXT",
|
||||
"sasl.mechanism": "PLAIN",
|
||||
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"kafka-admin\" password=\"diditest@bdt\";"
|
||||
}
|
||||
|
||||
注册成功后,会生成集群ID(后面kafka引擎配置需要)
|
||||
|
||||
```
|
||||
|
||||
2. 初始化安装包
|
||||
|
||||
|
||||
这里以 `kafka_2.11-1.1.1-cp2.tgz` 包为例。
|
||||
|
||||
```shell
|
||||
# 下载confluent-包并解压,最后得到如下文件
|
||||
confluent-4.1.3
|
||||
|
||||
# 解压压缩包:
|
||||
tar -zxf kafka_2.11-1.1.1-cp2.tgz
|
||||
|
||||
# 拷贝libs文件覆盖confluent-kafka的包
|
||||
cp kafka_2.11-1.1.1-cp2/libs/* confluent-4.1.3/share/java/kafka
|
||||
|
||||
# 拷贝配置等文件
|
||||
cp kafka_2.11-1.1.1-cp2/config/kafka_client_jaas.conf confluent-4.1.3/etc/kafka
|
||||
cp kafka_2.11-1.1.1-cp2/config/kafka_exmetrics.txt confluent-4.1.3/etc/kafka
|
||||
cp kafka_2.11-1.1.1-cp2/config/kafka_server_jaas.conf confluent-4.1.3/etc/kafka
|
||||
cp kafka_2.11-1.1.1-cp2/config/server.properties confluent-4.1.3/etc/kafka
|
||||
|
||||
# 备注
|
||||
confluent-4.1.3 和 kafka_2.11-1.1.1-cp2 中都有support-metrics-*包,而且版本还不一样,这块随意保留一份即可。
|
||||
|
||||
```
|
||||
|
||||
3. 配置文件
|
||||
|
||||
```shell
|
||||
# 配置数据地址
|
||||
log.dirs=将其配置为数据盘的地址。
|
||||
|
||||
# 配置zk地址
|
||||
修改zookeeper.connect,将其配置为kafka集群的zk地址(加上namespace)。
|
||||
zookeeper.connect=xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181/xxx_test_zk (多个zk节点用英文逗号分隔)
|
||||
|
||||
# 修改 gateway.url
|
||||
修改gateway.url,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
|
||||
# 修改cluster.id
|
||||
修改cluster.id,将其修改为为该集群添加进kafka-manager之后的集群ID(上述集群ID)
|
||||
|
||||
# 其他配置
|
||||
依据需要进行相应的调整
|
||||
|
||||
# 其他建议, confluent的上报metrics基本没啥用,可不开启
|
||||
confluent.support.metrics.enable=false
|
||||
confluent.support.customer.id=anonymous
|
||||
|
||||
```
|
||||
|
||||
|
||||
4. 启动文件修改
|
||||
|
||||
```shell
|
||||
|
||||
# 修改 bin/kafka-server-start 文件
|
||||
# 在KAFKA_HEAP_OPTS下面增加如下配置
|
||||
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
|
||||
export KAFKA_HEAP_OPTS="-Xmx8G -Xms8G"
|
||||
export JMX_PORT=8099
|
||||
#export KAFKA_DEBUG=debug
|
||||
#export DAEMON_MODE=true
|
||||
export KAFKA_OPTS="-Djava.security.auth.login.config=$base_dir/../etc/kafka/kafka_server_jaas.conf"
|
||||
export DEBUG_SUSPEND_FLAG="n"
|
||||
export JAVA_DEBUG_PORT="8096"
|
||||
export GC_LOG_ENABLED=true
|
||||
fi
|
||||
|
||||
# 修改 bin/kafka-run-class
|
||||
可以对比一下我们提供的包里面的bin/kafka-run-class.sh 和confluent里面的差异进行调整。
|
||||
主要是:
|
||||
KAFKA_JMX_OPTS
|
||||
DEFAULT_JAVA_DEBUG_OPTS
|
||||
KAFKA_JVM_PERFORMANCE_OPTS
|
||||
```
|
||||
|
||||
5. 启动`kafka`
|
||||
|
||||
```
|
||||
进入confluent-4.1.3/bin目录
|
||||
执行: nohup ./kafka-server-start ../etc/kafka/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
6. 集群模式
|
||||
|
||||
```
|
||||
多台机器,重复上述过程即可
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.4、安装 `kafka-service-discovery`
|
||||
|
||||
#### 2.4.1、环境要求
|
||||
|
||||
- **`java-8`**,即要求预先安装`JDK8`
|
||||
|
||||
#### 2.4.2、安装步骤
|
||||
|
||||
1. 配置`kafka-gateway`
|
||||
|
||||
这一步比较特殊,当前没有操作界面,需要手动往`kafka-manager`的`MySQL gateway_config`表中,手动写入如下数据:
|
||||
|
||||
```
|
||||
INSERT INTO gateway_config(type, name, value, version) VALUES ('SERVICE_DISCOVERY_CLUSTER_ID', '{clusterId}', '{bootstrapServers}', 1);
|
||||
|
||||
{clusterId}是新加集群的集群ID 例如: 1
|
||||
{bootstrapServers}是新加集群的集群服务地址(集群Broker地址) 例如: xxx:xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
version > 0 即可,建议从1开始.
|
||||
```
|
||||
|
||||
2. 解压`kafka-service-discovery.tar.gz`文件
|
||||
|
||||
```
|
||||
解压压缩包:tar -zxvf kafka-service-discovery.tar.gz
|
||||
```
|
||||
|
||||
3. 配置文件(kafka-service-discovery/config/server.prperties)修改
|
||||
|
||||
```
|
||||
修改log.dirs,将其配置为日志输出地址。
|
||||
修改gateway.address,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
```
|
||||
|
||||
4. 启动`kafka-service-discovery`
|
||||
|
||||
```
|
||||
进入kafka-service-discovery/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
241
docs/zh/Kafka安装/Kafka服务发现安装部署手册.md
Normal file
241
docs/zh/Kafka安装/Kafka服务发现安装部署手册.md
Normal file
@@ -0,0 +1,241 @@
|
||||
# Kafka 云平台部署手册
|
||||
|
||||
[TOC]
|
||||
|
||||
---
|
||||
|
||||
## 1、安装包说明
|
||||
|
||||
|软件包|包名称|备注说明|
|
||||
|---|---|---|---|
|
||||
|kafka| kafka_2.12-2.5.0-d-204.tgz| kafka安装包|
|
||||
|kafka-manager| kafka-manager-2.3.0.tar| kafka-manager安装包|
|
||||
|kafka-service-discovery| kafka-sd-2.5.0-d-100.tar| kafka服务发现安装包|
|
||||
|zookeeper| zookeeper-3.4.14.tar| zk安装包|
|
||||
|
||||
## 2、安装顺序
|
||||
|
||||
1. 安装`kafka-manager`
|
||||
2. 安装`zookeeper`
|
||||
3. 安装`kafka`
|
||||
4. 安装`kafka-service-discovery`
|
||||
|
||||
---
|
||||
|
||||
### 2.1、安装kafka-manager
|
||||
|
||||
#### 2.1.1、环境要求
|
||||
|
||||
- **`java-8`**,要求预先安装`JDK8`
|
||||
|
||||
#### 2.1.2、安装步骤
|
||||
|
||||
1. 解压`kafka-manager-2.0.0.tar.gz`
|
||||
```
|
||||
$ tar -xvzf kafka-manager-2.3.0.tar.gz
|
||||
x kafka-manager/
|
||||
x kafka-manager/application.yml
|
||||
x kafka-manager/create_mysql_table.sql
|
||||
x kafka-manager/kafka-manager.jar
|
||||
$
|
||||
```
|
||||
|
||||
2. 初始化`mysql`库&表
|
||||
```
|
||||
mysql库可以任意指定,只需要和kafka-manager的配置文件里面一致即可。
|
||||
|
||||
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql
|
||||
```
|
||||
|
||||
3. 修改配置文件`application.yml`
|
||||
|
||||
```
|
||||
修改mysql配置
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: kafkamanager
|
||||
datasource:
|
||||
kafka-manager:
|
||||
jdbc-url: jdbc:mysql://{mysql_addr}:{mysql_port}/{mysql_db}?characterEncoding=UTF-8&serverTimezone=GMT%2B8
|
||||
username: {mysql_username}
|
||||
password: {mysql_password}
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
```
|
||||
|
||||
4. 启动`kafka-manager`
|
||||
```
|
||||
nohup java -jar kafka-manager.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.2、安装zookeeper
|
||||
|
||||
和网上的一些文章基本一致,可以直接百度一下,或者参看下面的说明。
|
||||
|
||||
1. 解压安装包
|
||||
```
|
||||
tar -zxvf zookeeper-3.4.14.tar.gz
|
||||
```
|
||||
|
||||
|
||||
2. 修改配置文件(先在一台节点上配置)
|
||||
```
|
||||
拷贝新的配置:
|
||||
cp conf/zoo_sample.cfg conf/zoo.cfg
|
||||
|
||||
修改配置:
|
||||
#如果没有该目录,先去创建,这里以tmp根目录为例,事先在tmp下创建好zookeeper-3.4.14/data
|
||||
dataDir=/tmp/zookeeper-3.4.14/data
|
||||
#zk节点有几个,就配置几个,从1递增,下面的示例是有3个zk节点,注意host换成节点ip
|
||||
server.1=host1:2888:3888
|
||||
server.2=host2:2888:3888
|
||||
server.3=host3:2888:3888
|
||||
```
|
||||
|
||||
3. 创建一个myid文件
|
||||
```
|
||||
在 上述dataDir=/tmp/zookeeper-3.4.14/data 目录下,创建myid文件,vi myid
|
||||
|
||||
然后将里面的内容设置为对应的id.
|
||||
|
||||
如配置文件中该主机对应的server.N的N是多少,则myid中的数值就为多少,比如当前的节点作为zk的1号节点,内容就写1
|
||||
```
|
||||
|
||||
4. 其他机器重复上述过程
|
||||
|
||||
5. 启动集群,
|
||||
```
|
||||
./zkServer.sh start
|
||||
./zkServer.sh status #查看集群状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.3、安装 Kafka
|
||||
|
||||
#### 2.3.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.3.2、安装步骤
|
||||
|
||||
1. 获取集群ID
|
||||
|
||||
```shell
|
||||
访问kafka-manager(默认账号密码: admin/admin)
|
||||
|
||||
'运维管控' -> '集群列表' -> '注册集群'
|
||||
|
||||
zookeeper地址填写zk地址(加上namespace)
|
||||
|
||||
bootstrapServers填写kafka引擎节点地址,多个用英文逗号分隔. 例如: xxx.xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
|
||||
集群类型选共享集群
|
||||
|
||||
安全协议填写如下:
|
||||
|
||||
{
|
||||
"security.protocol": "SASL_PLAINTEXT",
|
||||
"sasl.mechanism": "PLAIN",
|
||||
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"dkm_admin\" password=\"km_kMl4N8as1Kp0CCY\";"
|
||||
}
|
||||
|
||||
注册成功后,会生成集群ID(后面kafka引擎配置需要)
|
||||
|
||||
```
|
||||
|
||||
2. 初始化安装包
|
||||
|
||||
这里以 `kafka_2.12-2.5.0-d-204.tgz` 包为例。
|
||||
|
||||
```shell
|
||||
# 解压压缩包:
|
||||
tar -zxf kafka_2.12-2.5.0-d-204.tgz
|
||||
```
|
||||
|
||||
3. 配置文件
|
||||
|
||||
```shell
|
||||
# 配置数据地址
|
||||
log.dirs=将其配置为数据盘的地址。
|
||||
|
||||
# 监听地址
|
||||
listeners=PLAINTEXT://IP:9092,SASL_PLAINTEXT://IP:9093
|
||||
|
||||
# 配置zk地址
|
||||
修改zookeeper.connect,将其配置为kafka集群的zk地址(加上namespace)。
|
||||
zookeeper.connect=xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181/xxxxxxx (多个zk节点用英文逗号分隔)
|
||||
|
||||
# 修改 gateway.url
|
||||
修改gateway.url,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
|
||||
# 修改cluster.id
|
||||
修改cluster.id,将其修改为为该集群添加进kafka-manager之后的集群ID(上述集群ID)
|
||||
|
||||
# 其他配置
|
||||
依据需要进行相应的调整
|
||||
|
||||
```
|
||||
|
||||
4. 启动`kafka`
|
||||
|
||||
```
|
||||
进入/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
5. 集群模式
|
||||
|
||||
```
|
||||
多台机器,重复上述过程即可
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.4、安装 `kafka-service-discovery`
|
||||
|
||||
#### 2.4.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.4.2、安装步骤
|
||||
|
||||
1. 配置`kafka-gateway`
|
||||
|
||||
这一步比较特殊,当前没有操作界面,需要手动往`kafka-manager`的`MySQL gateway_config`表中,手动写入如下数据:
|
||||
|
||||
```
|
||||
INSERT INTO gateway_config(type, name, value, version) VALUES ('SD_CLUSTER_ID', '{clusterId}', '{bootstrapServers}', 1);
|
||||
|
||||
{clusterId}是新加集群的集群ID 例如: 1
|
||||
{bootstrapServers}是新加集群的集群服务地址(集群Broker地址) 例如: xxx:xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
version > 0 即可,建议从1开始.
|
||||
```
|
||||
|
||||
2. 解压`kafka-sd-2.5.0-d-100.tar`文件
|
||||
|
||||
```
|
||||
解压压缩包:tar -zxvf kafka-sd-2.5.0-d-100.tar
|
||||
```
|
||||
|
||||
3. 配置文件(kafka-service-discovery/config/server.prperties)修改
|
||||
|
||||
```
|
||||
修改log.dirs,将其配置为日志输出地址。
|
||||
修改gateway.address,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
```
|
||||
|
||||
4. 启动`kafka-service-discovery`
|
||||
|
||||
```
|
||||
进入kafka-service-discovery/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
241
docs/zh/Kafka安装/LogIKM安装部署手册.md
Normal file
241
docs/zh/Kafka安装/LogIKM安装部署手册.md
Normal file
@@ -0,0 +1,241 @@
|
||||
# 滴滴LogIKM安装部署手册
|
||||
|
||||
[TOC]
|
||||
|
||||
---
|
||||
|
||||
## 1、安装包说明
|
||||
|
||||
|软件包|包名称|备注说明|
|
||||
|---|---|---|---|
|
||||
|kafka| kafka_2.12-2.5.0-d-204.tgz| kafka安装包|
|
||||
|kafka-manager| kafka-manager-2.3.0.tar| kafka-manager安装包|
|
||||
|kafka-service-discovery| kafka-sd-2.5.0-d-100.tar| kafka服务发现安装包|
|
||||
|zookeeper| zookeeper-3.4.14.tar| zk安装包|
|
||||
|
||||
## 2、安装顺序
|
||||
|
||||
1. 安装`kafka-manager`
|
||||
2. 安装`zookeeper`
|
||||
3. 安装`kafka`
|
||||
4. 安装`kafka-service-discovery`
|
||||
|
||||
---
|
||||
|
||||
### 2.1、安装kafka-manager
|
||||
|
||||
#### 2.1.1、环境要求
|
||||
|
||||
- **`java-8`**,要求预先安装`JDK8`
|
||||
|
||||
#### 2.1.2、安装步骤
|
||||
|
||||
1. 解压`kafka-manager-2.0.0.tar.gz`
|
||||
```
|
||||
$ tar -xvzf kafka-manager-2.3.0.tar.gz
|
||||
x kafka-manager/
|
||||
x kafka-manager/application.yml
|
||||
x kafka-manager/create_mysql_table.sql
|
||||
x kafka-manager/kafka-manager.jar
|
||||
$
|
||||
```
|
||||
|
||||
2. 初始化`mysql`库&表
|
||||
```
|
||||
mysql库可以任意指定,只需要和kafka-manager的配置文件里面一致即可。
|
||||
|
||||
mysql -uXXXX -pXXX -h XXX.XXX.XXX.XXX -PXXXX < ./create_mysql_table.sql
|
||||
```
|
||||
|
||||
3. 修改配置文件`application.yml`
|
||||
|
||||
```
|
||||
修改mysql配置
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: kafkamanager
|
||||
datasource:
|
||||
kafka-manager:
|
||||
jdbc-url: jdbc:mysql://{mysql_addr}:{mysql_port}/{mysql_db}?characterEncoding=UTF-8&serverTimezone=GMT%2B8
|
||||
username: {mysql_username}
|
||||
password: {mysql_password}
|
||||
driver-class-name: com.mysql.jdbc.Driver
|
||||
```
|
||||
|
||||
4. 启动`kafka-manager`
|
||||
```
|
||||
nohup java -jar kafka-manager.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.2、安装zookeeper
|
||||
|
||||
和网上的一些文章基本一致,可以直接百度一下,或者参看下面的说明。
|
||||
|
||||
1. 解压安装包
|
||||
```
|
||||
tar -zxvf zookeeper-3.4.14.tar.gz
|
||||
```
|
||||
|
||||
|
||||
2. 修改配置文件(先在一台节点上配置)
|
||||
```
|
||||
拷贝新的配置:
|
||||
cp conf/zoo_sample.cfg conf/zoo.cfg
|
||||
|
||||
修改配置:
|
||||
#如果没有该目录,先去创建,这里以tmp根目录为例,事先在tmp下创建好zookeeper-3.4.14/data
|
||||
dataDir=/tmp/zookeeper-3.4.14/data
|
||||
#zk节点有几个,就配置几个,从1递增,下面的示例是有3个zk节点,注意host换成节点ip
|
||||
server.1=host1:2888:3888
|
||||
server.2=host2:2888:3888
|
||||
server.3=host3:2888:3888
|
||||
```
|
||||
|
||||
3. 创建一个myid文件
|
||||
```
|
||||
在 上述dataDir=/tmp/zookeeper-3.4.14/data 目录下,创建myid文件,vi myid
|
||||
|
||||
然后将里面的内容设置为对应的id.
|
||||
|
||||
如配置文件中该主机对应的server.N的N是多少,则myid中的数值就为多少,比如当前的节点作为zk的1号节点,内容就写1
|
||||
```
|
||||
|
||||
4. 其他机器重复上述过程
|
||||
|
||||
5. 启动集群,
|
||||
```
|
||||
./zkServer.sh start
|
||||
./zkServer.sh status #查看集群状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.3、安装 Kafka
|
||||
|
||||
#### 2.3.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.3.2、安装步骤
|
||||
|
||||
1. 获取集群ID
|
||||
|
||||
```shell
|
||||
访问kafka-manager(默认账号密码: admin/admin)
|
||||
|
||||
'运维管控' -> '集群列表' -> '注册集群'
|
||||
|
||||
zookeeper地址填写zk地址(加上namespace)
|
||||
|
||||
bootstrapServers填写kafka引擎节点地址,多个用英文逗号分隔. 例如: xxx.xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
|
||||
集群类型选共享集群
|
||||
|
||||
安全协议填写如下:
|
||||
|
||||
{
|
||||
"security.protocol": "SASL_PLAINTEXT",
|
||||
"sasl.mechanism": "PLAIN",
|
||||
"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"dkm_admin\" password=\"km_kMl4N8as1Kp0CCY\";"
|
||||
}
|
||||
|
||||
注册成功后,会生成集群ID(后面kafka引擎配置需要)
|
||||
|
||||
```
|
||||
|
||||
2. 初始化安装包
|
||||
|
||||
这里以 `kafka_2.12-2.5.0-d-204.tgz` 包为例。
|
||||
|
||||
```shell
|
||||
# 解压压缩包:
|
||||
tar -zxf kafka_2.12-2.5.0-d-204.tgz
|
||||
```
|
||||
|
||||
3. 配置文件
|
||||
|
||||
```shell
|
||||
# 配置数据地址
|
||||
log.dirs=将其配置为数据盘的地址。
|
||||
|
||||
# 监听地址
|
||||
listeners=PLAINTEXT://IP:9092,SASL_PLAINTEXT://IP:9093
|
||||
|
||||
# 配置zk地址
|
||||
修改zookeeper.connect,将其配置为kafka集群的zk地址(加上namespace)。
|
||||
zookeeper.connect=xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181/xxxxxxx (多个zk节点用英文逗号分隔)
|
||||
|
||||
# 修改 gateway.url
|
||||
修改gateway.url,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
|
||||
# 修改cluster.id
|
||||
修改cluster.id,将其修改为为该集群添加进kafka-manager之后的集群ID(上述集群ID)
|
||||
|
||||
# 其他配置
|
||||
依据需要进行相应的调整
|
||||
|
||||
```
|
||||
|
||||
4. 启动`kafka`
|
||||
|
||||
```
|
||||
进入/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
5. 集群模式
|
||||
|
||||
```
|
||||
多台机器,重复上述过程即可
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2.4、安装 `kafka-service-discovery`
|
||||
|
||||
#### 2.4.1、环境要求
|
||||
|
||||
- **`java-11`**,即要求预先安装`JDK11`
|
||||
|
||||
#### 2.4.2、安装步骤
|
||||
|
||||
1. 配置`kafka-gateway`
|
||||
|
||||
这一步比较特殊,当前没有操作界面,需要手动往`kafka-manager`的`MySQL gateway_config`表中,手动写入如下数据:
|
||||
|
||||
```
|
||||
INSERT INTO gateway_config(type, name, value, version) VALUES ('SERVICE_DISCOVERY_CLUSTER_ID', '{clusterId}', '{bootstrapServers}', 1);
|
||||
|
||||
{clusterId}是新加集群的集群ID 例如: 1
|
||||
{bootstrapServers}是新加集群的集群服务地址(集群Broker地址) 例如: xxx:xxx.xxx.xxx:9093,xxx.xxx.xxx.xxx:9093
|
||||
version > 0 即可,建议从1开始.
|
||||
```
|
||||
|
||||
2. 解压`kafka-sd-2.5.0-d-100.tar`文件
|
||||
|
||||
```
|
||||
解压压缩包:tar -zxvf kafka-sd-2.5.0-d-100.tar
|
||||
```
|
||||
|
||||
3. 配置文件(kafka-service-discovery/config/server.prperties)修改
|
||||
|
||||
```
|
||||
修改log.dirs,将其配置为日志输出地址。
|
||||
修改gateway.address,将其配置为为kafka-manager的地址。例如:http://127.0.0.1:8080/gateway
|
||||
如果不清楚kafka-manager的地址,可以访问swagger来查看,例如:http://127.0.0.1:8080/swagger-ui.html
|
||||
查看【GATEWAY-服务发现相关接口(REST)】,请求地址里/api的前缀即为kafka-manager的应用根前缀。
|
||||
例如/gateway/api/xxxx
|
||||
```
|
||||
|
||||
4. 启动`kafka-service-discovery`
|
||||
|
||||
```
|
||||
进入kafka-service-discovery/bin目录
|
||||
执行: nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
```
|
||||
117
docs/zh/Kafka安装/Zookeeper安装部署手册.md
Normal file
117
docs/zh/Kafka安装/Zookeeper安装部署手册.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# Zookeeper安装部署手册
|
||||
|
||||
[TOC]
|
||||
|
||||
## 1、前言
|
||||
|
||||
假设我们要部署三台ZK,机器IP分别为IP1、IP2、IP3。
|
||||
|
||||
如果部署五台的时候,过程也类似。
|
||||
|
||||
```bash
|
||||
# 若要部署zk集群和kafka集群,最好做IP映射
|
||||
vim /etc/hosts
|
||||
# 1. 注释掉含有127.0.0.1的行
|
||||
# 2. 文件最下面写入以下内容(10.190.x.x表示每个服务器具体IP,IP1、IP2、IP3表示机器hostname)
|
||||
10.190.x.x IP1
|
||||
10.190.x.x IP2
|
||||
10.190.x.x IP3
|
||||
|
||||
# 测试
|
||||
ping IP2
|
||||
```
|
||||
|
||||
|
||||
## 2、部署
|
||||
|
||||
**步骤一:环境初始化**
|
||||
|
||||
- 安装JDK-11,这块比较通用,不解释。
|
||||
- POC或测试的时候,建议在/home/kafka目录下进行安装,以使得kafka相关的组件都在一块。
|
||||
|
||||
**步骤二:解压安装包**
|
||||
|
||||
```bash
|
||||
|
||||
cd /home/kafka
|
||||
|
||||
tar xvzf zookeeper-3.4.14.tar.gz
|
||||
```
|
||||
|
||||
**步骤三:创建数据目录**
|
||||
|
||||
```bash
|
||||
# 创建数据目录
|
||||
mkdir /home/kafka/zookeeper-data
|
||||
|
||||
# 创建myid文件
|
||||
touch /home/kafka/zookeeper-data/myid
|
||||
|
||||
# 数据目录这里写入ZK的ID,如果是第一台机器则这里写1,第二台写2
|
||||
echo "1" > /home/kafka/zookeeper-data/myid
|
||||
|
||||
# 查看myid里面的数据,下面一行那个1是输出的数据
|
||||
cat /home/kafka/zookeeper-data/myid
|
||||
1
|
||||
```
|
||||
|
||||
**步骤四:修改ZK配置**
|
||||
|
||||
```bash
|
||||
# 进入配置文件
|
||||
cd zookeeper-3.4.14/conf
|
||||
cp zoo_sample.cfg zoo.cfg
|
||||
|
||||
|
||||
# 修改zoo.cfg这个配置文件
|
||||
|
||||
# 修改dataDir的配置,将其设置为zk的数据地址,比如
|
||||
dataDir=/home/kafka/zookeeper-data
|
||||
|
||||
# 增加ZK集群之间的交互配置。
|
||||
# 这里的server.1后面的1,必须要和myid中的输入数字对应上。
|
||||
# 这里是安装三台ZK的情况,如果是安装五台,那么情况类似。
|
||||
server.1=IP1:2888:3888
|
||||
server.2=IP2:2888:3888
|
||||
server.3=IP3:2888:3888
|
||||
```
|
||||
|
||||
**步骤五:启动ZK及检查**
|
||||
|
||||
```bash
|
||||
# 进入bin目录
|
||||
cd /home/kafka/zookeeper-3.4.14/bin
|
||||
|
||||
# 启动命令
|
||||
./zkServer.sh start
|
||||
|
||||
# 停止命令
|
||||
./zkServer.sh stop
|
||||
|
||||
# 查看状态命令
|
||||
./zkServer.sh status
|
||||
|
||||
ZooKeeper JMX enabled by default
|
||||
Using config: /home/kafka/zookeeper-3.4.14/bin/../conf/zoo.cfg
|
||||
Mode: follower
|
||||
|
||||
# 部署三台的话,只要三台里面有两台follower,一台leader,那么部署基本就成功了。
|
||||
|
||||
```
|
||||
|
||||
**步骤六:集群部署**
|
||||
|
||||
重复上面的步骤一到步骤五,在另外两台进行部署即可完成最终的部署。
|
||||
|
||||
部署时,注意myid的内容。
|
||||
|
||||
## 3、历史安装问题记录
|
||||
|
||||
### 3.1、防火墙问题
|
||||
|
||||
在安装的过程中,我们发现zk的状态一直是异常的,查看日志发现当前的zk和其他机器连接失败,后面关闭防火墙之后问题就解决了(注意容器可能没有防火墙服务)。
|
||||
|
||||
### 3.2、启动顺序问题
|
||||
第一台服务器上的zk启动后,./zkServer.sh status查看状态是无法连接服务,cat zookeeper.out 发现是无法连接其他主机。
|
||||
原因:启动的时候是分开启动的,如果是三台服务器,第一台启动连接不上其他两台。
|
||||
解决方法:启动其他一台或者两台后,在第一台上./zkServer.sh restart重新启动就好了
|
||||
173
docs/zh/Kafka安装/社区Kafka安装部署手册.md
Normal file
173
docs/zh/Kafka安装/社区Kafka安装部署手册.md
Normal file
@@ -0,0 +1,173 @@
|
||||
# 社区Kafka部署手册
|
||||
|
||||
[TOC]
|
||||
|
||||
## 1、前言
|
||||
|
||||
假设我们要部署三台Kafka,机器IP分别为IP1、IP2、IP3。
|
||||
|
||||
如果部署五台的时候,过程也类似。
|
||||
|
||||
|
||||
## 2、部署
|
||||
|
||||
**步骤一:环境初始化**
|
||||
|
||||
- 安装JDK-11,这块比较通用,不解释。
|
||||
- **安装ZK,这块可以看ZK部署文档**。
|
||||
- POC或测试的时候,建议在/home/kafka目录下进行安装,以使得kafka相关的组件都在一块。
|
||||
|
||||
**步骤二:解压安装包**
|
||||
|
||||
```bash
|
||||
|
||||
cd /home/kafka
|
||||
|
||||
tar xvzf kafka_2.12-2.5.1.tgz
|
||||
```
|
||||
|
||||
**步骤三:创建数据目录**
|
||||
|
||||
```bash
|
||||
# 创建数据目录
|
||||
mkdir /home/kafka/kafka-data
|
||||
```
|
||||
|
||||
**步骤四:修改Kafka配置**
|
||||
|
||||
```bash
|
||||
# 进入配置文件
|
||||
cd kafka_2.12-2.5.1/config
|
||||
|
||||
# 修改server.properties这个配置文件
|
||||
|
||||
broker.id=1 # 第一台机器设置为1,第二台设置为2,依次类推
|
||||
delete.topic.enable=true # 允许删除Topic
|
||||
auto.create.topics.enable=true # 允许自动创建Topic,如果没有部署Kafka管控平台,那么建议开启Topic的自动创建以省略单独手动创建Topic的麻烦过程
|
||||
|
||||
listeners=PLAINTEXT://IP1:9092 # 该机器的服务地址
|
||||
|
||||
log.dirs=/home/kafka/kafka-data # 数据目录,可自定义修改
|
||||
|
||||
# 如果开启了Topic自动创建,同时机器>=3台,那么分区数建议默认3个,副本建议2个,以保证可靠性
|
||||
num.partitions=3
|
||||
default.replication.factor=2
|
||||
|
||||
zookeeper.connect=ZK_IP1:2181,ZK_IP2:2181,ZK_IP3:2181/apache_kafka_2_5_1 #这块是配置的ZK地址,最后的apache_kafka_2_5_1可以随意自定义,也可以就是apache_kafka_2_5_1
|
||||
|
||||
|
||||
```
|
||||
|
||||
**步骤五:修改启动脚本**
|
||||
|
||||
```bash
|
||||
# cd /home/kafka/kafka_2.12-2.5.1/bin
|
||||
# 修改kafka-server-start.sh 文件内容为
|
||||
|
||||
#!/bin/bash
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
if [ $# -lt 1 ];
|
||||
then
|
||||
echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
|
||||
exit 1
|
||||
fi
|
||||
base_dir=$(dirname $0)
|
||||
|
||||
if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
|
||||
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
|
||||
fi
|
||||
|
||||
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
|
||||
export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
|
||||
export JMX_PORT=6099
|
||||
#export KAFKA_DEBUG=debug
|
||||
#export DAEMON_MODE=true
|
||||
export DEBUG_SUSPEND_FLAG="n"
|
||||
export JAVA_DEBUG_PORT="8096"
|
||||
export GC_LOG_ENABLED=true
|
||||
fi
|
||||
|
||||
EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}
|
||||
|
||||
COMMAND=$1
|
||||
case $COMMAND in
|
||||
-daemon)
|
||||
EXTRA_ARGS="-daemon "$EXTRA_ARGS
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
|
||||
```
|
||||
|
||||
|
||||
|
||||
再将kafka-run-class.sh文件中的JMX相关配置进行修改,具体修改位置如下:
|
||||
|
||||
```bash
|
||||
# JMX settings
|
||||
if [ -z "$KAFKA_JMX_OPTS" ]; then
|
||||
KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
|
||||
fi
|
||||
|
||||
# JMX port to use
|
||||
if [ $JMX_PORT ]; then
|
||||
KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
|
||||
fi
|
||||
|
||||
```
|
||||
|
||||
|
||||
**步骤六:启动Kafka**
|
||||
|
||||
```bash
|
||||
# 启动命令,在bin目录下执行
|
||||
nohup ./kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
|
||||
|
||||
# 检查是否正常启动,通过检查../logs/server.log里面是否有started日志,如果有的话,那么就启动成功了。
|
||||
```
|
||||
|
||||
|
||||
**步骤七:集群部署**
|
||||
|
||||
重复上面的步骤一到步骤六,在另外两台进行部署即可完成最终的部署。
|
||||
|
||||
|
||||
## 3、验证
|
||||
|
||||
生产测试命令
|
||||
```
|
||||
./kafka-console-producer.sh --bootstrap-server IP1:9092,IP2:9092,IP3:9092 --topic logi_kafka_test
|
||||
```
|
||||
|
||||
消费测试命令
|
||||
```
|
||||
./kafka-console-consumer.sh --bootstrap-server IP1:9092,IP2:9092,IP3:9092 --topic logi_kafka_test --group logi_kafka_consume_test --property enable.auto.commit=true
|
||||
```
|
||||
|
||||
|
||||
|
||||
以上命令都是在kafka的bin目录下执行,可以在生产的终端输入一串数据,在消费终端可以看到时就表示搭建完成了。
|
||||
|
||||
|
||||
## 4、历史安装问题记录
|
||||
|
||||
### 4.1、防火墙问题
|
||||
|
||||
在安装的过程中,我们发现zk的状态一直是异常的,查看日志发现当前的zk和其他机器连接失败,后面关闭防火墙之后问题就解决了。
|
||||
Reference in New Issue
Block a user