Clickhouse安装及使用

一、简介

Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。如果你没有听过Vertica,那你一定听过 Michael Stonebraker,2014年图灵奖的获得者,PostgreSQL和Ingres发明者(Sybase和SQL Server都是继承Ingres而来的), Paradigm4和SciDB的创办者。Michael Stonebraker于2005年创办Vertica公司,后来该公司被HP收购,HP Vertica成为MPP列式存储商业数据库的高性能代表,Facebook就购买了Vertica数据用于用户行为分析。简单的说,ClickHouse作为分析型数据库,有三大特点:一是跑分快,二是功能多,三是文艺范
官网地址:https://clickhouse.yandex/
官方文档:https://clickhouse.yandex/docs/en/single/
 

二、安装配置

2.1 支持的操作系统和硬件环境

只要是Linux,64位都可以。
优先支持Ubuntu,Ubuntu有官方编译好的安装包可以使用。
其次是CentOS和RedHat,有第三方组织altinity编译好的rpm包可以使用。
如果是其他Linux系统,需要自己编译源码。
而且,机器的CPU必须支持SSE 4.2指令集。
[root@localhost ~]# grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported”
SSE 4.2 supported
 

2.2 单机版

2.2.1 联网安装

2.2.1.1 按照官网上的步骤安装(安装环境:64位的Ubuntu 14.04 LTS):

命令1:更新keyserver
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv E0C56BD4

命令2:增加仓库地址
如果是Ubuntu 16.04 Xenial,执行这句

sudo apt-add-repository "deb http://repo.yandex.ru/clickhouse/xenial stable main"

如果是Ubuntu 14.04 Trusty,执行这句

sudo apt-add-repository "deb http://repo.yandex.ru/clickhouse/trusty stable main"

如果是Ubuntu 12.04 Precise,执行这句

sudo apt-add-repository "deb http://repo.yandex.ru/clickhouse/precise stable main"

命令3:更新软件列表
sudo apt-get update

命令4:安装server和client
sudo apt-get install clickhouse-server-common clickhouse-client -y

命令5:修改数据目录
参考运维指南->参数设置->设置数据目录

命令6:启动sever服务
sudo service clickhouse-server start
 

2.2.1.2 Debian-8.8.0-amd64:
root@debian:~# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 E0C56BD4
root@debian:~# vi /etc/apt/sources.list
添加:deb http://repo.yandex.ru/clickhouse/trusty stable main
root@debian:~# apt-get update
root@debian:~# apt-get install clickhouse-server-common clickhouse-client -y
root@debian:~# service clickhouse-server start

注意:可能是因为网络的原因,我在家中执行第一步就成功,在公司却失败了,报下面这个错

gpg: requesting key E0C56BD4 from hkp server keyserver.ubuntu.com
?: keyserver.ubuntu.com: Connection refused
gpgkeys: HTTP fetch error 7: couldn't connect: Connection refused
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

解决:执行以下命令
sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 E0C56BD4
 

2.2.2 离线安装

2.2.2.1 Ubuntu

(1)下载安装介质
安装ClickHouse需要用到3个安装包:
clickhouse-client
clickhouse-server-base
clickhouse-server-common
下载地址:http://repo.yandex.ru/clickhouse/deb/stable/main/

(2)把下载好的三个deb安装包上传到服务器的/tmp目录
clickhouse-client_1.1.54362_amd64.deb
clickhouse-server-base_1.1.54362_amd64.deb
clickhouse-server-common_1.1.54362_amd64.deb

(3)执行安装
sudo dpkg -i clickhouse-server-base_1.1.54362_amd64.deb
sudo dpkg -i clickhouse-server-common_1.1.54362_amd64.deb
sudo dpkg -i clickhouse-client_1.1.54362_amd64.deb

(4)启动clickhouse-sever服务
sudo service clickhouse-server start
 

2.2.2.2 CentOS 6.5(RedHat 6.6也适用)安装方法(Centos 7.2类似)

注意:按照官网https://clickhouse.yandex/docs/en/getting_started/的方法居然成功不了,好像是没更新,repo文件中的网址都找不到
这里写图片描述
(1)下载介质
安装介质可以在这里找到:https://packagecloud.io/altinity/clickhouse(下载最新的54362,因为我按网上的一些旧文章下载54236总是报错)
这里写图片描述
注:我当时是下载了http://repo.red-soft.biz/repos/clickhouse/stable/中的rpm老包,结果总是报这个错,我用yum安装了很多包可依然是报这个错,最终我只能放弃了(后来换为Centos6.8就行,原因就是Centos6.8默认在/usr/lib64目录下就是libbfd-2.20.51.0.2-5.44.el6.so,而Centos6.5的/usr/lib64目录下默认是libbfd-2.20.51.0.2-5.36.el6.so,Redhat6.6默认是libbfd-2.20.51.0.2-5.42.el6.so。即使是yum install -y binutils后却更新为libbfd-2.20.51.0.2-5.47.el6_9.1.so;或者将Centos6.8下的libbfd-2.20.51.0.2-5.44.el6.so传到Centos6.5或Redhat6.6的相应目录下并把原来旧的删除掉还是不行)
[root@localhost clickhouse]# rpm -ivh clickhouse-server-1.1.54236-4.el6.x86_64.rpm

error: Failed dependencies:
        libbfd-2.20.51.0.2-5.44.el6.so()(64bit) is needed by clickhouse-server-1.1.54236-4.el6.x86_64

(2)设置系统参数
CentOS取消打开文件数限制
在/etc/security/limits.conf、/etc/security/limits.d/90-nproc.conf这2个文件的末尾加入一下内容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

CentOS取消SELINUX
修改/etc/selinux/config中的SELINUX=disabled后重启

关闭防火墙
Centos 6.X:
service iptables stop
service ip6tables stop
Centos 7.X:
chkconfig iptables off
chkconfig ip6tables off

(3)安装
Centos 6.5:
rpm -ivh clickhouse-server-common-1.1.54362-1.el6.x86_64.rpm
[root@localhost clickhouse]# rpm -ivh clickhouse-server-1.1.54362-1.el6.x86_64.rpm

error: Failed dependencies:
        libodbc.so.2()(64bit) is needed by clickhouse-server-1.1.54362-1.el6.x86_64

解决:yum install -y unixODBC
rpm -ivh clickhouse-debuginfo-1.1.54362-1.el6.x86_64.rpm
rpm -ivh clickhouse-client-1.1.54362-1.el6.x86_64.rpm
rpm -ivh clickhouse-test-1.1.54362-1.el6.x86_64.rpm(这个rpm包不下载安装也可)

Centos 7.2:
rpm -ivh clickhouse-server-common-1.1.54236-4.el7.x86_64.rpm
[root@localhost clickhouse]# rpm -ivh clickhouse-server-1.1.54236-4.el7.x86_64.rpm

error: Failed dependencies:
        libicudata.so.50()(64bit) is needed by clickhouse-server-1.1.54236-4.el7.x86_64
        libicui18n.so.50()(64bit) is needed by clickhouse-server-1.1.54236-4.el7.x86_64
        libicuuc.so.50()(64bit) is needed by clickhouse-server-1.1.54236-4.el7.x86_64
        libltdl.so.7()(64bit) is needed by clickhouse-server-1.1.54236-4.el7.x86_64
        libodbc.so.2()(64bit) is needed by clickhouse-server-1.1.54236-4.el7.x86_64

解决:yum install -y unixODBC libicudata
rpm -ivh clickhouse-debuginfo-1.1.54236-4.el7.x86_64.rpm
rpm -ivh clickhouse-compressor-1.1.54236-4.el7.x86_64.rpm
rpm -ivh clickhouse-client-1.1.54236-4.el7.x86_64.rpm

注意:在Centos 7.2中安装54362的时候多了个这个依赖缺失
[root@localhost clickhouse]# rpm -ivh clickhouse-server-1.1.54362-1.el7.x86_64.rpm

error: Failed dependencies:
        libcrypto.so.10(OPENSSL_1.0.2)(64bit) is needed by clickhouse-server-1.1.54362-1.el7.x86_64

解决:yum install -y openssl
号外:一开始我用yum安装好openssl后又报这个错咋也解决不了。后来发现我下载的包有问题才4M多,正常应该是13M多,这个外国网址特难下载,下的慢还给我下了一半居然也每个提示真是醉了。
[root@localhost clickhouse]# rpm -ivh clickhouse-server-1.1.54362-1.el7.x86_64.rpm

Preparing...                          ################################# [100%]
Updating / installing...
   1:clickhouse-server-1.1.54362-1.el7################################# [100%]
error: unpacking of archive failed on file /usr/bin/clickhouse;5988c8ac: cpio: read failed - No such file or directory
error: clickhouse-server-1.1.54362-1.el7.x86_64: install failed

rpm -ivh clickhouse-client-1.1.54362-1.el7.x86_64.rpm(剩下的clickhouse-test-1.1.54362-1.el7.x86_64.rpm和clickhouse-debuginfo-1.1.54362-1.el7.x86_64.rpm可以不安装)

(4)启动连接
service clickhouse-server start
clickhouse-client
 

2.2.3 Docker安装方法

参考网址:https://hub.docker.com/r/yandex/clickhouse-server/
启动服务端:
sudo docker run -d –name some-clickhouse-server –ulimit nofile=262144:262144 yandex/clickhouse-server
从本地客户端连接到它:
sudo docker run -it –rm –link some-clickhouse-server:clickhouse-server yandex/clickhouse-client –host clickhouse-server(这行运行完就直接进入到了clickhouse的交互式客户端了)

容器公开了用于HTTP接口的8123端口和用于本地客户端的9000端口。用自定义配置启动服务端实例:
sudo docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server

2.3 集群版(后续完善)

 

2.4 进入交互式客户端

hui@root-virtual-machine:~$ clickhouse-client

ClickHouse client version 1.1.54343.
Connecting to localhost:9000.
Connected to ClickHouse server version 1.1.54343.

:) show databases;

SHOW DATABASES

┌─name────┐
│ default │
│ system  │
└─────────┘

2 rows in set. Elapsed: 0.059 sec.

:) select now();

SELECT now()

┌───────────────now()─┐
│ 2018-03-14 11:23:44 │
└─────────────────────┘

1 rows in set. Elapsed: 0.183 sec. 

启动失败可以查看日志,日志的目录默认为/var/log/clickhouse-server/下。

hui@root-virtual-machine:~$ ls /var/log/clickhouse-server/
clickhouse-server.err.log  clickhouse-server.log  stderr  stdout

 

三、运维指南

3.1 服务起停

停止:
service clickhouse-server stop

启动:
service clickhouse-server start

用clickhouse-client连接本机clickhouse-server服务器:
Clickhouse-client

用本机clickhouse-client连接远程clickhouse-server服务器:
clickhouse-client –host 192.168.3.54 –port 9000 –database default–user default –password “”
 

3.2 参数配置

3.2.1 放开远程访问

vi /etc/clickhouse-server/config.xml
修改服务器的配置文件/etc/clickhouse-server/config.xml,第65行,放开注释即可,修改之后的内容如下:
这里写图片描述

3.2.2 内存限制设置

vi /etc/clickhouse-server/users.xml
这里写图片描述

3.2.3 设置数据目录

vi /etc/clickhouse-server/config.xml
这里写图片描述
 

3.3 常见FAQ

Q1:无法在本地连接ClickHouse,报错:Connecton reject。
A1:clickhouse默认不放开远程访问,可以通过修改配置文件的方式放开。
修改服务器的配置文件/etc/clickhouse-server/config.xml,第65行,放开注释即可。
修改之后,重启服务:
service clickhouse-server stop
service clickhouse-server start

Q2:修改metrika.xml里面的shard或者replica参数之后,数据库无法启动;
A2:如果之前已经建了Replica表,那么必须在修改上述两个参数之前把已经创建好的Replica表删掉,才能去修改,否则会无法启动。报错日志放在/var/log/clickhouse-server/下。
 

四、开发技巧

4.1 登陆

用Dbeaver可以直接连接clickhouse,类似这样:
这里写图片描述
如果是本地连接服务器,必须先放开远程访问的权限。具体看FAQ的“无法在本地连接clickhouse”。
注:Dbeaver在第一次连接clickhouse的时候在能联网的状态下会自动加载clickhouse-jdbc的jar包,我觉的这点非常的好。加载后的存放目录为C:\Users\hui.dbeaver-drivers\maven\maven-central-unsecure\ru.yandex.clickhouse\clickhouse-jdbc-0.1.38.jar
如果你想自己手动下载的话需要用maven编译,下载地址为:https://github.com/yandex/clickhouse-jdbc
 

4.2 建表

CREATE TABLE code_province( \
    state_province        String, \
    province_name         String, \
    create_date           date \
) ENGINE = MergeTree(create_date, (state_province), 8192);

ENGINE:是表的引擎类型,最常用的MergeTree。还有一个Log引擎也是比较常用。MergeTree要求有一个日期字段,还有主键。Log没有这个限制。
create_date:是表的日期字段,一个表必须要有一个日期字段。
State_province:是表的主键,主键可以有多个字段,每个字段用逗号分隔
8192:是索引粒度,用默认值8192即可。
 

4.3 导数

4.3.1 普通的CSV文件导入

cat > code_province.csv << EOF
WA,WA_NAME,2017-12-25
CA,CA_NAME,2017-12-25
OR,OR_NAME,2017-12-25
EOF

–导数
clickhouse-client –query “INSERT INTO default.code_province FORMAT CSV” < code_province.csv
–或者用管道的方式
cat code_province.csv | clickhouse-client –query “INSERT INTO default.code_province FORMAT CSV”
 

4.3.2 特殊的CSV导入(包含回车换行、转义符等)

–建表(sql语句)
CREATE TABLE default.test3 ( id1 UInt32, id2 Float32, name1 String, name2 String, date1 Date, date2 DateTime) ENGINE = Log;

–测试数据(Linux命令)
root@smartbi-virtual-machine:/data/test# cat test3.csv
1,123.456,”abc123”,”abc”“’
123”,2017-05-06,2017-05-06 07:08:09

–执行导入(Linux命令)
clickhouse-client –query “INSERT INTO default.test3 FORMAT CSV” < test3.csv

–查看结果(sql语句)

:) select * from test3;

┌─id1─┬─────id2─┬─name1──┬─name2───────┬──────date1─┬───────────────date2─┐
│   1 │ 123.456 │ abc123 │ abc"\'\n123 │ 2017-05-06 │ 2017-05-06 07:08:09 │
└─────┴─────────┴────────┴─────────────┴────────────┴─────────────────────┘
  • 15
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 安装 ClickHouse 有多种方式,下面介绍两种常见的方式。 ### 方式一:通过包管理器安装 ClickHouse 可以通过包管理器安装,例如在 Ubuntu 上,可以使用以下命令安装: ```bash sudo apt-get install clickhouse-server clickhouse-client ``` 在 CentOS 上,可以使用以下命令安装: ```bash sudo yum install clickhouse-server clickhouse-client ``` ### 方式二:通过二进制文件安装 可以从 ClickHouse 官网下载二进制文件,然后解压缩到指定目录即可安装。以下是安装步骤: 1. 下载 ClickHouse ```bash wget https://builds.clickhouse.tech/master/$(curl https://builds.clickhouse.tech/master/latest_build_url)/ClickHouse-$(curl https://builds.clickhouse.tech/master/latest_build_url | awk -F '/' '{print $(NF)}').tgz ``` 2. 解压 ClickHouse ```bash tar xvfz ClickHouse-*.tgz ``` 3. 运行 ClickHouse ```bash cd ClickHouse-* ./clickhouse-server --config-file=clickhouse-server/config.xml ``` 此时 ClickHouse 就已经安装并运行了。 ### 回答2: ClickHouse 是一款开源的列式存储数据库管理系统,为了高效地处理大规模的分析查询而设计。下面是 ClickHouse安装步骤: 1. 安装依赖: 首先,你需要确保系统中已经安装了以下依赖的软件包:GCC,CMake,在不同的 Linux 发行版中可能需要安装不同的软件包管理工具(例如 apt-get、yum、zypper 等)来安装这些依赖关系。 2. 获取源码: 下载 ClickHouse 的源代码,可以在官方 GitHub 仓库(https://github.com/ClickHouse/ClickHouse)上找到最新版本的源代码。 3. 编译和安装: 进入源代码目录,运行以下命令进行编译和安装: ``` cmake . && make && sudo make install ``` 4. 配置 ClickHouse安装完毕后,在 `/etc/clickhouse-server/config.xml` 中可以找到 ClickHouse 的主要配置文件。你可以根据你的需求对其进行自定义配置,例如设置数据目录、监听的端口等。 5. 启动 ClickHouse: 运行以下命令启动 ClickHouse 服务器: ``` clickhouse-server ``` 6. 验证安装: 运行以下命令连接到 ClickHouse 服务器: ``` clickhouse-client ``` 这将启动 ClickHouse 的命令行客户端,你可以在其中执行 SQL 查询和其他操作来验证安装是否成功。 以上是 ClickHouse 的简单安装步骤,在实际环境中,可能还需要进行一些额外的配置和优化。你可以参考官方文档(https://clickhouse.tech/docs/en/)来获取更多详细信息和帮助。 ### 回答3: ClickHouse是一个用于快速分析大规模数据的开源列式数据库管理系统。下面是ClickHouse安装步骤: 1. 下载ClickHouse的二进制安装包。可以在ClickHouse的官方网站上找到最新的稳定版本下载链接。 2. 解压安装包,并将解压后的文件夹移动到合适的位置,比如/opt/clickhouse。 3. 安装ClickHouse的依赖项。ClickHouse需要依赖于一些其他的软件包,比如zlib、OpenSSL等。可以使用包管理器(如yum或apt-get)来安装这些依赖项。 4. 配置ClickHouse。进入ClickHouse安装目录,可以找到一个叫做clickhouse-server的可执行文件。运行clickhouse-server --config-file=/etc/clickhouse-server/config.xml命令来启动ClickHouse,并使用指定的配置文件。 5. 验证ClickHouse安装是否成功。可以使用clickhouse-client命令连接到ClickHouse,并执行一些简单的查询来验证安装是否成功。 6. 配置ClickHouse的用户和权限。可以使用clickhouse-client来管理ClickHouse的用户和权限,比如创建新用户、授权等操作。 7. 配置ClickHouse的数据存储。可以在配置文件中指定ClickHouse的数据存储路径,默认情况下,ClickHouse将数据存储在/opt/clickhouse/data目录下。 以上就是ClickHouse安装步骤。在安装过程中,如果遇到问题,可以参考ClickHouse的官方文档或者社区进行咨询和求助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小强签名设计

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

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

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

打赏作者

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

抵扣说明:

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

余额充值