基于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"的排查方法,已经有很多博客写得清清楚楚了(很多都是复制粘贴..真浪费时间),那么如果已有的常规排查方法都不能解决你的 ...
随机推荐
- shutdown详解
linux下shutdown命令详解 shutdown命令安全地将系统关机. 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的.因为linux与windows不同,其后台运行着许多进程 ...
- Linux的期末冲刺
选择 一.Linux基础 Linux目录结构 相关命令: cd, ls, pwd 详解: Linux 目录结构采用树状结构,根目录为 /.用户的帐户信息保存在 /etc/passwd 文件中,包括用户 ...
- osgEarth使用笔记3——加载倾斜摄影数据
目录 1. 概述 2. 详论 2.1. 位置 2.2. 着色 2.3. 其他 3. 结果 4. 参考 1. 概述 我在<OSG加载倾斜摄影数据>这篇博文中论述了如何通过OSG生成一个整体的 ...
- 十八般武艺玩转GaussDB(DWS)性能调优(二):坏味道SQL识别
摘要:那些会导致执行效率低下的SQL语句及其执行方式,我们称之为SQL中的"坏味道". ◆ 什么是SQL中的坏味道 SQL语言是关系型数据库(RDB)的标准语言,其作用是将使用者的 ...
- AIGC的阿克琉斯之踵
摘要:现在,越来越多的企业和个人使用AIGC生成文章.图片.音乐甚至视频等内容,AIGC已经成为一种必备的工具.在游戏和原画师行业,甚至已经出现了第一批因为AI而失业的人. 本文分享自华为云社区< ...
- 如何快速上手 angular.js
摘要:angular.js 准确的来说,应该不是一个框架,是一个 js 库,一个依赖于 jQuery 的进一步封装,去除繁琐的 DOM 操作,使用数据驱动的 MVC 模块化库. 哎,很难受,连续两个大 ...
- 传统数据库改造难?华为云GaussDB“五心”解决
摘要:快来看看华为云GaussDB奉上的"五心"诚意吧~ 本文分享自华为云社区<传统数据库改造难?华为云GaussDB"五心"解决>,作者: Gau ...
- Jmeter对各种接口类型的测试
JMeter对各种类型接口的测试 默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59):本地配好了JMeter ...
- ABAP 内表与JSON转换
一.内表转JSON "-----------------------------@斌将军----------------------------- TYPES: BEGIN OF ty_na ...
- BAPI_PO_CHANGE 采购订单修改服务
修改服务页签里面的价格和数量,达到修改净价和条件里面金额的目的 数据可以通过采购订单查询ESLH和ESLL表获取 "------------------------------------- ...