pinpoint3.0的完整部署,跟2.5版本差距较大,2.5版本直接运行collector和web的jar包即可达成最快使用,但是3.0这样启动会报错
按照pinpoint官网的文档,虽然可以成功部署,但是其中的弯路也比较多,现在整理一下免得后来人踩坑,也给自己留个小抄
-
jdk
本文档所使用的jdk版本为21.0.4,理论上17以上都可以用,8和11就不建议了
-
部署hbase
hbase的部署比较简单,pinpoint3.0适配的hbase版本是2.x,我这里使用的是2.6.0
不用参考hbase官网的方法,直接执行
./start-hbase.sh
等待启动成功,然后执行
./hbase shell hbase-create.hbase
这个hbase-create.hbase脚本可以在这里找到
等待脚本执行结束,没报错就科技继续了
-
部署pinot
首先是下载pinot,直接下载最高版本的即可,目前我下载的是1.1.0,下载地址直接参考官网
pinot的安装部署也很麻烦,官网的quick start也说得不是很清楚,实际上只要执行下面的命令
./pinot-admin.sh QuickStart -type batch
就可以起一个包含zookeeper,pinot controller,pinot broker,pinot server的完整服务,很神奇的是,虽然kafka是核心组件,但是这个命令不会启动kafka,kafka需要用下面的命令单独启动
./pinot-admin.sh StartKafka -zkAddress=localhost:2123/kafka -port 19092
官网上的这条命令中,zk的端口是2191,但是实际上使用QuickStart启动的zk端口是2123,所以需要修改,后面的 -port 参数是kafka的端口,后面会频繁使用
pinot虽然可以启动kafka,但是不能创建topic,要创建topic,需要额外下载并解压一个kafka,或者用其他服务器上的kafka来操作也是可以的
如果不想用pinot启动的kafka,使用额外部署的kafka也是可以的,参考kafka官网的Kafka with ZooKeeper这一步但是需要修改config/zookeeper.properties和config/server.properties文件以使用pinot启动的zookeeper,然后挨个执行
./zookeeper-server-start.sh ../config/zookeeper.properties
和
./kafka-server-start.sh ../config/server.properties
即可
-
创建topic和table
使用额外解压的kafka或者其他服务器上的kafka创建topic,
inspector-stat-agent-00 inspector-stat-app system-metric-data-type system-metric-tag system-metric-double
然后是在pinot上创建schema和table,简单点的话直接从pinot的swagger rest api里创建,这个时候pinot的服务已经正常跑起来了,直接访问 {pinot所在服务器ip}:9000 可以看到是这样的
点击左侧菜单的Swagger REST API跳转到这样的页面
往下翻,找到Table中的post /tables接口
和schema中的post /schemas接口
需要注意的是,要先创建schema,然后才能创建table
首先是pinot-inspector-stat-agent-schema和pinot-inspector-stat-agent-realtime-table,打开链接是两个json文件,直接把json内容分别复制到post /schemas和post /tables接口的body参数里面点击执行即可创建成功,后面的schema和table也是一样的操作
之后分别是pinot-inspector-stat-application-schema和pinot-inspector-stat-application-realtime-table,pinot-dataType-schema和pinot-dataType-realtime-table,pinot-double-schema和pinot-double-realtime-table,pinot-tag-schema和pinot-tag-realtime-table,pinot-uriStat-schema和pinot-uriStat-realtime-table,pinot-exceptionTrace-schema和pinot-exceptionTrace-realtime-table
创建表的时候,如果用的是其他kafka,或者通过pinot启动kafka的时候改了端口,则需要修改stream.kafka.broker.list字段为正确的kafka地址,如果用的不是pinot启动的kafka,则可能需要修改replicasPerPartition的值,如果是通过kafka的quick start启动的,这个值改成1即可
-
Redis
这个部分可以说是最离谱的,pinpoint的教程没有提到redis,但是启动的时候需要redis,目前不清楚redis有什么用,因为官网没说,也不知道哪里改端口,所以只能启动在6379端口,不需要初始化,因为官网没有
-
手动添加配置文件
正常情况下,我们启动的pinpoint应该是pinpoint-collector-starter-3.0.0-exec.jar和pinpoint-web-starter-3.0.0-exec.jar,这个时候需要分别创建两个配置文件,分别是collector-starter-application.yml
pinpoint: zookeeper: address: localhost metric: kafka: bootstrap: servers: localhost:19092 spring: pinot-datasource: pinot: jdbc-url: jdbc:pinot://localhost:9000
和
web-starter-application.yml
pinpoint: zookeeper: address: localhost spring: pinot-datasource: pinot: jdbc-url: jdbc:pinot://localhost:9000
这里的pinpoint.zookeeper.address不能有端口,zk的端口我也不知道在哪里改,所以启动pinot的时候务必确保zk运行在默认端口2123上面
以及官网上的示例里面有spring.pinot-datasource.pinot.username和spring.pinot-datasource.pinot.password两个配置项,但是quick start启动的pinot是没有用户的,所以去掉他们,有再加上
-
启动
直接启动就完事了
java -jar -Dspring.config.additional-location=collector-starter-application.yml pinpoint-collector-starter-3.0.0-exec.jar
java -jar -Dspring.config.additional-location=web-starter-application.yml pinpoint-web-starter-3.0.0-exec.jar
如果一切顺利的话,访问该主机的8080端口就能看到pinpoint的servermap页面了
标签:pinpoint,部署,pinpoint3.0,kafka,pinot,table,hbase,schema From: https://www.cnblogs.com/whiteEyeborw/p/18597787