基于kafka的分布式日志收集项目----kafka集群部署

目录

准备三台机器

依赖软件安装

配置静态ip地址

配置主机名

添加主机名和ip地址映射

关闭防火墙与selinux

部属kafka集群

下载kafka

验证文件完整性

修改配置文件

创建并启动集群

创建集群

启动集群

测试集群


准备三台机器

依赖软件安装

yum install lrzsz -y
cd /etc/yum.repos.d
mkdir repo
mv *.repo repo/  
      #将原来的老源移动到repo/文件里,系统只会识别.repo文件为源文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      #curl是一个请求命令,访问这个网站将内容移动到指定目录中
      #下载阿里云源
下载依赖软件:
  yum install epel-release -y
  yum install wget vim java-11-openjdk.x86_64  -y

配置静态ip地址

默认情况下使用dhcp服务,自动分配ip(有租赁时间,到时间会换),不方便后续使用,所以配置静态ip

修改/etc/sysconfig/network-scripts/ifcfg-ens33(ens33的数字要根据自己的网络接口调整,可以通过ip addr或者ifconfig -a查看)

vim /etc/sysconfig/network-scripts/ifcfg-ens160
#修改配置
```
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=0f3239b9-6ba7-406e-94e8-fa7b680a4d82
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.223.163 #改为静态ip                  
NETMASK=255.255.255.0
GATEWAY=192.168.223.2
DNS1=114.114.114.114

```

配置主机名

添加主机名和ip地址映射

修改/etc/hosts文件

vim /etc/hosts
    # 修改/etc/hosts文件,添加主机名和ip地址映射
  
  ```
  192.168.223.161  kafka1
  192.168.223.162  kafka2
  192.168.223.163  kafka3
  ```

关闭防火墙与selinux

iptables -F
    #清空防火墙规则
systemctl stop firewalld
    #关闭防火墙服务
systemctl disable firewalld
    #设置开机不自启

vim /etc/selinux/config
'''
SELINUX=permissive
'''
    #关闭selinux,编辑/etc/selinux/config 文件
    

selinux关于linux的安全系统,如果要更改就要加入很多规则,所以直接关掉(实际应用不建议关掉)

重启使配置生效

部属kafka集群

下载kafka

```
  cd /opt
  wget https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz
```

解压 

```
  tar xf kafka_2.13-3.6.1.tgz 
  cd kafka_2.13-3.6.1
```

验证文件完整性

哈希算法

md5sum kafka_2.13-3.6.1.tgz

修改配置文件

位于kafka目录下config/kraft/server.properties

```
  #修改节点id,每个节点唯一
  node.id=1
  
  #修改控制器投票列表
  [email protected]:9093,[email protected]:9093,[email protected]:9093
  
  #修改监听器和控制器,绑定ip。其中kafka1为主机名,可用本机ip地址代替
  listeners=PLAINTEXT://kafka1:9092,CONTROLLER://kafka1:9093
  
  # 侦听器名称、主机名和代理将向客户端公布的端口.(broker 对外暴露的地址)
  # 如果未设置,则使用"listeners"的值.
  advertised.listeners=PLAINTEXT://kafka1:9092
  ```

创建并启动集群

创建集群

```
cd   /opt/kafka_2.13-3.6.1
bin/kafka-storage.sh random-uuid >tmp_random
# 在其中一台执行,生成集群UUID命令,拿到集群UUID保存在当前tmp_random文件中
cat tmp_random
# 查看uuid
# 复制查看到的uuid

  
bin/kafka-storage.sh format -t 自己生成的集群uuid -c /opt/kafka_2.13-3.6.1/config/kraft/server.properties
# 在所有机器上执行,它会初始化存储区域,为 Kafka 集群的元数据存储和后续操作做好准备。

```

启动集群

命令行启动

```
  启动:
bin/kafka-server-start.sh -daemon /opt/kafka_2.13-3.6.1/config/kraft/server.properties
  关闭:
bin/kafka-server-stop.sh
```

 systemctl管理服务启动

## 编辑文件  /usr/lib/systemd/system/kafka.service 
```
[Unit]
Description=Apache Kafka server (KRaft mode)
Documentation=http://kafka.apache.org/documentation.html
After=network.target
[Service]
Type=forking
User=root
Group=root
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/bin/"
ExecStart=/opt/kafka_2.13-3.6.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.13-3.6.1/config/kraft/server.properties
ExecStop=/opt/kafka_2.13-3.6.1/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
```  
  #重新加载systemd配置
  systemctl daemon-reload
  
  #启动kafka服务
  systemctl  start  kafka
  
  #关闭kafka服务
  systemctl  stop  kafka

  #开机自启
  systemctl enable kafka

测试集群

# 创建topic 
bin/kafka-topics.sh --create --bootstrap-server kafka3:9092 --replication-factor 3 --partitions 3 --topic my_topic

** --replication-factor指定副本因子,--partitions指定分区数,--topic指定主题名称。

# 查看topic
 bin/kafka-topics.sh --list --bootstrap-server kafka3:9092

#创建生产者,发送消息,测试用
bin/kafka-console-producer.sh --broker-list kafka3:9092 --topic my_topic

#创建消费者,获取数据,测试用
bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic my_topic --from-beginning

消费者可以接收到生产者发的信息即为集群部署成功。 

 

你可能感兴趣的:(分布式,kafka)