IT技术之家

首页 > 大数据

大数据

大数据-ClickHouse技术一(安装部署)_无敌小田田_clickhouse

发布时间:2022-10-24 20:49:17 大数据 0次 标签:大数据 clickhouse
大数据技术-ClickHouse技术初体验...

零、大数据-ClickHouse做为列式数据库,是2016年由俄罗斯人开源,独立于Hoodop生态

研究一番使用如下

docker安装

一、安装

官网安装 | ClickHouse Docs

可以安装到linux服务器,与通过docker安装,方便简单。按照官方文档即可

后续文章使用的是docker方式

二、docker安装文档-服务端

Docker Hub

初始化docker文件见百度网盘:

链接:https://pan.baidu.com/s/12OiRnQhAQiRfb2hnIFXw2A?
提取码:netx

文件介绍:docker文件-

ch_data初始化数据文件

ch_initdb数据库初始脚本,用于存放sql、sh脚本。在初始数据化前置同步,比如可以初始化一些数据,或者建基础表、基础库等等

ch_logs用于同步数据库的日志

通过使用docker执行启动命令:

docker run -d -p 18123:8123 -p 19000:9000 -v "$(pwd)/ch_data:/var/lib/clickhouse/" -v "$(pwd)/ch_logs:/var/log/clickhouse-server/" -v "$(pwd)/ch_initdb:/docker-entrypoint-initdb.d/" --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server

三、连接数据库-客户端

可以通过docke自带client服务来启动客户端,也可以通过常用的数据库连接工具

比如Dbeaver-也可以无缝连接ClickHouse数据库

四、初始化数据

docker环境可以初始化一批数据 1000W+ 或者几十亿数据,只需要在docker文件中加入数据文件即可。参考官方文档:示例数据集 | ClickHouse Docs

docker文件配置在:

ch_initdb文件夹中的 data.sh 来初始化库、表、数据? 将附带数据文件下载放到同级文件夹中,同步数据库实例的时候将数据加载进去即可

五、数据库查询

支持常用的Mysql语法

比如:SLEECT、 CREATE、ALTER、

尤其对于GROUP BY、SUM、分组计算尤为擅长

linux tar文件安装 分片副本安装

一、按照官网安装

安装 | ClickHouse Docs

二、安装zooker集群

zookeeper集群安装_无敌小田田的博客-CSDN博客

三、在clickhouse配置zookeeper地址

安装启动好zookeeper后,我们需要在clickhouse中配置zookeeper
clickhouse两种配置zookeeper方式,一种是直接在config.xml中配置,另外一种是在外部文件中配置好了,在config.xml中进行引用

1、内部配置方式

vim /etc/clickhouse-server/config.xml

添加如下配置:

  <zookeeper>
    <node index="1">  #index是连接zk的顺序
        <host>node01</host> #znode地址
        <port>2181</port>   #znode端口
    </node>
    <node index="2">
        <host>10.20.30.40</host>
        <port>2181</port>
    </node>
    <node index="3">
        <host>10.20.30.45</host>
        <port>2181</port>
    </node>
  </zookeeper>

2、zookeeper配置不支持热更改,必须重启clickhouse服务,重启之前使用sql查询

 select * from system.zookeeper where path = '/';

显示表不存在,证明不在zookeeper注册

重启完服务,就可以查看到该zookeeper表,说明zookeeper配置好了

四、副本的实现

1、通过clickhouse的cluster分片设置副本

首先配置cluster

vim /etc/clickhouse-server/config.xml

在vim模式下输入:/remote_servers快速查找到配置cluster的标签

?

?在<remote_servers>标签之中就是我们配置shard与replica的地方
先看下面配置,说明

 <remote_servers incl="clickhouse_remote_servers" >
   <my_shard>
               <shard>
	<internal_replication>true</internal_replication>
	<weight>1</weight>
                     <replica>
                            <host>node01</host>
                            <port>9000</port>
                            <user>default</user>
                            <password>default</password>
                     </replica>
                     <replica>
                            <host>node02</host>
                            <port>9000</port>
                             <user>default</user>
                            <password>default</password>
                     </replica>
              </shard>
              <shard>
<internal_replication>true</internal_replication>
	<weight>1</weight>
                     <replica>
                            <host>node03</host>
                            <port>9000</port>
                             <user>default</user>
                            <password>default</password>
                     </replica>
                     <replica>
                            <host>node04</host>
                            <port>9000</port>
                             <user>default</user>
                            <password>default</password>
                     </replica>
              </shard>
      </my_shard>
 </remote_servers>

<my_shard>是cluster名称,任意填写,在后面通过这个名字引用如 on cluster my_shard
<shard>指分片,有几个分片就配置几个<shard>标签
<replica>指副本,有几个副本就有几个<replica>标签.
上方的配置是有两个分片,每个分片两个副本.这里理解也可以是有两个分片,每个分片一个副本.
打个比方说,一张test表基于以上配置,共有id 1,2,3,4 四条数据,那么node01中有1,2两条,node02中有1,2两条,node03中有3,4两条,node04中有3,4两条,这样子举例比较好理解
注意:<internal_replication>true</internal_replication>属性,在有zookeeper情况下写true。如果没有zookeeper一定设置为false。false是通过click内部机制实现副本的数据同步,true是通过zookeeper实现数据同步。
?<weight>1</weight> 设置各个分片的数据比重?

2、配置好了之后校验

cluster可以热加载,所以不需要重启服务,通过系统表可以查看cluster

select * from system.clusters where cluster='my_shard';

五、其他配置项

1、打开配置cluster

vim /etc/clickhouse-server/config.xml

2、指定IP

指定自己所在节点IP,如不指定,默认会读电脑名称,可能导致在数据副本同步时候连接不上,建议指定为自身电脑的IP

<interserver_http_host>10.20.30.40</interserver_http_host>
3、指定集群分片配置 && 默认副本表配置项,后续新建会省事

<macros>
? ? ? ? <shard>s01</shard>
? ? ? ? <replica>r02</replica>
? ? </macros>
<default_replica_path>/clickhouse/tables/{shard}/{database}/{table}</default_replica_path>
<default_replica_name>{replica}</default_replica_name>

如上,即搭建好了分布式的数据库以及zookeeper配置。后续可以建分布式数据库表了