docker compose部署otter-server写入clickhouse
时间: 2023-10-14 17:34:58 浏览: 235
可以使用 Docker Compose 来部署 Otter-Server 并将数据写入 ClickHouse。具体步骤如下:
1. 创建 Docker Compose 配置文件:
在任意目录下创建一个名为 `docker-compose.yml` 的文件,并添加以下内容:
```
version: '3'
services:
otter-server:
image: alibaba/otter
ports:
- "8080:8080"
- "1099:1099"
- "2088:2088"
environment:
JAVA_OPTS: "-Dfile.encoding=UTF-8 -server -Xmx2g -Xms2g -Xmn512m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/heapdump"
volumes:
- ./otter/data:/data
- ./otter/logs:/logs
command: ["/data/otter/bin/startup.sh"]
depends_on:
- clickhouse
networks:
- otter
clickhouse:
image: yandex/clickhouse-server
ports:
- "8123:8123"
volumes:
- ./clickhouse/data:/var/lib/clickhouse
- ./clickhouse/config:/etc/clickhouse-server
networks:
- otter
networks:
otter:
```
其中,`./otter/data` 和 `./otter/logs` 是宿主机器上存储 Otter-Server 数据和日志的路径,`./clickhouse/data` 和 `./clickhouse/config` 是宿主机器上存储 ClickHouse 数据和配置文件的路径。你可以自行修改路径。
2. 创建 ClickHouse 表:
在 `./clickhouse/config/users.xml` 文件中添加以下内容:
```
<profiles>
<default>
<quota>default</quota>
<max_memory_usage>5000000000</max_memory_usage>
</default>
</profiles>
<users>
<default>
<password></password>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profiles>
<default></default>
</profiles>
</default>
</users>
<quotas>
<default>
<interval>60</interval>
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
<memory>0</memory>
</default>
</quotas>
<macros>
<shard>1</shard>
</macros>
<clickhouse_remote_servers>
</clickhouse_remote_servers>
<clickhouse_dictionaries>
</clickhouse_dictionaries>
<clickhouse_table_engines>
<odbc>
<read_only>0</read_only>
<database>default</database>
<table>otter_test</table>
<connection_string>DSN=clickhouse;DATABASE=default;UID=default;PWD=</connection_string>
<data_source_name>clickhouse</data_source_name>
<odbc_driver>clickhouse-odbc</odbc_driver>
</odbc>
</clickhouse_table_engines>
```
其中,`otter_test` 是 ClickHouse 中的表名,可以自行修改。然后,执行以下命令启动 ClickHouse:
```
docker-compose up clickhouse
```
在启动完成后,可以使用以下命令进入 ClickHouse 控制台:
```
docker-compose exec clickhouse clickhouse-client
```
然后,可以使用以下命令创建表:
```
CREATE TABLE otter_test (
id UInt32,
name String,
age UInt8,
PRIMARY KEY (id)
) ENGINE = ODBC('dsn=clickhouse;database=default;table=otter_test;uid=default;pwd=');
```
3. 配置 Canal:
在 `./otter/data/conf/otter.properties` 文件中添加以下配置:
```
otter.canal.zookeeper.cluster=zookeeper:2181
```
然后,在 `./otter/data/bin/otter-admin.sh` 文件中添加以下配置:
```
set OTTER_OPTS="$OTTER_OPTS -Dotter.canal.zookeeper.cluster=zookeeper:2181"
```
4. 启动 Otter-Server:
使用以下命令启动 Otter-Server:
```
docker-compose up otter-server
```
至此,Otter-Server 就可以将数据写入 ClickHouse 中了。
阅读全文