docker 安装 clickhouse 及 配置dbserver

该文详细描述了如何在Docker环境下安装和配置Clickhouse,包括创建配置文件、拉取镜像、设置目录、生成密码、修改用户配置,以及通过Java使用clickhouse4j驱动进行数据库连接和测试。最后,创建了数据库和表,并进行了数据的插入与查询操作。
摘要由CSDN通过智能技术生成

1 安装

1.1 创建配置文件

mkdir -p /usr/local/clickhouse/data
mkdir -p /usr/local/clickhouse/conf
mkdir -p /usr/local/clickhouse/log

1.2 拉取镜像

docker pull yandex/clickhouse-server:20.4.5.36

1.3 创建目录

mkdir -p /usr/local/clickhouse/data/
mkdir -p /usr/local/clickhouse/config/
mkdir -p /usr/local/clickhouse/log/

1.4 创建临时容器

docker run -d \
--name clickhouse \
--ulimit nofile=262144:262144 \
-p 8123:8123 \
-p 9000:9000 \
-p 9009:9009 \
yandex/clickhouse-server:20.4.5.36

1.5 复制临时容器配置到主机

docker cp clickhouse:/etc/clickhouse-server/config.xml /usr/local/clickhouse/config/config.xml
docker cp clickhouse:/etc/clickhouse-server/users.xml  /usr/local/clickhouse/config/users.xml

1.6 生成密码

# 生成指定密码123456
[root@hadoop3 ~]# echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
 
 

1.7 修改配置文件

#修改default的密码,并且设置为readonly
#新增root配置
vim /usr/local/clickhouse/config/users.xml

<users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
            <!-- Settings profile for user. -->
            <profile>readonly</profile>
            <quota>readonly</quota>
        </default>

        <root>
                <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
                <networks incl="networks" replace="replace">
                        <ip>::/0</ip>
                </networks>
                <profile>default</profile>
                <quota>default</quota>
        </root>
</users>

1.8 重启

docker rm -f clickhouse

docker run -d \
--name clickhouse \
--ulimit nofile=262144:262144 \
-p 8123:8123 \
-p 9000:9000 \
-p 9009:9009 \
-v /usr/local/clickhouse/data:/var/lib/clickhouse:rw \
-v /usr/local/clickhouse/log:/var/log/clickhouse-server:rw \
-v /usr/local/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml \
-v /usr/local/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml \
yandex/clickhouse-server:20.4.5.36

1.9 测试

docker exec -it clickhouse /bin/bash

clickhouse-client --password 
123456



在这里插入图片描述

2 java 连接测试

2.1 pom

  <dependency>
            <groupId>cc.blynk.clickhouse</groupId>
            <artifactId>clickhouse4j</artifactId>
            <version>1.4.4</version>
        </dependency>

2.2 Test

package com.rosh.flink.clickhouse;

import java.sql.*;

public class ClickhouseTest {


    public static void main(String[] args) throws ClassNotFoundException, SQLException {


        String driver = "cc.blynk.clickhouse.ClickHouseDriver";
        String ip = "hadoop3";
        String port = "8123";
        String db = "default";
        String user = "default";
        String pwd = "123456";

        Class.forName(driver);
        StringBuffer urlSb = new StringBuffer()
                .append("jdbc:clickhouse://")
                .append(ip).append(":").append(port).append("/").append(db)
                .append("?characterEncoding=utf8&useSSL=false");
        Connection connection = DriverManager.getConnection(urlSb.toString(), user, pwd);
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("show databases");
        if(resultSet != null) {
            while(resultSet.next()) {
                String tableName = resultSet.getString(1);
                System.err.println(tableName);
            }
        }


    }

}

在这里插入图片描述

3 dbserver

3.1 配置dbserver

在这里插入图片描述
在这里插入图片描述

#配置
click
cc.blynk.clickhouse.ClickHouseDriver
jdbc:clickhouse://{host}:{port}[/{database}]
8123

在这里插入图片描述
新建好后连接:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2 使用

在这里插入图片描述

3.3 创建库

 CREATE DATABASE rosh_shop

在这里插入图片描述

3.4 创建表

CREATE TABLE rosh_shop.clickstream (
    customer_id String, 
    time_stamp Date, 
    click_event_type String,
    page_code FixedString(20),  
    source_id UInt64
) 
ENGINE = MergeTree()
ORDER BY (time_stamp)

在这里插入图片描述

3.5 插入数据

INSERT INTO rosh_shop.clickstream
VALUES ('customer1', '2021-10-02', 'add_to_cart', 'home_enter', 568239 ) 

在这里插入图片描述

3.6 查询数据

select * from rosh_shop.clickstream 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

响彻天堂丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值