基于OpenJDK部署clickhouse-local镜像的快捷方法
基于OpenJDK部署clickhouse-local镜像的快捷方法
摘要
前期搭建了一套基于OpenJDK的Clickhouse的服务端的镜像
可以简单使用dbeaver进行连接与使用.
后来发现需求与自己理解的不一样.
更加需要的是一套使用clickhouse-local 进行文件解析处理的功能.
服务可以不运行.
所以之前的思路需要改善一下.
部署方式
clickhouse 有多种安装方式.
可以使用在线安装, tar包离线安装,rpm包安装等等方式.
本次简单起见还是仿照之前 在线 sh安装的一部分来进行.
获取对应的二进制进行容器内安装,然后清理部分文件.
仅保留clickhouse-local等指令的方式.
说明
只留客户端时不需要 不需要部分配置文件.
不然会在执行命令是报错如下:
会打印出来很多日志.
在同事的提醒下发现删除部分呢配置文件就可以简单实现不打印日志的方法了
root@33dd1af16f9d:/etc/clickhouse-server# clickhouse-local -q "select 1024"
Processing configuration file 'config.xml'.
Merging configuration file 'config.d/data-paths.xml'.
Merging configuration file 'config.d/logger.xml'.
Merging configuration file 'config.d/openssl.xml'.
Merging configuration file 'config.d/user-directories.xml'.
Logging trace to /var/log/clickhouse-server/clickhouse-server.log
Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
2023.08.31 23:30:25.601851 [ 275 ] {} <Debug> ConfigProcessor: Processing configuration file 'users.xml'.
2023.08.31 23:30:25.602663 [ 275 ] {} <Debug> Access(user directories): Added users.xml access storage 'users.xml', path:
2023.08.31 23:30:25.603207 [ 275 ] {} <Debug> Application: Loading metadata from /var/lib/clickhouse/
2023.08.31 23:30:25.603633 [ 275 ] {} <Information> DatabaseAtomic (system): Metadata processed, database system has 0 tables and 0 dictionaries in total.
2023.08.31 23:30:25.603660 [ 275 ] {} <Information> TablesLoader: Parsed metadata of 0 tables in 1 databases in 0.000103018 sec
2023.08.31 23:30:25.603697 [ 275 ] {} <Information> TablesLoader: Loading 0 tables with 0 dependency level
2023.08.31 23:30:25.614048 [ 275 ] {} <Information> DatabaseAtomic (system): Starting up tables.
2023.08.31 23:30:25.615546 [ 275 ] {} <Information> BackgroundSchedulePool/BgSchPool: Create BackgroundSchedulePool with 128 threads
2023.08.31 23:30:25.621375 [ 275 ] {} <Information> UserDefinedSQLObjectsLoaderFromDisk: Loading user defined objects from /var/lib/clickhouse/user_defined/
2023.08.31 23:30:25.622740 [ 275 ] {} <Debug> UserDefinedSQLObjectsLoaderFromDisk: User defined objects loaded
2023.08.31 23:30:25.622772 [ 275 ] {} <Debug> Application: Loaded metadata.
2023.08.31 23:30:25.631443 [ 275 ] {} <Debug> LOCAL-Session: 47005b6e-b7c6-4f66-94a1-ff92abda4d18 Authenticating user 'default' from 127.0.0.1:0
2023.08.31 23:30:25.631499 [ 275 ] {} <Debug> LOCAL-Session: 47005b6e-b7c6-4f66-94a1-ff92abda4d18 Authenticated with global context as user 94309d50-4f52-5250-31bd-74fecac179db
2023.08.31 23:30:25.631514 [ 275 ] {} <Debug> LOCAL-Session: 47005b6e-b7c6-4f66-94a1-ff92abda4d18 Creating session context with user_id: 94309d50-4f52-5250-31bd-74fecac179db
2023.08.31 23:30:25.631676 [ 275 ] {} <Trace> ContextAccess (default): Settings: readonly=0, allow_ddl=true, allow_introspection_functions=false
2023.08.31 23:30:25.631707 [ 275 ] {} <Trace> ContextAccess (default): List of all grants: GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, BACKUP, KILL QUERY, KILL TRANSACTION, MOVE PARTITION BETWEEN SHARDS, SYSTEM, dictGet, INTROSPECTION, SOURCES, CLUSTER ON *.*
2023.08.31 23:30:25.631721 [ 275 ] {} <Trace> ContextAccess (default): List of all grants including implicit: GRANT SHOW, SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, BACKUP, KILL QUERY, KILL TRANSACTION, MOVE PARTITION BETWEEN SHARDS, SYSTEM, dictGet, INTROSPECTION, SOURCES, CLUSTER ON *.*
2023.08.31 23:30:25.631845 [ 275 ] {} <Debug> LOCAL-Session: 47005b6e-b7c6-4f66-94a1-ff92abda4d18 Creating query context from session context, user_id: 94309d50-4f52-5250-31bd-74fecac179db, parent context user: default
2023.08.31 23:30:25.631937 [ 275 ] {776f4845-9f41-4ffa-83f3-24f916c2b255} <Debug> executeQuery: (from 0.0.0.0:0, user: ) select 1024 (stage: Complete)
2023.08.31 23:30:25.632271 [ 275 ] {776f4845-9f41-4ffa-83f3-24f916c2b255} <Trace> ContextAccess (default): Access granted: SELECT(dummy) ON system.one
2023.08.31 23:30:25.632373 [ 275 ] {776f4845-9f41-4ffa-83f3-24f916c2b255} <Trace> InterpreterSelectQuery: FetchColumns -> Complete
1024
1024 就是需要查询出来的结构
下载方式
https://mirrors.aliyun.com/clickhouse/tgz/lts/
获取到tar包,解压缩出来一个 clickhouse的文件就可以了.
打包方式
文件主要如下 :
[root@tidb01 clickhouse]# tree -L 1
.
├── clickhouse
└── dockerfile
dockerfile
FROM 192.168.xxx.xx:5000/library/openjdk:8
COPY clickhouse /usr/bin/
WORKDIR /etc/clickhouse-server
RUN /usr/bin/clickhouse install
RUN rm -rf /etc/clickhouse-server/*
生成镜像与验证
docker build . -t clickhouse:v1.0
验证
docker run -it clickhouse:v1.0 bash
执行命令:
root@d5dc9984a419:/etc/clickhouse-server# clickhouse-local -q "select 1"
1
基于OpenJDK部署clickhouse-local镜像的快捷方法的更多相关文章
- 测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作
本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏 ...
- 基于docker-compose部署jumpserver
基于docker-compose部署jumpserver 组件说明 Jumpserver 为管理后台, 管理员可以通过 Web 页面进行资产管理.用户管理.资产授权等操作, 用户可以通过 Web 页面 ...
- 【TcaplusDB知识库】如何部署TcaplusDB Local 版
[TcaplusDB知识库]部署TcaplusDB Local 版的准备操作 1. 版本介绍 TcaplusDB Local版,是为用户提供的一个满足本地开发调试的版本(基于Docker部署的可下载版 ...
- 5.基于二进制部署kubernetes(k8s)集群
1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...
- 基于kubeasz部署高可用k8s集群
在部署高可用k8s之前,我们先来说一说单master架构和多master架构,以及多master架构中各组件工作逻辑 k8s单master架构 提示:这种单master节点的架构,通常只用于测试环境, ...
- [系统集成] 基于Kubernetes 部署 jenkins 并动态分配资源
基于kubernetes 部署 jenkins master 比较简单,难点是为 jenkins 动态分配资源.基于kubernetes 为 jenkins 动态分配资源需要实现下述功能: 资源分配: ...
- Hadoop生态圈-CentOs7.5单机部署ClickHouse
Hadoop生态圈-CentOs7.5单机部署ClickHouse 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到了新的公司,认识了新的同事,生产环境也得你去适应新的集群环境,我 ...
- 基于Docker部署nodejs应用
基于Docker部署nodejs应用 背景 公司基于Vue.js的项目最近需要部署到云端,因此需要先行在公司内部Docker环境下验证相关技术,因而有本文之前提. 本文展示在Docker容器中,应用部 ...
- 基于Docker部署Dubbo+Nacos服务
一.说明 本文介绍基于 Docker 部署一套 Dubbo + Nacos 的微服务环境,并解决容器里的 IP 及端口的访问问题. 基于上文<基于jib-maven-plugin快速构建微服务d ...
- [Docker-2]排查基于docker部署mysql主从过程中遇到“Slave_IO_Running: Connecting”这个疑难杂症
关于"Slave_IO_Running: Connecting"的排查方法,已经有很多博客写得清清楚楚了(很多都是复制粘贴..真浪费时间),那么如果已有的常规排查方法都不能解决你的 ...
随机推荐
- websocket实现实时直播
websocket实现实时直播 这篇文章我首发于简书,拿到这里发表不过分吧?点个赞再走呗! 作为一名web开发者,我使用websocket实现实时直播(滑鸡版). 为什么是滑鸡版呢?因为他上不了生产, ...
- ClickHouse的JOIN算法选择逻辑以及auto选项
ClickHouse的JOIN算法选择逻辑以及auto选项 ClickHouse中的JOIN的算法有6种: Direct; Partial merge; Hash; Grace hash; Full ...
- Spring 中循环依赖的处理
Spring 提供了十分强大的依赖注入功能,使得我们不再需要手动去管理对象的依赖项.然而,在实际的使用场景中,可能会遇到类似下面的依赖异常: Exception encountered during ...
- Unix IPC
本文主要是摘抄 APUE 中 IPC 部分的内容 IPC(Inter Process Communication)进程间通信,是指在进程之间进行通信的一种方式,本文将简要介绍一下在 Unix 中存在的 ...
- VsCode如何配置C语言环境?
以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便.这里把需要的环境和插件配置在这里介绍一下. Windows环境下安装 ...
- .NET技术分享日活动20221022
2022年10月22日下午,个人组织举办了山东地区的第六次.NET技术分享日活动.围绕.NET.低代码Low Code.云原生 Cloud Native.大数据.算法等方向进行创新技术的实践分享. 本 ...
- 如何使用GaussDB(DWS)的本地临时表进行数据处理
本文分享自华为云社区<GaussDB(DWS)临时表系列 - 本地临时表>,作者: acydy . GaussDB(DWS) 从8.2.1版本后支持三种形式的临时表:本地临时表.Volat ...
- 手把手教你使用ModelArts的自动学习识别毒蘑菇分类
摘要:本文介绍了ModelArts如何通过自动学习进行毒蘑菇的识别. 想当年,白雪公主吃了毒蘑菇,换来了白马王子的一吻.如果白雪公主没有吃毒蘑菇,还会遇到白马王子吗?张小白觉得不见得--说不定她会遇到 ...
- 论文推荐|TDSC2022 安全补丁识别最新的方案E-SPI
摘要:TDSC 2022发表了安全补丁识别最新的方案"Enhancing Security Patch Identification by Capturing Structures in C ...
- OCR性能优化:从认识BiLSTM网络结构开始
摘要: 想要对OCR进行性能优化,首先要了解清楚待优化的OCR网络的结构,本文从动机的角度来推演下基于Seq2Seq结构的OCR网络是如何一步步搭建起来的. 本文分享自华为云社区<OCR性能优化 ...