当前位置:网站首页>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相关资料分享
边栏推荐
猜你喜欢
Vxlan static centralized gateway
Master公式。(用于计算递归的时间复杂度。)
IPv6 experiment
Preorder, inorder and postorder traversal of binary tree
Decrypt gd32 MCU product family, how to choose the development board?
Day-18 hash table, generic
Sorting, dichotomy
2022 polymerization process test question simulation test question bank and online simulation test
数据库安全的重要性
Leetcode question brushing: binary tree 26 (insertion operation in binary search tree)
随机推荐
【统计学习方法】学习笔记——支持向量机(上)
leetcode刷题:二叉树21(验证二叉搜索树)
Day-19 IO stream
BGP actual network configuration
leetcode刷题:二叉树26(二叉搜索树中的插入操作)
Simple implementation of call, bind and apply
[pytorch practice] use pytorch to realize image style migration based on neural network
ip2long之后有什么好处?
xshell评估期已过怎么办
Day-17 connection set
[difficult and miscellaneous]pip running suddenly appears modulenotfounderror: no module named 'pip‘
@Resource和@Autowired的区别?
[statistical learning methods] learning notes - Chapter 5: Decision Tree
Realize a simple version of array by yourself from
JS to convert array to tree data
.Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
Cookie
图像像素读写操作
处理链中断后如何继续/子链出错removed from scheduling
[statistical learning method] learning notes - logistic regression and maximum entropy model