docker 部署otter-server 消费rabbitmq 写入clickhouse 表名 字段映射
时间: 2023-09-13 10:06:30 浏览: 112
对于部署 Otter-Server,可以使用 Docker 镜像进行部署。具体步骤如下:
1. 下载 Otter-Server 的 Docker 镜像:
```
docker pull alibaba/otter
```
2. 创建并启动容器:
```
docker run -d --name otter-server -p 8080:8080 -p 1099:1099 -p 2088:2088 \
-e JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xmx2g -Xms2g -Xmn512m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/heapdump" \
-v /yourpath/otter/data:/data -v /yourpath/otter/logs:/logs \
alibaba/otter
```
其中,`/yourpath/otter/data` 和 `/yourpath/otter/logs` 是宿主机器上存储 Otter-Server 数据和日志的路径,可以自行修改。
3. 进入容器内部:
```
docker exec -it otter-server /bin/bash
```
4. 修改 Otter-Server 配置文件:
Otter-Server 的配置文件位于 `/data/otter/conf/otter.properties`,可以使用 `vi` 命令进行编辑。
在配置文件中,需要添加以下配置:
```
otter.amqp.addresses=amqp://guest:guest@<your-rabbitmq-host>:5672
otter.clickhouse.addresses=<your-clickhouse-host>:8123
```
其中,`<your-rabbitmq-host>` 和 `<your-clickhouse-host>` 分别为 RabbitMQ 和 ClickHouse 的地址。
5. 重启 Otter-Server:
```
/data/otter/bin/stop.sh
/data/otter/bin/startup.sh
```
至此,Otter-Server 的部署完成。
关于消费 RabbitMQ 并写入 ClickHouse 的问题,需要在 Otter-Server 中配置 Canal,具体步骤如下:
1. 在 Otter-Server 配置文件中添加 Canal 配置:
```
otter.canal.zookeeper.cluster=<your-zookeeper-host>:2181
```
其中,`<your-zookeeper-host>` 为 ZooKeeper 的地址。
2. 在 Otter-Server 中创建 Canal 实例:
使用 `otter-admin` 工具创建 Canal 实例,具体命令如下:
```
cd /data/otter/otter-admin/bin
./otter.sh create --type canal --mode memory --zoohost <your-zookeeper-host>:2181 --canalId <your-canal-id> --destination <your-destination>
```
其中,`<your-canal-id>` 和 `<your-destination>` 分别为 Canal 实例的 ID 和名称。
3. 在 Otter-Server 中配置 Canal 映射关系:
使用 `otter-admin` 工具配置 Canal 映射关系,具体命令如下:
```
cd /data/otter/otter-admin/bin
./otter.sh canal --c <your-canal-id> --s <your-rabbitmq-exchange> --d <your-clickhouse-table> --m <your-field-mapping>
```
其中,`<your-rabbitmq-exchange>` 和 `<your-clickhouse-table>` 分别为 RabbitMQ 的 Exchange 和 ClickHouse 的表名,`<your-field-mapping>` 为字段映射配置。
至此,Otter-Server 就可以消费 RabbitMQ 并将数据写入 ClickHouse 中了。
阅读全文