当前位置:网站首页>ClickHouse(03)ClickHouse怎么安装和部署
ClickHouse(03)ClickHouse怎么安装和部署
2022-07-07 10:44:00 【张飞的猪大数据】
本文会介绍如何安装和部署ClickHouse,官方推荐的几种安装模式,以及安装之后如何启动,ClickHouse集群如何配置等。
简单来说,ClickHouse的搭建流程如下:
- 环境检查,环境依赖安装
- 在对应的服务上下载安装Click House
- 配置config.xml和user.xml,如果搭建Click House集群,还要配置Host文件和FQDN:(Fully Qualified Domain Name)全限定域名
- 启动server
- 连接client
这里先介绍单机的Click House的搭建和启动,下一篇会介绍搭建Click House集群需要配置的东西。
系统要求
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE4.2指令集,因此,除非另有说明,支持它的CPU使用将成为额外的系统需求。
下面是检查当前CPU是否支持SSE 4.2的命令:
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
要在不支持SSE4.2或AArch64,PowerPC64LE架构的处理器上运行ClickHouse,官方介绍是说要通过适当的配置调整从源代码构建ClickHouse,这里就不详细介绍了,有兴趣可以自行阅读源码了解。
安装包下载
官方文档里面,介绍了下面几种安装方式:DEB、RPM、Tgz、Docker、其他环境安装和使用源码安装,本质上都是一样的,我们选择合适安装方式,根据步骤,一步一步来就可以。
一般来说,安装包会包含下面的内容:
- clickhouse-common-static — ClickHouse编译的二进制文件。
- clickhouse-server — 创建clickhouse-server软连接,并安装默认配置服务
- clickhouse-client — 创建clickhouse-client客户端工具软连接,并安装客户端配置文件。
- clickhouse-common-static-dbg — 带有调试信息的ClickHouse二进制文件。
DEB安装包
建议使用Debian或Ubuntu的官方预编译deb软件包。运行以下命令来安装包:
#安装环境配置和安装软件更新
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
/etc/apt/sources.list.d/clickhouse.list
sudo apt-get update
#安装clickhouse
sudo apt-get install -y clickhouse-server clickhouse-client
#启动clickhouse服务
sudo service clickhouse-server start
#启动客户端
clickhouse-client # or "clickhouse-client --password" if you've set up a password.
如果要使用最新的版本,请用testing替代stable,一般来说在测试环境使用,生产环境还是要以稳定为主。
RPM安装包
CentOS、RedHat和所有其他基于rpm的Linux发行版的使用官方预编译rpm包。
首先,您需要添加官方存储库:
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
然后使用yum安装
$ sudo yum install -y clickhouse-server clickhouse-client
然后启动clickhouse
sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
和DEB安装安装方式一样,如果要使用最新的版本,请用testing替代stable,一般来说在测试环境使用,生产环境还是要以稳定为主。
Tgz安装包
如果操作系统不支持安装deb或rpm包,可以使用官方预编译的tgz软件包。可以通过curl或wget从存储库https://packages.clickhouse.com/tgz/下载。
下载后解压缩下载资源文件并使用安装脚本进行安装。以下是一个最新稳定版本的安装示例:
#获取最后一个版本号
LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \ grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
export LATEST_VERSION
#下载对应版本号的tgz安装包
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz"
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz"
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz"
curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz"
#解压压缩包并执行对应的脚本
tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz"
#生成ClickHouse编译的二进制文件
sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh"
tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz"
#生成带有调试信息的ClickHouse二进制文件
sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh"
tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz"
#创建clickhouse-server软连接,并安装默认配置服务
sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh"
#启动服务
sudo /etc/init.d/clickhouse-server start
tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz"
#创建clickhouse-client客户端工具软连接,并安装客户端配置文件
sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh"
Docker安装包
通过Docker安装,需要你搭建docker环境,这里就不过多介绍,默认你已经安装了docker,如果还没有可以自行搜索docker的安装,搭建好docker。
通过docker安装,特别简单,使用官方的镜像运行一个实例就可以,执行下面的命令即可。
# 启动服务器实例
$ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server
# 进入docker内部并且进入clickhouse
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server --entrypoint clickhouse-client clickhouse/clickhouse-server --host clickhouse-server
# OR
$ docker exec -it some-clickhouse-server clickhouse-client
# 通过curl连接到clickhouse,输出'Hello, ClickHouse!'
$ echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --link some-clickhouse-server:clickhouse-server curlimages/curl 'http://clickhouse-server:8123/?query=' -s --data-binary @-
ClickHouse的docker镜像,默认只能通过docker网络访问。
如果需要外网范围,我们也可以通过将容器内部的特定端口映射到主机端口来公开在Docker中运行的ClickHouse或者通过允许容器直接使用主机端口(也允许存档更好的网络性能)。
#将容器内部的特定端口映射到主机端口来公开在Docker中运行的ClickHouse
$ docker run -d -p 18123:8123 -p19000:9000 --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server
$ echo 'SELECT version()' | curl 'http://localhost:18123/' --data-binary @-
#允许容器直接使用主机端口
$ docker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server
$ echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @-
如果需要调整config.xml,可以使用下面的命令。
$ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml clickhouse/clickhouse-server
其他安装方式
ClickHouse还可以使用源码安装,或者手动下载安装包编译,有需要的可以到ClickHouse官网查看文档,这里不做太多篇幅的介绍。
启动
运行如下命令在后台启动服务:
$ sudo /etc/init.d/clickhouse-server start
日志文件将输出在/var/log/clickhouse-server/文件夹。
如果服务器没有启动,检查/etc/clickhouse-server/config.xml中的配置。
clickhouse的配置参数主要分了两个文件,一个是config.xml中的服务器配置参数(Server Settings),另一个是常规配置参数(setttings)。
手动从控制台启动服务器:
$ clickhouse-server --config-file=/etc/clickhouse-server/config.xml
在这种情况下,日志将被打印到控制台,这在开发过程中很方便。
如果配置文件在当前目录中,则不需要指定——config-file参数。默认情况下,它的路径为./config.xml。
ClickHouse支持访问限制设置。它们位于users.xml文件(与config.xml同级目录)。
默认情况下,允许default用户从任何地方访问,不需要密码。可查看user/default/networks。 更多信息,请参见Configuration Files。
启动服务后,您可以使用命令行客户端连接到它:
$ clickhouse-client
默认情况下,使用default用户并不携带密码连接到localhost:9000。还可以使用–host参数连接到指定服务器。
示例:
$ ./clickhouse-client
ClickHouse client version 0.0.18749.
Connecting to localhost:9000.
Connected to ClickHouse server version 0.0.18749.
:) SELECT 1
SELECT 1
┌─1─┐
│ 1 │
└───┘
1 rows in set. Elapsed: 0.003 sec.
:)
当到了这里,你就成功搭建了一个单机版的Click House了。
ClickHouse相关资料分享
边栏推荐
- 《ASP.NET Core 6框架揭秘》样章[200页/5章]
- Day21 multithreading
- Sorting, dichotomy
- leetcode刷题:二叉树20(二叉搜索树中的搜索)
- [statistical learning method] learning notes - support vector machine (I)
- Session
- 2022广东省安全员A证第三批(主要负责人)考试练习题及模拟考试
- 处理链中断后如何继续/子链出错removed from scheduling
- Day-15 common APIs and exception mechanisms
- Connect to blog method, overload, recursion
猜你喜欢
Financial data acquisition (III) when a crawler encounters a web page that needs to scroll with the mouse wheel to refresh the data (nanny level tutorial)
Day-15 common APIs and exception mechanisms
Importance of database security
Preorder, inorder and postorder traversal of binary tree
Leetcode skimming: binary tree 22 (minimum absolute difference of binary search tree)
Leetcode brush question: binary tree 24 (the nearest common ancestor of binary tree)
Master formula. (used to calculate the time complexity of recursion.)
《ASP.NET Core 6框架揭秘》样章[200页/5章]
ICLR 2022 | pre training language model based on anti self attention mechanism
Polymorphism, final, etc
随机推荐
IPv6 experiment
leetcode刷题:二叉树23(二叉搜索树中的众数)
The IDM server response shows that you do not have permission to download the solution tutorial
.Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
Utiliser la pile pour convertir le binaire en décimal
How to use PS link layer and shortcut keys, and how to do PS layer link
test
Day-15 common APIs and exception mechanisms
2022-07-07日报:GAN发明者Ian Goodfellow正式加入DeepMind
Talk about four cluster schemes of redis cache, and their advantages and disadvantages
Sorting, dichotomy
Day-17 connection set
What if does not match your user account appears when submitting the code?
谷歌浏览器如何重置?谷歌浏览器恢复默认设置?
【统计学习方法】学习笔记——第五章:决策树
xshell评估期已过怎么办
【二叉树】删点成林
MySQL importing SQL files and common commands
[疑难杂症]pip运行突然出现ModuleNotFoundError: No module named ‘pip‘
HZOJ #235. Recursive implementation of exponential enumeration