1. ClickHouse安装
1.1. 关于版本和系统的选择
操作系统:Centos-7.7
ClickHouse: YUM 在线安装,20.x
1.2. 安装前的准备
1.2.1. CentOS7 打开文件数限制
在 /etc/security/limits.conf 这个文件的末尾加入以下内容:
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
在/etc/security/limits.d/90-nproc.conf这个文件的末尾加入以下内容:
sudo vim /etc/security/limits.d/90-nproc.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
重启服务器之后生效,用ulimit -n 或者ulimit -a 查看设置结果
ulimit -n
ulimit -a
1.2.2. CentOS7 取消 SELINUX
修改 /etc/selinux/config 中的SELINUX=disabled后重启
vim /etc/selinux/config
SELINUX=disabled
1.2.3. 关闭防火墙
Centos-6 操作:
service iptables stop
service ip6tables stop
Centos-7 操作:
systemctl status firewalld.service
systemctl stop firewalld.service
1.2.4. 安装依赖
yum install -y libtool
yum install -y *unixODBC*
1.3. 安装
具体安装细节看:https://clickhouse.tech/#quick-start
1.4. 卸载 clickhouse
查询是否安装 clickhouse:
rpm -qa|grep clickhouse
卸载 clickhouse:
rpm -e clickhouse-client-20.5.4.40-2.noarch --nodeps
rpm -e clickhouse-server-20.5.4.40-2.noarch --nodeps
rpm -e clickhouse-common-static-20.5.4.40-2.x86_64 --nodeps
删除数据目录:
rm -rf /var/lib/clickhouse
删除集群配置文件:
rm -rf /etc/metrika.xml
删除配置文件:
rm -rf /etc/clickhouse-*
删除日志文件:
rm -rf /var/log/clickhouse-server
删除zookeeper上clickhouse 的数据:
rmr /clickhouse
也可以进行全局寻找:然后执行删除操作
find / -name 'clickhouse'
1.5. 单机模式
ClickHouse的安装可以使用 yum在线安装,也可以使用 rpm 离线安装的方式!
具体信息见官网文档:https://clickhouse.tech/#quick-start
1.5.1. 准备操作
需要验证当前服务器的 CPU 是否支持 SSE 4.2 指令集,因为向量化执行需要用到这项特性:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 no supported"
1.5.2. 安装
依次执行如下命令:
yum install yum-utils -y 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 -y
如果您没法链接互联网,则也可以使用 rpm 的方式来进行离线安装:需要下载的安装包有:
clickhouse-server-20.5.4.40-2.noarch.rpm
clickhouse-common-static-20.5.4.40-2.x86_64.rpm
clickhouse-client-20.5.4.40-2.noarch.rpm
下载地址在:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/ https://packagecloud.io/Altinity/clickhouse
1.5.3. 启动服务端
前台启动
clickhouse-server --conf-file=/etc/clickhouse-server/config.xml
后台启动
nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml 1>~/logs/clickhouse_std.log 2>~/logs/clickhouse_err.log &
启动成功,检查一下
ps -aux|grep clickhouse
netstat -nltp |grep clickhouse
如果报错
解决方案:修改安装目录的权限!,默认使用 clickhouse 用户!命令为:
cd /var/lib/
chown -R root:root clickhouse
默认情况下:/var/lib/clickhouse的group 和owner是:clickhouse:clickhouse
两种解决方式:
1、如果坚持使用root用户启动:把/var/lib/clickhouse 改成:root:root
2、你使用clickhouse用户去启动:chmod -u /bin/bash clickhouse su - clickhouse 切换用户之后在启动
1.5.4. 启动客户端
具体命令:
clickhouse-client
或者
TZ=Asia/Shanghai clickhouse-client
启动情况如下:
1.5.5. 基本使用
创建库:
create database dylandb;
切换库:
use dylandb;
创建表:
create table dylan_test01(id Int8,name String) engine = TinyLog;
查询所有表:
show tables;
插入数据:
insert into dylan_test01 values (1,'dylan'),(2,'clickhouse'),(3,'spark');
查询数据:
select id,name from dylan_test01;
统计查询:
select count(*) as total from dylan_test01;
退出客户端:
quit
1.5.6. 安装成功的核心目录
- /etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
- /var/lib/clickhouse: 默认数据存储目录,通常会修改默认配置路径,将数据保存到大容量磁盘挂的路径。
- /var/log/clickhouse-server:默认日志保存目录,通常会修改路径配置将日志保存到大容量磁盘挂载的路径。
1.5.7. 可执行文件
- clickhouse: 主程序的可执行文件。
- clickhouse-client: 一个指向clickhouse 可执行文件的软连接,供客户端连接使用。
- clickhouse-server: 一个指向clickhouse 可执行文件的软连接,供服务端启动使用。
- clickhouse-compressor: 内置提供的压缩工具,可用于数据的正压反解。
1.6. 集群模式
1.6.1. 在其他的机器上,分别安装上clickhouse
1.6.2. 四台机器修改配置文件config.xml
vim /etc/clickhouse-server/config.xml
先修改tcp_port为9977,因为这个端口和HDFS的冲突了
<tcp_port>9977</tpc_port>
listen_host 表示能监听的主机,表示任意主机都可以访问
<listen_host>::</listen_host>
<!-- <listen_host>::1</listen_host> -->
<!-- <listen_host>127.0.0.1</listen_host> -->
所有节点同步:
scp -r /etc/clickhouse-server/config.xml bigdata02:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/config.xml bigdata03:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/config.xml bigdata04:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/config.xml bigdata05:/etc/clickhouse-server/
1.6.3. 在四台机器的etc目录下新建metrika.xml文件
vim /etc/metrika.xml
<yandex>
<clickhouse_remote_servers>
<!-- 4分片1副本 -->
<d_clickhouse_4shards_1replicas>
<shard>
<!-- 数据自动同步 -->
<internal_replication>true</internal_replication>
<replica>
<host>bigdata02</host>
<port>9977</port>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>bigdata03</host>
<port>9977</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>bigdata04</host>
<port>9977</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>bigdata05</host>
<port>9977</port>
</replica>
</shard>
</d_clickhouse_4shards_1replicas>
</clickhouse_remote_servers>
<!-- zookeeper 自动同步 --> <zookeeper-servers>
<node index="2">
<host>bigdata02</host>
<port>2181</port>
</node>
<node index="3">
<host>bigdata03</host>
<port>2181</port>
</node>
<node index="4">
<host>bigdata04</host>
<port>2181</port>
</node>
</zookeeper-servers>
<!-- 配置文件中macros若省略,则建复制表时每个分片需指定zookeeper路径及副本名称,同一分片 上路径相同,副本名称不同;若不省略需每个分片不同配置 -->
<macros>
<replica>bigdata02</replica>
</macros>
<networks>
<ip>::/0</ip>
</networks>
<!-- 配置压缩 --> <clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
需要根据不同的机器做不同的修改。
所有节点同步:
1.6.4. 启动 切记:要先启动 zookeeper
启动服务端:
检查启动是否OK:
启动客户端:
参数解释:
启动本地多行查询客户端:
scp -r /etc/metrika.xml bigdata02:/etc/
scp -r /etc/metrika.xml bigdata03:/etc/
scp -r /etc/metrika.xml bigdata04:/etc/
scp -r /etc/metrika.xml bigdata05:/etc/
zkServer.sh start
nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml
1>~/logs/clickhouse_std.log 2>~/logs/clickhouse_err.log &
netstat -nltp | grep clickhouse
clickhouse-client --host=... --port=... --user=... --password=... -m
username:用户名 password:密码 ip:服务器IP port:端口 -m:允许多行查询
clickhouse-client --host=localhost --port=9977 -m
clickhouse-client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata
-m
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>
1.6.4. 启动
切记:要先启动zookeeper
zkServer.sh start
启动服务端:
nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml
1>~/logs/clickhouse_std.log 2>~/logs/clickhouse_err.log &
检查启动是否OK:
netstat -nltp | grep clickhouse
启动客户端:
clickhouse-client --host=... --port=... --user=... --password=... -m
参数解释:
username:用户名 password:密码 ip:服务器IP port:端口 -m:允许多行查询
启动本地多行查询客户端:
clickhouse-client --host=localhost --port=9977 -m
clickhouse-client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m
1.6.5. 检查进程
ps -aux |grep clickhouse
2. ClickHouse 的 Client 参数介绍
参数 | 描述 |
--host, -h | 目标服务器名,默认为 localhost |
--port | 目标端口,默认为 9000 |
--user, -u | 连接用户,默认为 default |
--password | 连接用户密码,默认为空字符串 |
--query, -q | 非交互模式下执行的命令 |
--database, -d | 当前操作的数据库,默认选择配置文件配置的值(默认为 default 库) |
--multiline, -m | 如果设定,允许多行查询 |
--multiquery, -n | 如果指定,允许处理由分号分隔的多个查询。只有在非交互式模式工作。 |
--format, -f | 使用指定的默认格式输出结果 |
--vertical, -E | 如果指定,默认使用垂直格式输出结果,等同于 --format=Vertical。 在这种格式中,每个值可在单独的行上,显示宽表时很有用。 |
--time, -t | 如果指定,在 stderr 中输出查询执行时间的非交互式模式下。 |
--stacktrace | 如果指定,如果发生异常,也会输出堆栈跟踪。 |
--config-file | 配置文件的名称,额外的设置或改变了上面列出的设置默认值。 |
默认情况下,配置文件的搜索顺序如下:
./clickhouse-client.xml
~/.clickhouse-client/config.xml
/etc/clickhouse-client/config.xml
3. 设置用户和密码
进入到配置文件目录,修改配置配置文件:
vim /etc/clickhouse-server/users.xml
系统默认使用 default 用户登录 无密码。 现在我们配置用户 bigdata 密码为 bigdata 配置一个用户:你配置的 bigdata 就是用户名, <password> 这个标签中的值,就是密码
<bigdata>
<password>bigdata</password>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</bigdata>
所有节点同步:
scp -r /etc/clickhouse-server/users.xml bigdata02:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/users.xml bigdata03:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/users.xml bigdata04:/etc/clickhouse-server/
scp -r /etc/clickhouse-server/users.xml bigdata05:/etc/clickhouse-server/
启动客户端连接:
clickhouse-client --host=bigdata02 --port=9977 --user=bigdata --password=bigdata -m
4. ClickHouse一些信息总结
配置文件路径:
/etc/clickhouse-server/config.xml
/etc/clickhouse-server/users.xml
日志文件路径:
/var/log/clickhouse-server/
表信息路径、元数据存储目录:
/var/lib/clickhouse/metadata/
表数据路径:
/var/lib/clickhouse/data/
5. 注意事项
clickhouse 既是单独运行的。游离于集群之外。被包含在集群之类的!
表:单机的表,和 分布式的表