文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一篇带给你ClickHouse集群搭建

2024-12-03 06:31

关注

ClickHouse是一个列导向数据库,是原生的向量化执行引擎。它在大数据领域没有走Hadoop生态,而是采用Local attached storage作为存储,这样整个IO可能就没有Hadoop那一套的局限。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持shard+replication这种解决方案。它还提供了一些SQL直接接口,有比较丰富的原生client。

ClickHouse数据库的特点:

要注意,由于ClickHouse的快速查询还是基于系统资源的,因此在使用的时候要注意每个节点上的存储量,以及节点机器的系统资源要充足。因为查询时是使用内存进行聚合,所以同时并发查询的数量不能太多,否则就会造成资源崩溃。

环境配置

初始化环境(所有节点)

  1. # 修改机器的hostname 
  2. vi /etc/hostname 
  3.  
  4. # 配置hosts 
  5. vi /etc/hosts 
  6.  
  7. 192.168.143.20 node1 
  8. 192.168.143.21 node2 
  9. 192.168.143.22 node3 

 修改完后,执行hostname node1...3,不用重启机器使其生效

下载并安装ClickHouse(所有节点)

主要下载四个文件:

  1. rpm -ivh *.rpm 

安装 zookeeper(任意一个节点)

  1. # 我这里选择node1 
  2. docker run -d --net host --name zookeeper zookeeper 

 配置集群(所有节点)

修改/etc/clickhouse-server/config.xml

  1. -- 将下面行注释去掉 --> 
  2. :: 
  3.  
  4. -- 修改默认数据存储目录,比如在/home下创建目录clickhouse --> 
  5. /var/lib/clickhouse/ 
  6. -- 修改为如下 --> 
  7. /home/clickhouse/ 

修改/etc/clickhouse-server/users.xml

  1. -- 配置查询使用的内存,根据机器资源进行配置 --> 
  2. 5000000000000 
  3.  
  4. -- 在前面增加用户配置 --> 
  5.  
  6.   -- 通过Linux命令计算出密码的sha256加密值 --> 
  7.   xxxx...xxxx 
  8.    
  9.     ::/0 
  10.    
  11.   default 
  12.   default 
  13.  

增加配置文件/etc/metrika.xml

  1.  
  2.   -- ck集群节点 --> 
  3.    
  4.      
  5.        
  6.         true 
  7.          
  8.           node1 
  9.           9000 
  10.           <user>rootuser
  11.           <password>123456password
  12.          
  13.        
  14.        
  15.         true 
  16.          
  17.           node2 
  18.           9000 
  19.           <user>rootuser
  20.           <password>123456password
  21.          
  22.        
  23.        
  24.         true 
  25.          
  26.           node3 
  27.           9000 
  28.           <user>rootuser
  29.           <password>123456password
  30.          
  31.        
  32.      
  33.      
  34.     -- zookeeper相关配置--> 
  35.      
  36.       index="1"
  37.         node1 
  38.         2181 
  39.        
  40.      
  41.      
  42.      
  43.       ::/0 
  44.      
  45.      
  46.      
  47.       node1 
  48.      
  49.      
  50.     -- 压缩相关配置 --> 
  51.      
  52.       <case
  53.         10000000000 
  54.         0.01 
  55.         lz4 
  56.       case
  57.      
  58.    
  59.  

 重启clickhouse服务

  1. service clickhouse-server restart 
  2.  
  3. # 如果不成功,则使用以下命令 
  4. nohup /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml $ 

 创建数据表(所有节点)

使用可视化工具连接每个节点,在上面创建MergeTree

  1. create database test; 
  2.  
  3. create table test.data 
  4.   country String, 
  5.   province String, 
  6.   value String 
  7. engine=MergeTree() 
  8. partition by (country, province) 
  9. order by value; 

 创建分布式表(node1节点)

  1. create table test.mo as test.data ENGINE = Distributed(test_cluster, test, data, rand()); 

使用Python连接clickhouse

安装clickhouse-driver

  1. pip install clickhouse-driver 

执行命令

  1. from clickhouse_driver import Client 
  2.  
  3. # 在哪个节点创建了分布式表,就连接哪个节点 
  4. client = Client('192.168.143.20'user='root'password='123456'database='test'
  5. print(client.execute('select count(*) from mo')) 

 【编辑推荐】

  1. 惊呆,一条SQL,Oracle炸了...
  2. 我用Python制作微信动态表情符
  3. 7款提升工作效率的工具,太适合新手小白了吧
  4. 微软 Edge 90 正式版发布:新增下载管理菜单,字体渲染更清晰
  5. 阿里云盘 PC 版抢先体验:不限速但仍有遗憾

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯