前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用docker 搭建clickhouse+jdbc-bridge学习环境

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

原创
作者头像
技术蓝海
修改2023-11-02 16:17:28
4760
修改2023-11-02 16:17:28
举报
文章被收录于专栏:wannshan(javaer,RPC)wannshan(javaer,RPC)

本机环境 :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');

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档