typora-root-url: assets

安装单机版的clickhouse
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client

sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.

如果想使用最新版本,请将repo文件中stable版本关闭testing版本打开(建议在您的测试环境中使用)。prestable有时也可用

1)修改配置/etc/clickhouse-server/config.xml
   
   1、开放远程连接: <listen_host>::</listen_host>
   2、数据目录改为服务器最大的数据盘,如此处是/data2:     
         <!-- Path to data directory, with trailing slash. -->
         <path>/data2/clickhouse/</path>
	 <tmp_path>/data2/clickhouse/tmp/</tmp_path>
	 <user_files_path>/data2/clickhouse/user_files/</user_files_path>
	 <format_schema_path>/data2/clickhouse/format_schemas/</format_schema_path>

2) 其他优化配置项修改

    1、配置日志文件切割 (100M做一个切割,ClickHouse存储的已归档日志文件的数量 设置为 10),配置文件:/etc/clickhouse-server/config.xml
       修改如下:
        <size>100M</size>
        <count>10</count>
  
    2、配置允许的文件导入的错误数(放到<interserver_http_port> 配置项后面):
      <input_format_allow_errors_num>100</input_format_allow_errors_num>
     
    3、配置连接超时时间参数
       vim /etc/clickhouse-server/config.xml
       修改如下参数:
       <keep_alive_timeout>900</keep_alive_timeout>
       <default_session_timeout>600</default_session_timeout>
        
    4、是否使用未压缩块的缓存,提升短查询速度。接受0或1。默认情况下0(禁用),改为1
      修改:<use_uncompressed_cache>0</use_uncompressed_cache> 为 <use_uncompressed_cache>1</use_uncompressed_cache>

    5、修改单个查询使用的最大内存限制
      <max_memory_usage>20000000000</max_memory_usage>

    6、添加如下参数 至 <max_memory_usage>参数后面
       <max_bytes_before_external_group_by>80000000000</max_bytes_before_external_group_by>


3)修改默认账号密码
   
   1、配置账号密码: vim /etc/clickhouse-server/users.xml 
      修改: <password></password> 为 <password>mypasswd123</password>

clickhouse spring4 druid 配置 clickhouse presto_运维

clickhouse spring4 druid 配置 clickhouse presto_linux_02

clickhouse分布式集群

集群规划

192.168.222.130 hdp001 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9100
192.168.222.131 hdp002 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9100
192.168.222.132 hdp003 关防火墙, host映射, 时钟同步 JDK, Zookeeper clickhouse-server 9100
关于机器之前的免密、关防火墙、host映射、时钟同步以及JDK和Zookeeper的安装步骤,这里就不再介绍了。

先按照上面单机模式的部署在hdp001、hdp002、hdp003上部署安装clickhouse。

部署完毕后在hdp001的环境上修改clickhouse的配置文件的如下项:

vim /etc/clickhouse-server/config.xml
<listen_host>::</listen_host> #开放远程连接,单机部署的时候已设置过,需要再次确认这个配置是否打开
#集群配置
<test_cluster_one_shard_three_replicas_localhost> #集群名称,可随意定义,这里是默认名称
            <shard>
                <replica>
                    <host>hdp001</host>  #节点1主机名或者填主机IP,根据实际修改
                    <port>9100</port> #节点1的clickhouse端口号,根据实际修改
                </replica>
            </shard>
            <shard>
                <replica>
                    <host>hdp002</host> #节点2主机名或者填主机IP,根据实际修改
                    <port>9100</port> #节点2的clickhouse端口号,根据实际修改
                </replica>
            </shard>
            <shard>
                <replica>
                    <host>hdp003</host> #节点3主机名或者填主机IP,根据实际修改
                    <port>9100</port> #节点3的clickhouse端口号,根据实际修改
                </replica>
            </shard>
</test_cluster_one_shard_three_replicas_localhost>
#ZK配置
<zookeeper>
        <node>
            <host>hdp001</host> #ZK节点1主机名或者填主机IP,根据实际修改
            <port>2181</port> #ZK端口号,根据实际修改
        </node>
        <node>
            <host>hdp002</host> #ZK节点2主机名或者填主机IP,根据实际修改
            <port>2181</port> #ZK端口号,根据实际修改
        </node>
        <node>
            <host>hdp003</host> #ZK节点3主机名或者填主机IP,根据实际修改
            <port>2181</port> #ZK端口号,根据实际修改
        </node>
</zookeeper>

修改完配置文件以后,分发到其他的两个节点上,更改权限,启动hdp001上的clickhouse

scp config.xml  root@hdp002:/etc/clickhouse-server/
scp config.xml  root@hdp002:/etc/clickhouse-server/
chown clickhouse:clickhouse /etc/clickhouse-server/ -R
#启动clickhouse时,不能用root用户,需用clickhouse用户。
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml

确保hdp001上的clickhouse启动没有以后,可以用以下命令启动其他两个节点的clickhouse

nohup sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml &

查看端口,验证clickhouse是否成功启动

clickhouse spring4 druid 配置 clickhouse presto_xml_03

打开client

clickhouse-client --host="127.0.0.1" --port="9100" --user="default" --password="dtsw1234"

输入sql语句查看集群

select * from system.clusters;

clickhouse spring4 druid 配置 clickhouse presto_服务器_04

可以看到test_cluster就是我们定义的集群名称,一共有三个分片,每个分片有一份数据。剩下的为配置文件默认自带的集群配置。

测试分布式集群

在hdp001、hdp002、hdp003 分别创建本地表cluster3s1r_local

CREATE TABLE default.cluster3s1r_local (`id` Int32,`website` String,`wechat` String,`FlightDate` Date,Year UInt16)ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);

在node01节点上创建分布式表

CREATE TABLE default.cluster3s1r_all AS cluster3s1r_local ENGINE = Distributed(test_cluster, default, cluster3s1r_local, rand());

往分布式表cluster3s1r_all插入数据,cluster3s1r_all会随机插入到三个节点的cluster3s1r_local

插入数据

INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(1,'https://www.baidu.com/','clickhouse部署','2022-07-20',2022);
INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(2,'http://www.merryyo.cn/','clickhouse集群','2022-07-20',2022);
INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(3,'http://www.xxxxx.cn/','xxxxx','2022-07-20',2020);

查询分布式表和本地表

select * from cluster3s1r_all;
select * from cluster3s1r_local;

hdp001

clickhouse spring4 druid 配置 clickhouse presto_xml_05

hdp002

clickhouse spring4 druid 配置 clickhouse presto_xml_06

hdp003

clickhouse spring4 druid 配置 clickhouse presto_服务器_07