ClickHouse - 02

2、安装部署


官网:ClickHouse

基础设施

目前 ClickHouse 仅支持 Linux 系统,且cpu必须支持 SSE4.2 指令集,可以通过以下命令查询 Linux 是否支持:

_> more /proc/cpuinfo | grep sse4_2
_> grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

如果服务器不支持 SSE4.2 指令集,则不能下载预编译安装包,需要通过源码编译特定版本进行安装。

2.1、YUM 安装


_> yum -y install yum-utils
_> rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
_> yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo
_> yum install clickhouse-server clickhouse-client

2.2、RPM 安装


RPM 包下载地址:PackageCloud

_> wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm/download.rpm
_> wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm/download.rpm
_> wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-20.8.3.18-1.el7.x86_64.rpm/download.rpm
_> wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-20.8.3.18-1.el7.x86_64.rpm/download.rpm

# 可独立安装 安装顺序无要求
_> rpm -ivh clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm
_> rpm -ivh clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm
_> rpm -ivh clickhouse-server-20.8.3.18-1.el7.x86_64.rpm
_> rpm -ivh clickhouse-client-20.8.3.18-1.el7.x86_64.rpm

# 或者批量安装
_> rpm -ivh ./clickhouse-*.rpm

2.3、服务管理


# 启动服务
_> systemctl start clickhouse-server
# 停止服务
_> systemctl stop clickhouse-server
# 进入 CLI 客户端
_> clickhouse-client
_> clickhouse-client --host localhost --port 9000

2.4、集群配置


配置 /etc/clickhouse-server/config.xml

# 取消 listen_host 注释
# 允许所有网络接口访问服务
_> vim /etc/clickhouse-server/config.xml
:set nu
::

配置 metrika.xml

_> vim /etc/metrika.xml


    
    
        
            
                true
                
                    node01
                    9000
                
            
            
                true
                
                    node02
                    9000
                
            
            
                true
                
                    node03
                    9000
                
            
        
    

    
        
            node01
            2181
        
        
            node02
            2181
        
        
            node03
            2181
        
    

    
        01
    

    
        ::/0
    

    
        
            10000000000
            0.01
            lz4
        
    


  • clickhouse_remote_servers:集群配置标签,固定写法。
  • clickhouse_cluster:集群名称,可自由定义,集群名称中不能包含点号。
  • shard:分片,一个集群可以分多个分片,每个分片可以存储数据。分片是指包含部分数据的服务器,要读取所有的数据,必须访问所有的分片。分片可以理解为 ClickHouse 机器中的每个节点。这里可以配置一个或者任意多个分片,在每个分片中可以配置一个或任意多个副本,不同分片可配置不同数量的副本。如果只是配置一个分片,这种情况下查询操作应该称为远程查询,而不是分布式查询。f
  • replica:每个分片的副本,默认每个分片配置了一个副本。副本是指存储分片备份数据的服务器,要读取所有的数据,访问任意副本上的数据即可。也可以配置多个。如果配置了副本,读取操作可以从每个分片里选择一个可用的副本。如果副本不可用,会依次选择下个副本进行连接。该机制利于系统的可用性。
  • internal_replication:默认为 false,写数据操作会将数据写入所有的副本,设置为 true,写操作只会选择一个正常的副本写入数据,副本间数据同步在后台自动进行。
  • zookeeper-servers:ZK 集群配置。
  • macros:区分每台 ClickHouse 节点的宏配置,每台 ClickHouse 需要配置不同名称。
  • networks:这里配置 IP 为 ::/0 代表任意 IP 可以访问,包含 IPv4 和 IPv6。注意:允许外网访问还需配置 /etc/clickhouse-server/config.xml
  • clickhouse_compression:MergeTree 引擎表的数据压缩设置。
    • min_part_size:代表数据部分最小大小。
    • min_part_size_ratio:数据部分大小与表大小的比率。
    • method:数据压缩格式。

注意:需要在每台 ClickHouse 节点上配置 metrika.xml 文件,并且修改每个节点的 macros 配置名称。

检查集群状态

_> clickhouse-client
:) select * from system.clusters;

2.5、相关目录


  • /etc/clickhouse-server:服务端的配置文件目录,包括全局配置 config.xml 和用户配置 users.xml
  • /var/lib/clickhouse:默认数据存储目录,通常会修改,将数据保存到大容量磁盘路径中。
  • /var/log/cilckhouse-server:默认日志目录,通常会修改,将数据保存到大容量磁盘路径中。
  • /usr/bin:可执行文件。
    • clickhouse:主程序可执行文件。
    • clickhouse-server:一个指向 clickhouse可执行文件的软连接,供服务端启动使用。
    • clickhouse-client:一个指向 clickhouse可执行文件的软连接,供客户端启动使用。

3、CLI命令


CLI 命令行参数

  • --host, -h:服务端的 host 名称,默认是 localhost。可以选择使用 host 名称或者 IPv4 或 IPv6 地址。

    需要 config.xml 中开启 :: 配置,代表可以任意ip可访问。

  • --port:连接的端口,默认值:9000。

  • --user, -u:用户名。 默认值:default

  • --password:密码。

  • --query,-q:使用非交互模式查询。

  • --database, -d:默认当前操作的数据库. 默认值:服务端默认的配置(默认是 default)。

  • --multiline, -m:如果指定,允许多行语句查询(Enter仅代表换行,不代表查询语句完结)。

  • --time, -t:如果指定,非交互模式下会打印查询执行的时间到 stderr 中。

  • --stacktrace:如果指定,如果出现异常,会打印堆栈跟踪信息。

  • --config-file:配置文件的名称。

  • --multiquery,-n:使用非交互模式查询数据时,可以分号隔开多个sql语句。

你可能感兴趣的:(ClickHouse - 02)