pulsar-2:生产环境部署pulsar-presto并使用

2021-11-10 09:42:03 浏览数 (1)

前置阅读:

pulsar-1:docker部署pulsar多节点集群

(1).为什么使用pulsar-presto

(2).docker部署pulsar-presto

(3).docker部署pulsar-sql

(4).使用pulsar-presto/pulsar-sql查询pulsar

(1).为什么使用pulsar-presto

什么是presto:

但对于pulsar在我们的业务定位来说,我只是想寻找/提供一种TB级消息存储规模下定位问题/简单使用的手段,不需要像图中这样兴师动众。

需求是:先有。

(2).docker部署pulsar-presto

mkdir -p /app/3rd/pulsar-presto/conf/presto/catalog

cp https://github.com/apache/pulsar/blob/master/conf/presto/catalog/pulsar.properties /app/3rd/pulsar-presto/conf/presto/catalog

修改pulsar.properties:

#the url of Pulsar broker service

#如果多个broker,用,分隔,broker的8080端口提供http服务:

pulsar.broker-service-url=http://10.0.36.69:8080,http://10.0.37.216:8080,http://10.0.39.216:8080

# the url of Pulsar broker web service

pulsar.web-service-url=http://10.0.36.69:8080,http://10.0.37.216:8080,http://10.0.39.216:8080

#URI of Zookeeper cluster

#如果多个zk,用,分隔

pulsar.zookeeper-uri=10.0.36.69:2181,10.0.37.216:2181,10.0.39.216:2181

docker run -it -d -p 8081:8081 -v /app/3rd/pulsar-presto/conf/presto/catalog/pulsar.properties:/pulsar/conf/presto/catalog/pulsar.properties --name sql-worker -d -it --restart=always apachepulsar/pulsar-all:2.8.0 /pulsar/bin/pulsar sql-worker run

启动sql-worker有可能会遇到问题:

/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "container init exited prematurely".

解决方式:

1.卸载旧版本 docker

yum remove docker docker-common docker-selinux dockesr-engine -y

2.升级系统软件

yum upgrade -y

3.安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4.添加软件源信息

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.更新并安装 docker-ce

yum makecache fast yum install docker-ce -y

6.启动服务

systemctl daemon-reload systemctl restart docker

访问pulsar-sql的web:htttp://ip:8081

默认密码是admin

登陆后:(登陆很慢)

显示当前的运行情况,可以看到这是一个test版本。

(3).docker部署pulsar-sql

mkdir -p /app/3rd/pulsar-sql/bin

cp https://github.com/apache/pulsar/blob/master/bin/pulsar /app/3rd/pulsar-sql/bin

修改357行:将ip改为(1)中的pulsar-presto(sql-worker)所在机器的ip

exec JAVA -cp "

docker run --name pulsar-sql -d -it --restart=always -v /app/3rd/pulsar-sql/bin/pulsar:/pulsar/bin/pulsar apachepulsar/pulsar-all:2.8.0 /pulsar/bin/pulsar sql

(4).使用pulsar-presto/pulsar-sql查询pulsar

进入pulsar-sql容器使用:

docker exec -it c84a7afbd097 /bin/sh

进入presto命令行:

/pulsar/bin/pulsar sql

或者直接执行:

docker exec -it c84a7afbd097/pulsar/bin/pulsar sql

简单查询一下:某个topic的消息

select * from "pulsar"."tenant/namespace/"."delete_cache";

select * from "pulsar"."tenant/namespace/"."delete_cache" limit 1;

"pulsar"是catalog,必须指定。

在pulsar-presto的web界面可以看到刚才的执行情况:

可以看出pulsar-presto的web还很初级,完善后应该会很强大,持续关注。

0 人点赞