kafka 系列(二)安装

      本次安装基于阿里云平台。

      系统版本:

[root@izbp11qlpa7oecwpwy4cn4z ~]# uname -a 
Linux izbp11qlpa7oecwpwy4cn4z 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@izbp11qlpa7oecwpwy4cn4z ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 


     本机使用Xshell 6 连接


     参考资料 
http://kafka.apache.org/quickstart
https://stackoverflow.com/questions/50513744/apache-kafka-2-12-1-1-0-not-working-with-jdk-10-0-1/51145576

软件安装在root目录下:
jdk-10.0.1
kafka_2.11-1.1.0

1. 首先安装 JDK (截止2018.7.16最新版本为jdk-10.0.1)

wget http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz?AuthParam=1531730130_ece3ed8d3061f685f58034cb86688d5c
tar -zxvf jdk-10.0.1_linux-x64_bin.tar.gz?AuthParam=1531730130_ece3ed8d3061f685f58034cb86688d5c
yum install lrzsz -y 安装上传下载支持

添加环境变量
/etc/profile文件最前面添加 
export JAVA_HOME=/root/jdk-10.0.1
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export  PATH=${JAVA_HOME}/bin:$PATH

 

source /etc/profile 使配置不用重启即可立即生效。

创建相关目录

[root@izbp11qlpa7oecwpwy4cn4z etc]# mkdir /root/jdk-10.0.1/jre
[root@izbp11qlpa7oecwpwy4cn4z etc]# mkdir /root/jdk-10.0.1/lib
[root@izbp11qlpa7oecwpwy4cn4z etc]# mkdir /root/jdk-10.0.1/jre/lib
[root@izbp11qlpa7oecwpwy4cn4z etc]# mkdir /root/jdk-10.0.1/bin

最后执行

bin/java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)


证明JDK安装成功。

2. kafka安装

wget http://mirror.bit.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz 
tar -xzf kafka_2.11-1.1.0.tgz
cd kafka_2.11-1.1.0

3. 试运行

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

报错如下:

 [root@izbp11qlpa7oecwpwy4cn4z kafka_2.11-1.1.0]# bin/zookeeper-server-start.sh config/zookeeper.properties
/root/kafka_2.11-1.1.0/bin/kafka-run-class.sh: line 252: [[: 10 2018-04-17: syntax error in expression (error token is "2018-04-17")
[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/root/kafka_2.11-1.1.0/bin/../logs/zookeeper-gc.log instead.
Unrecognized VM option 'PrintGCDateStamps'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

原因分析:

kafka-run-class.sh文件中获取JDK版本出错。

解决:

方法1:修改kafka-run-class.sh文件,将PrintGCDateStamps相关注释

方法2:来源https://stackoverflow.com/questions/36970622/kafka-unrecognized-vm-option-printgcdatestamps

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"/\1/p')
           修改为
           JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*/\1/p')

然后 chmod +x kafka-run-class.sh 添加执行权限

3.2  bin/zookeeper-server-start.sh config/zookeeper.properties & 后台启动zookeeper

3.3  bin/kafka-server-start.sh config/server.properties & 后台启动kafka服务

3.4  创建test topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

3.5  查看topic
bin/kafka-topics.sh --list --zookeeper localhost:2181

3.6  生产者发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
>his is a message
>This is another message

3.7  消费者接收消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

3.8  多broker配置(添加(复制修改)多个server.properties,以启动多个broker)
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
修改配置文件
config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093 添加
    log.dirs=/tmp/kafka-logs-1
 
config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094  添加
    log.dirs=/tmp/kafka-logs-2

    3.9  启动新节点
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-1.properties &
               3.10  创建新topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
               3.11  获取topic信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
               3.12  发消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
              3.13  收消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

   3.14  停止broker(bin下的sh文件,看名字猜作用)

kafka_2.11-0.10.0.0/bin/kafka-server-stop.sh 停止

至此,基本按照官方的教程,配置启动完毕。

猜你喜欢

转载自blog.csdn.net/xun_jing/article/details/81108605