• 利用docker安装启动ClickHouse


    一、clickhouse简介

    ClickHouse是一个面向列存储的数据库管理系统,可以使用SQL查询实时生成分析数据报告,主要用于OLAP(在线分析处理查询)场景。关于clickhouse原理以及基础知识在以后学习中慢慢总结。(_)

    二、安装启动

    这里主要描述如何使用docker安装并启动clickhouse,其他安装方法均参考了官方文档: https://clickhouse.tech/docs/zh/getting_started/install/

    1、Debian/Ubuntu/RPM安装ClickHouse

    对于以上方法安装,官方均提供了安装包,直接通过apt-get installrpm -ivh安装即可,安装包路径如下:

    # Debian/Ubuntu
    ## 安装包位置:https://repo.yandex.ru/clickhouse/deb/stable/main/
    deb http://repo.yandex.ru/clickhouse/deb/stable/ main/
    sudo apt-get install dirmngr    # optional
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4    # optional
    sudo apt-get update
    sudo apt-get install clickhouse-client clickhouse-server
    
    # rpm安装
    ## 安装包位置:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64
    sudo yum install yum-utils
    sudo rpm --import https://repo.yandex.ru/clickhouse/CLICKHOUSE-KEY.GPG
    sudo yum-config-manager --add-repo https://repo.yandex.ru/clickhouse/rpm/stable/x86_64
    sudo yum install clickhouse-server clickhouse-client
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2、docker安装ClickHouse

    2.1 docker安装

    Centos安装docker参考于docker官方文档:https://docs.docker.com/install/linux/docker-ce/centos/

    2.1.1、卸载老版本docker

    yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    
    • 1

    2.1.2、安装依赖包并设置官方镜像源

    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    • 1
    • 2

    2.1.3、安装最新版docker

    yum install docker-ce docker-ce-cli containerd.io
    
    • 1

    2.1.4、启动docker

    目前docker最新版本为19.03版本,安装该版本启动时(安装17.03版本并没有报错)有可能产生以下报错:

    # systemctl start docker
    A dependency job for docker.service failed. See 'journalctl -xe' for details.
    ## 报错具体如下图:出现该报错的原因是,由于主机之前对/etc/group等文件进行过`chattr +i`加锁操作,导致docker安装时执行groupadd docker报错
    ## 解决方法,对相关文件解锁之后,执行groupadd docker即可
    此时执行systemctl start docker即可成功启动
    
    启动完成后可利用官方提供的hello-world进行测试
    docker run hello-world
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    2.2 安装ClickHouse

    docker环境搭建好之后,利用docker安装clickhouse比较简单,clickhouse官方提供了默认的镜像,直接使用即可。官方文档参考:https://hub.docker.com/r/yandex/clickhouse-server/

    目前正在研究如何根据源码包修改docker文件,安装之后得到想要的配置,预计下周出个文章详解_

    2.2.1、拉取clickhouse的docker镜像

    docker pull yandex/clickhouse-server
    docker pull yandex/clickhouse-client
    
    • 1
    • 2

    2.2.2、启动server端

    # 默认直接启动即可
    docker run -d --name [启动之后的名称] --ulimit nofile=262144:262144 yandex/clickhouse-server
    
    # 如果想指定目录启动,这里以clickhouse-test-server命令为例,可以随意写
    mkdir /work/clickhouse/clickhouse-test-db       ## 创建数据文件目录
    # 使用以下路径启动,在外只能访问clickhouse提供的默认9000端口,只能通过clickhouse-client连接server
    docker run -d --name clickhouse-test-server --ulimit nofile=262144:262144 --volume=/work/clickhouse/clickhouse_test_db:/var/lib/clickhouse yandex/clickhouse-server
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    2.3 启动并连接clickhouse-server

    2.3.1、docker启动clickhouse-client

    docker run -it --rm --link clickhouse-test-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
    
    • 1

    3、客户端常用参数

    clickhouse-client
        --host, -h     	:服务端host名称,默认 localhost
        --port         	:连接端口,默认9000
        --user, -u     	:用户名,默认 default
        --password     	:密码,默认空
        --query, -q    	:非交互模式下的查询语句
        --database, -d 	:默认当前操作的数据库,默认default
        --multiline, -m :允许多行语句查询,在clickhouse中默认回车即为sql结束,可使用该参数多行输入
        --format, -f		:使用指定的默认格式输出结果      csv,以逗号分隔
        --time, -t			:非交互模式下会打印查询执行的时间
        --stacktrace		:出现异常会打印堆栈跟踪信息
        --config-file		:配置文件名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    java多个jar包编译生成.class文件
    3d模型里地毯的材质怎么赋予?---模大狮模型网
    canvas-绘图库fabric.js简介
    MyBatisPlus(七)——通用枚举、代码生成器、多数据源、MyBatisX
    Python机器学习实战-特征重要性分析方法(8):方差分析ANOVA(附源码和实现效果)
    能解决你80%关于存储的疑惑
    【FPGA教程案例37】通信案例7——基于FPGA的FFT,IFFT傅里叶变换和逆变换
    StringBuilder 线程不安全,到底哪里不安全?
    计算机毕业设计Java校园兼职招聘系统(源码+系统+mysql数据库+Lw文档)
    Java面试整理(三)《JavaSE》
  • 原文地址:https://blog.csdn.net/web15085599741/article/details/126565294