基于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"的排查方法,已经有很多博客写得清清楚楚了(很多都是复制粘贴..真浪费时间),那么如果已有的常规排查方法都不能解决你的 ...
随机推荐
- 全国网络安全行业职业技能大赛云南省选拔赛 Misc 部分WP
word_sercet 题目 我的解答: 加密文档,010打开图片发现密码 VVV_123.com 解压打开得到flag(注:flag原本是隐藏的,但我之前设置过隐藏文字自动显示,因此这里直接可以看到 ...
- just_audio音频播放器
代码 import 'package:flutter/material.dart'; import 'package:just_audio/just_audio.dart'; void main() ...
- Prometheus配置Basic Auth进行安全防护,实现登录控制
本文分享自华为云社区<Prometheus配置Basic Auth进行安全防护,实现登录控制>,作者:可以交个朋友. 一.Prometheus Basic Auth 使用背景 在日常pro ...
- 带你认识一下多模态对比语言图像预训练CLIP
本文分享自华为云社区<多模态对比语言图像预训练CLIP:打破语言与视觉的界限>,作者:汀丶. 一种基于多模态(图像.文本)对比训练的神经网络.它可以在给定图像的情况下,使用自然语言来预测最 ...
- 数据湖探索DLI新功能:基于openLooKeng的交互式分析
摘要:基于华为开源openLooKeng引擎的交互式分析功能,将重磅发布便于用户构建轻量级流.批.交互式全场景数据湖. 在这个"信息爆炸"的时代,大数据已经成为这个时代的关键词之一 ...
- Rust太难?那是你没看到这套Rust语言学习万字指南!
摘要:从开发环境.语法.属性.内存管理和Unicode等五部分,为你带来一份详细的Rust语言学习的精华总结内容. 一.Rust开发环境指南 1.1 Rust代码执行 根据编译原理知识,编译器不是直接 ...
- 全网呕血整理:关于YOLO v3原理分析
摘要:YOLO系列的目标检测算法可以说是目标检测史上的宏篇巨作,接下来我们来详细介绍一下YOLO v3算法内容. 算法基本思想 首先通过特征提取网络对输入特征提取特征,得到特定大小的特征图输出.输入图 ...
- 数仓出现“wait in ccn queue”的时候,怎么迅速定位处理?
摘要:现网在使用动态负载管理的时候,经常出现很多wait in ccn的情况,大家处理起来就会认为是hung住或者怎么着了,很着急,但wait ccn其实就是一个等待资源的状态,在此总结一个ccn问题 ...
- grpc双向流究竟是什么情况?2段代码告诉你
摘要:为什么需要grpc双向流? 本文分享自华为云社区<grpc双向流究竟是什么情况?2段代码告诉你>,作者:breakDawn. 为什么需要grpc双向流? 有时候请求调用和返回过程,并 ...
- Flutter加固原理及加密处理
引言 为了保护Flutter应用免受潜在的漏洞和攻击威胁,加固是必不可少的措施之一.Flutter加固原理主要包括代码混淆.数据加密.安全存储.反调试与反分析.动态加载和安全通信等多个方面.通过综 ...