clickhouse单机安装

1,562 阅读2分钟
  1. 参考文档:

    1. 安装
    2. Server Settings
    3. Restrictions on Query Complexity
  2. 下载地址:download

  3. clickhouse版本:20.3.9.70-2

  4. 需要下载的包:

    clickhouse-client-20.3.9.70-2.noarch.rpm  
    clickhouse-common-static-20.3.9.70-2.x86_64.rpm  
    clickhouse-common-static-dbg-20.3.9.70-2.x86_64.rpm  
    clickhouse-server-20.3.9.70-2.noarch.rpm  
    

安装步骤

  1. clickhouse要求系统支持SSE 4.2指令集,一下命令检查CPU是否支持SSE:

    grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
    
  2. 安装:

    yum install -y ./clickhouse-common-static-20.3.9.70-2.x86_64.rpm
    yum install -y ./clickhouse-common-static-dbg-20.3.9.70-2.x86_64.rpm 
    yum install -y ./clickhouse-server-20.3.9.70-2.noarch.rpm
    yum install -y ./clickhouse-client-20.3.9.70-2.noarch.rpm
    
  3. 配置修改,配置文件为/etc/clickhouse-server/config.xml:

    <!-- 允许远程连接-->
    <listen_host>::</listen_host>
    
    <!-- 数据目录修改,修改为磁盘空间充足的路径,磁盘空间可通过 df -h 命令查看 -->
    <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>
    
    <!-- 日志文件切割,根据需求调整,默认为1000m-->
    <size>100M</size>
    <count>10</count>
    
    <!-- 允许clickhouse打开的最大文件数,默认为maximum,结合linux的ulimit -a 配置, cat /proc/ck_pid/limits查看进行限制,不设置可能会出现open too many files的错误
     	如果不生效确认下/etc/security/limits.d/clickhouse.conf配置是否一致,以及服务是否重启了-->
    <!-- <max_open_files>262144</max_open_files> -->
    
    <!-- 允许的文件导入的错误数(放到<interserver_http_port> 配置项后面)-->
    <input_format_allow_errors_num>100</input_format_allow_errors_num>
    
    <!-- 配置连接超时时间参数 -->
    <keep_alive_timeout>900</keep_alive_timeout>
    <default_session_timeout>600</default_session_timeout>
    
  4. 添加用户,在/etc/clickhouse-server/users.xml中下修改或者添加以下内容(ckadmin为用户名,password中配置密码):

    <profiles>
        <default>
            <!-- 按环境修改单个查询使用的最大内存限制 这里为20G -->
            <max_memory_usage>21474836480</max_memory_usage>
            <!-- 启用未压缩块的缓存,提升短查询速度。警用0或启用1。默认情况下0(禁用) -->
            <use_uncompressed_cache>1</use_uncompressed_cache>
            <!-- join的时候是否使用null,默认为0,在join时如果为空会对空cell赋默认值,要在角色中配置才能生效!!! -->
            <join_use_nulls>1</join_use_nulls>
            
            <!-- 运行查询时可以从表中读取的最大行数 -->
            <max_rows_to_read>100000000</max_rows_to_read>
        </default>
    </profiles>
    
    <users>
        <default>
            <networks incl="networks" replace="replace">
                    <!-- 修改default用户的这一项 禁止远程登录 -->
                    <ip>::1</ip>
            </networks>
        </default>
        <!-- 添加用户 -->
        <ckadmin>
            <password>ckadmin123</password>
    
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
    
            <!-- Settings profile for user. -->
            <profile>default</profile>
    
            <!-- Quota for user. -->
            <quota>default</quota>
        </ckadmin>
    </users>
    
  5. 修改/etc/security/limits.d/clickhouse.conf(可选,默认情况下可不用修改),和/etc/clickhouse-server/config.xml中的max_open_files保持一致,centos7中/etc/security/limits.conf对系统服务不生效,修改这个文件没用,另外/etc/security/limits.d/clickhouse.conf默认是262144已经很大了:

    clickhouse      soft    nofile  262144
    clickhouse      hard    nofile  262144
    
  6. 创建clickhouse用户:

    useradd clickhouse
    # 修改登录密码
    passwd clickhouse
    
    chmod u+w /etc/sudoers
    
    # 加入以下内容
    clickhouse ALL=(ALL)    NOPASSWD:ALL
    
    chmod u-w /etc/sudoers
    
    chown -R clickhouse:clickhouse /etc/clickhouse-*
    chown -R clickhouse:clickhouse /var/lib/clickhouse/
    
  7. 启动服务:

    su clickhouse
    # 启动
    sudo service clickhouse-server start
    # 查看状态
    sudo service clickhouse-server status
    
  8. 验证连接,本机测试后在用远程工具连接测试一下(远程连接的端口为8123):

    clickhouse-client --host localhost --port 9000 --user ckadmin --password ckadmin123
    show databases;
    
    
    SHOW DATABASES
    
    ┌─name────┐
    │ default │
    │ system  │
    └─────────┘
    
    2 rows in set. Elapsed: 0.004 sec. 
    
  9. 确认clickhouse-server进程文件数限制:

    # 查找进程号
    ps -ef | grep clickhouse
    # 查看限制
    cat /proc/ck_pid/limits