利用docker 搭建clickhouse+jdbc-bridge学习环境

2023-11-02 16:17:28 浏览数 (3)

本机环境 :win11 32 内存

1,下载 docker 按提示安装(WSL)

https://docs.docker.com/desktop/install/windows-install/

安装完docker后,可进入windows命令行

2,容器化部署clickhouse

执行 docker search clickhouse-server 命令 查找clickhouse-server 镜像, clickhouse分服务端和客户端,可以合并部署或者分开部署,这里分开部署。

(为了速度,可连接阿里的镜像仓库)配置如下图

阿里仓库镜像配置阿里仓库镜像配置

系统会列出搜到的 clickhouse-server镜像,如下图

第一列 名称,我们执行 docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse yandex/clickhouse-server

命令,用指定的镜像名称启动容器,并映射端口。要暴两个端口,8123(http)管理,9000(tcp)端口

docker 会检查本地是否有镜像,如果没有就先下载,否则直接启动。启动完成

执行命令 docker container ls 查看启动的镜像,如下图

可以看到,我们指定的镜像已经运行在从容器中,并有端口映射。

3,连接clickhouse-server

到此,我们就可以用客户端端链接clickhouse服务了。除了clickhouse-client ,还有图形化工具,比如

dbeaver (https://dbeaver.io/download/)

4,部署配置jdbc-bridge

jdbc-bridge 是clickhouse 连接其他类型数据库的桥接器(常见的比如msql.hive ,elasticsearch等),一般和clickhouse部署在一块,也可以单独部署。这里我们把它部署在一个独立的容器里

通过镜像搜索找到对应的镜像

docker search jdbc-bridge

运行docker

docker run -d -p 9019:9019 --name clickhouse/jdbc-bridge (暴露9019通信端口)

启动后,通过命令行进入jdbc-bridge容器

docker exec -it 【容器id】/bin/bash

执行ipconfig ( 如果找不到命令 可以先安装apt install net-tools) 查看ip

比如 jdbc-bridge容器 ip 地址为 172.0.0.4

a.首先配置clickhouse-server

命令行进入容器

vim /etc/clickhouse-server/config.xml

找到配置项

<jdbc_bridge><host>172.17.0.4</host><port>9019</port></jdbc_bridge>

设置 jdbc-bridge容器的ip地址和端口

b.配置jdbc-bridge容器 (以配置mysql为例)

命令行进入jdbc-bridge容器,配置目录/app/config/datasources ,添加文件mysql8.json

文件内容如下

代码语言:javascript复制
{
          "mysql8": {
                    "driverUrls": ["https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar" ],
                     "jdbcUrl": "xxxxx",
                     "username": "xxxx",
                     "password": "xxxxx"
 }
}

到此配置完成。

可通过客户端,通过如下命令和mysql交互

代码语言:javascript复制
create table system.test (
    a String,
    b UInt8
) engine=JDBC('mysql8', '', 'select user as a, is_initial_query as b from system.processes');

0 人点赞