Kafka
开源流处理平台
开发语言:Scala/Java

软件介绍

Apache Kafka是一个开源流处理软件平台,用ScalaJava编写。该项目旨在提供统一、高吞吐量、低延迟的平台,用于处理实时数据馈送。它的存储层本质上是一个大规模可扩展设计为分布式事务日志的发布/订阅消息队列。

支持的操作系统

经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Kafka服务的全部功能:

l   CentOS7.5

l   Euler 2.8

支持版本和获取方式     

l   运行kafka系统,建议最低版本是kafka-2.11-0.11.0.0

编译和测试方式

本文选用华为鲲鹏云服务ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920

类别

子项

版本

云主机配置

ECS实例类型

kc1.xlarge.4

ECS配置

4U16GB

EVS

IO(100GB)

OS

Euler OS

2.8

Kernel

4.19.36

1.      获取源代码

Apache官网提供kafka的源代码压缩包:https://kafka.apache.org/

软件各版本下载路径:https://kafka.apache.org/downloads

2.      编译环境配置

1)     执行以下命令,安装OpenJDK

yum install java-1.8.0-openjdk-devel java-1.8.0-openjdk -y

2)     执行如下命令,设置环境变量。

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.aarch64

export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

3)     下载安装Gradle并设置环境变量。

a.         执行如下命令,获取Gradle安装包。

wget -c https://downloads.gradle.org/distributions/gradle-5.4.1-bin.zip

b.         执行如下命令,解压包。

unzip gradle-5.4.1-bin.zip -d /usr/local

c.         执行如下命令,设置环境变量。

export GRADLE_HOME=/usr/local/gradle-5.4.1

export PATH=$PATH:$GRADLE_HOME/bin

4)     下载安装Scala并设置环境变量。

a.         执行如下命令,获取Scala安装包。

wget -c https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.tgz

b.         执行如下命令,解压包。

tar -zxvf scala-2.11.11.tgz -d /usr/local

c.         执行如下命令,设置环境变量。

export SCALA_HOME=/usr/local/scla-2.11.11

export PATH=$PATH:$SCALA_HOME/bin

5)     下载编译安装Gradle-Scoverage

a.         执行如下命令,获取Gradle-Scoverage安装包。

wget -c https://github.com/scoverage/gradle-scoverage/archive/3.1.3.tar.gz -O gradle-scoverage-3.1.3.tar.gz

b.         执行如下命令,解压包。

tar -zxvf gradle-scoverage-3.1.3.tar.gz

c.         依次执行如下命令,编译Gradle-Scoverage

cd gradle-scoverage-3.1.3

gradle assemble

6)     下载编译安装shadow

a.         执行如下命令,获取shadow安装包。

wget -c https://github.com/johnrengelman/shadow/archive/5.0.0.tar.gz -O shadow-5.0.0.tar.gz

b.         执行如下命令,解压包。

tar -zxvf shadow-5.0.0.tar.gz

c.         依次执行如下命令,编译Gradle-Scoverage

cd shadow-5.0.0

gradle assemble

3.      编译源代码

1)     执行如下命令,创建gradle本地仓库目录。

mkdir -p /$UserHome/gradleRepository

2)     执行如下命令,下载kafka-0.11.0.0源码并解压。

wget -c https://github.com/apache/kafka/archive/0.11.0.0.tar.gz -O kafka-0.11.0.0.tar.gz

tar -zxvf kafka-0.11.0.0.tar.gz

3)     执行如下命令,进入解压后的kafka源码目录。

cd kafka-0.11.0.0

4)     执行如下命令,修改build.gradle文件。

vim build.gradle

5)     gradle-scoverageshadow的版本修改成当前使用的版本。

dependencies {
    // For Apache Rat plugin to ignore non-Git files  
    classpath "org.ajoberstar:grgit:1.9.2"
    classpath 'com.github.ben-manes:gradle-versions-plugin:0.14.0'
    classpath 'org.scoverage:gradle-scoverage:3.1.3' 
    classpath 'com.github.jengelman.gradle.plugins:shadow:5.0.0'
  }

6)     执行如下命令,编译gradle-scoverage

gradle -g /$UserHome/gradleRepository clean

gradle -g /$UserHome/gradleRepository releaseTarGz -info

7)     执行如下命令,解压生成的二进制包。

cd /root/kafka-0.11.0.0/core/build/distributions

tar -zxvf kafka_2.11-0.11.0.0.tgz

4.      测试已完成编译的软件

1)     执行如下命令,编辑server.properties文件

cd /root/kafka-0.11.0.0/core/build/distributions/kafka_2.11-0.11.0.0/config

vim server.properties

2)     server.properties文件中增加如下信息,配置zookeeper和主机名。

kafka详细配置可以参考官网指导https://kafka.apache.org/documentation/

host.name=hostname
zookeeper.connect=hostname:2181
listeners=PLAINTEXT://:9092

3)     按“Esc”键。

4)     按“wq!”保存退出。

5)     kafka-0.11.0.0/core/build/distributions/kafka_2.11-0.11.0.0/目录,执行如下命令,启动kafka

bin/zookeeper-server-start.sh config/zookeeper.properties &

bin/kafka-server-start.sh config/server.properties &

6)     执行如下命令,检查进程启动情况。

jps

KafkaQuorumPeerMain两个进程启动成功,整个Kafka服务启动完成。

7)     基本功能简单测试。

a.         创建topic

bin/kafka-topics.sh --create --zookeeper XX.XX.XX.XX:2181 --replication-factor 1 --partitions 1 --topic test

b.         使用本次Console登录ECS(数据生产者),执行如下命令,生产数据。

bin/kafka-console-producer.sh --broker-list XX.XX.XX.XX:9092 --topic test

c.         使用另外一个Console登录ECS(数据消费者),还行如下命令,获取数据。

bin/kafka-console-consumer.sh --zookeeper XX.XX.XX.XX:2181 --topic test --from-beginning

软件下载

源码下载立即下载