Docker安装KSQL

本文将引导您完成设置Kafka集群并启动Docker环境的KSQL的步骤。完成这些步骤后,您可以开始使用KSQL来查询Kafka群集。

Docker环境准备

Docker的安装参考这篇文档。mac平台的可以参考这一篇文章。 git的安装和下载参考这里。 Java:最低版本1.8

如有不会安装的,请自行搜索相关软件的安装。

启动Kafka集群

第一步:克隆Confluent KSQL资源库。

$ git clone git@github.com:confluentinc/ksql.git

第二步:将目录更改为快速启动,并在Docker中启动KSQL快速启动。

$ cd ksql/docs/quickstart/
$ docker-compose up -d

第三步:从主机上启动容器上的KSQL CLI。

$ docker-compose exec ksql-cli ksql-cli local --bootstrap-server kafka:29092

OK,到目前位置,我们的Docker环境下的KSQL已经安装完毕了。下面我需要进一步的验证,我们的环境是否安装正确。

验证Docker下的KSQL环境

第一步:验证六个Docker容器是否已创建。

$ docker-compose ps

如果是up状态,你执行上面的命令后,应该可以看到下面的输出内容。

        Name                        Command               State                           Ports                          
-------------------------------------------------------------------------------------------------------------------------
quickstart_kafka_1                    /etc/confluent/docker/run        Up      0.0.0.0:290http://www.anbomei.com/dd15/b0d2329ed910.html92->29092/tcp, 0.0.0.0:9092->9092/tcp       
quickstart_ksql-cli_1                 perl -e while(1){ sleep 99 ...   Up                                                             
quickstart_ksql-datagen-pageviews_1   bash -c echo Waiting for K ...   Up                                                             
quickstart_ksql-dhttp://www.anbomei.com/94ee/771f3f3c832b.htmlatagen-users_1       bash -c echo Waiting for K ...   Up                                                             
quickstart_schema-registry_1          /etc/confluent/docker/run        Up      0.0.0.0:8081->8081/tcp                                 
quickstart_zookeeper_1                /etc/confluent/docker/run        Up      2181/tcp, 2888/tcp, 0.0.0.0:32181->32181/tcp, 3888/tcp

http://www.anbomei.com/1829/7470bc3e70ba.html第二步:docker-compose文件已经运行了一个数据http://www.anbomei.com/abda/11add4430746.html生成器,它预先填充两个Kafka主题pageviews和users模拟数据。下面验证数据生成器是否创建了两个Kafka主题,包括pageviews和users。

$ docker-compose exec kafka kafka-topics --zookeeper zookeeper:32181 --list

正确的输出内容如下:

_confluent-metrics
_schemas
pageviews
users

第三步:使用它kafka-console-consumer来查看每个主题的几个消息。该主题pageviews具有一个键,它是http://www.anbomei.com/ea09/15eb070b4c25.html一个模拟时间戳和一个DELIMITED格式的值http://www.anbomei.com/ab9f/8c67eccd1b39.html。主题users具有用户ID和Json格式的值的键。

$ docker-compose exec kafka kafka-console-consumer --topic pageviews --bootstrap-server kafka:29092 --from-beginning --max-messages 3 --property print.key=true

正确的输出内容如下:

1491040409254    1491040409254,User_5,Page_70
1488611895904    1488611895904,User_8,Page_76
1504052725http://www.anbomei.com/6a8f/3f948127180f.html192    1504052725192,User_8,Page_92
$ docker-compose exec kafka kafka-console-consumer --topic users --bootstrap-server kafka:29092 --from-beginning --max-messages 3 --property print.key=true

正确的输出内容如下:

http://www.anbomei.com/e889/35c1b78ec512.htmlUser_2   {"registertime":1509789307038,"gender":"FEMALE","regionid":"Region_1http://www.anbomei.com/90f4/8785b2173193.html","userid":"User_2"}
Usehttp://www.anbomei.com/18a2/1d0c0d2cbdcf.htmlr_6   {"registertime":1498248577697,"gender":"OTHER","regionid":"Region_8","userid":"User_6"}
User_8   {"registertime":1494834474504,"gender":"MALE","regionid":"Region_5","userid":"User_8"}