ClickHouse合集(一):分布式集群部署及python调用

本文详细介绍了ClickHouse的基础概念,包括其应用场景、安装启动(单机与分布式模式)、数据类型、表引擎、SQL操作以及Python调用。特别强调了MergeTree表引擎在数据存储和优化上的优势,并探讨了ClickHouse的优化配置和适用场景。同时,文章提供了Python与ClickHouse交互的介绍,展示了其在大数据分析中的高效性能。
摘要由CSDN通过智能技术生成

0.ClickHouse

参考资料 :
Clickhouse 在腾讯的应用实践 : http://www.yidianzixun.com/article/0NaOwJjF?appid=mibrowser

0.基础概念

0.0.概述

俄罗斯 Yandex 2016 开源 列式存储数据库 DBMS

0.1.应用场景

在线分析处理查询OLAP – 使用SQL实时生成分析数据报告

0.2.适用场景

只有几列常用 查询非常快

1.安装及启动

1.1.方式一 单机模式
  • 安装/卸载

    • 1.确保CentOS支持外网

      $ ping Baidu.com
      
    • 2.确保CentOS支持SSE

      $ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iN6JRHE6-1585995391656)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.12.05.png)]

    • 3.CentOS取消打开文件数限制

      vi /etc/security/limits.conf
      # 在文件末尾追加配置
      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 131072
      * hard nproc 131072
      
      vi /etc/security/limits.d/20-nproc.conf
      # 在文件末尾追加配置
      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 131072
      * hard nproc 131072
      
    • 4.CentOS取消SELINUX

      vi /etc/selinux/config
      # 修改SELINUX的值
      SELINUX=disabled
      
    • 5.创建安装目录/opt/software/clickhouse(不用)

      $ mkdir /opt/software/clickhouse
      $ cd /opt/software
      $ ll
      
    • 6.上传安装包
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncW08cfB-1585995391657)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.15.52.png)]

    • 7.安装
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-emkzx8Av-1585995391658)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.11.55.png)]

    • 8.解决依赖

      $ yum install libicu.x86_64
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4G6sjUD-1585995391658)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.11.47.png)]

    • 9.重新安装
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZMtk2dM-1585995391659)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.11.30.png)]

  • 启动/关闭服务

    • 1.启动服务

      # 全局目录下
      $ service clickhouse-server start
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6k2HnkbN-1585995391659)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.13.19.png)]

      • 默认重启服务器服务自启动
    • 2.关闭服务
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Nlrgti2-1585995391660)(media/15716513356460/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202019-10-21%20%E4%B8%8B%E5%8D%888.50.38.png)]

    • 3.卸载

      $ yum list installed | grep clickhouse
      $ yum remove -y clickhouse-common-static
      $ yum remove -y clickhouse-server-common
      $ rm -rf /var/lib/clickhouse
      $ rm -rf /etc/clickhouse-*
      $ rm -rf /var/log/clickhouse-server
      

      在这里插入图片描述

  • 进出客户端/交互模式 – 同集群模式

  • 客户端内使用/交互模式内使用 – 同集群模式

1.2.方式二 分布式/集群模式
  • 节点分布 : 10.255.175.240 10.255.175.241 10.255.175.242
  • 安装/卸载 – 每个节点执行

    • 0.分布式部署前提

      • 0.1关闭防火墙

        $ firewall-cmd --state
        $ systemctl stop firewalld
        $ firewall-cmd --state
        $ systemctl disable firewalld.service
        $ systemctl list-unit-files | grep firewalld
        
      • 0.2修改主机名

        $ vi /etc/hostname
            第1行主机名改成 clickhousex
        $ reboot
        $ hostname
        
      • 0.3修改主机名与IP映射

        $ vi /etc/hosts
            添加以下3行
            10.255.175.240 clickhouse1
            10.255.175.241 clickhouse2
            10.255.175.242 clickhouse3
        
      • 0.4配置SSH免密登录

        # 1.开启Authentication免登陆 — 每个节点都操作
        $ vi /etc/ssh/sshd_config
        	以下三行去掉注释
        	RSAAuthentication yes
        	PubkeyAuthentication yes
        	PermitRootLogin yes # 如果非root用户这行不需要
        	
         # 2.生成authorized_keys -- 每个节点都操作
        $ ssh-keygen -t rsa # 生成key 会在/root/.ssh生成:authorized_keys id_rsa.pub id_rsa 三个文件
            一直回车
            
        # 3.合并公钥到authorized_keys文件 — master操作
        $ cd /root/.ssh
            # 将三个节点的公钥逐一追加到master的authorized_key文件
            $ cat id_rsa.pub>> authorized_keys
            $ ssh root@10.255.65.2 cat ~/.ssh/id_rsa.pub>> authorized_keys
            $ ssh root@10.255.65.3 cat ~/.ssh/id_rsa.pub>> authorized_keys
            # 将合并后信息持有三个公钥的authorized_key文件copy给其他两个slave节点
            $ scp authorized_keys 10.255.65.2:/root/.ssh/
            $ scp authorized_keys 10.255.65.3:/root/.ssh/
        
        # 4.修改authorized_keys文件权限为只当前用户读写 — 每个节点都操作
        $ cd /root/.ssh
        $ chmod 600 authorized_keys
        
        # 5.重启SSH服务 — 每个节点都操作
        $ service sshd restart
        
        # 6.测试免密登录 — 每个节点都操作
        $ ssh 10.255.175.x 测试互相访问对方是否不需要输入密码就可连接
        
      • 5.创建软件文件夹 — 每个节点都操作

        $ mkdir /opt/software
        $ cd /opt/software
        $ ll
        
      • 6.CentOS上安装lrzsz工具

        $ yum install lrzsz
        
      • 7.安装zookeeper集群

    • 1.确保CentOS支持外网$ ping Baidu.com

    • 2.确保CentOS支持SSE

    • 3.CentOS取消打开文件数限制

    • 4.CentOS取消SELINUX

    • 5.创建安装目录/opt/software/clickhouse

    • 6.上传安装包

    • 7.安装

    • 8.解决依赖

    • 9.重新安装

    • 以上1~9步同单机模式
  • 配置分布式部署

    每台节点执行以下步骤 :

    • 1.配置config.xml

      vi /etc/clickhouse-server/config.xml
      # 把这行代码注释去掉 使其他IP可访问本机
      <listen_host>::</listen_host>
      
    • 2.新建metrika.xml

      vi /etc/metrika.xml
      # 编写如下内容 <macros>部分根据不同机器更改
      <yandex>
      # 服务器集群设置
      <clickhouse_remote_servers>
          # 集群名 可自定义 张三
          <clickhouse_cluster>
              # 数据分片1/分片信息(分片:我的数据有9条 我设置3个分片的话 就一个分片存储3条 分片就是一块储存区域 3个分片也一定在不同的节点上)
              <shard>
                  # 开启自动复制/启用自动表备份
                  <internal_replication>true</internal_replication>
                  # 副本 -- 指定本分片/节点上的数据的备份 要放在的哪写些节点上做备份 -- 节点2上放一份 节点3上放一份就要再加一个<reploca>标签
                  <replica>
                      <host>hadoop102</host>
                      <port>9000</port>
                  </replica>
              </shard>
              # 数据分片2
              <shard>
                  <internal_replication>true</internal_replication>
                  <replica>
                      <host>hadoop103</host>
                      <port>9000</port>
                  </replica>
              </shard>
              # 数据分片3
              <shard>
                  <internal_replication>true</internal_replication>
                  <replica>
                      <host>hadoop104</host>
                      <port>9000</port>
                  </replica>
              </shard>
          </clickhouse_cluster>
      </clickhouse_remote_servers>
      
      # 配置高可用时需要ZK
      <zookeeper-servers>
          <node index="1">
              <host>hadoop102</host>
              <port>2181</port>
          </node>
          <node index="2">
              <host>hadoop103</h
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cheese海盐芝士

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

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

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

打赏作者

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

抵扣说明:

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

余额充值