ClickHouse(03)ClickHouse怎么安装和部署
本文会介绍如何安装和部署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相关资料分享
参考文章:ClickHouse(03)ClickHouse怎么安装和部署
ClickHouse(03)ClickHouse怎么安装和部署的更多相关文章
- ClickHouse(07)ClickHouse数据库引擎解析
目录 Atomic 建表语句 特性 Table UUID RENAME TABLES DROP/DETACH TABLES EXCHANGE TABLES ReplicatedMergeTree in ...
- ClickHouse(10)ClickHouse合并树MergeTree家族表引擎之ReplacingMergeTree详细解析
目录 建表语法 数据处理策略 资料分享 参考文章 MergeTree拥有主键,但是它的主键却没有唯一键的约束.这意味着即便多行数据的主键相同,它们还是能够被正常写入.在某些使用场合,用户并不希望数据表 ...
- 一、MongoDB的下载、安装与部署
1.什么是MongoDB? 它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性.可伸缩性.扩展性于一身的高性能的面向文档的通用数据库. 2.为什么要用Mong ...
- Flume1.9.0的安装、部署、简单应用(含分布式、与Hadoop3.1.2、Hbase1.4.9的案例)
目录 目录 前言 什么是Flume? Flume的特点 Flume的可靠性 Flume的可恢复性 Flume的一些核心概念 Flume的官方网站在哪里? Flume在哪里下载以及如何安装? 设置环境变 ...
- ZooKeeper的安装与部署
本文讲述如何安装和部署ZooKeeper. 一.系统要求 ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境. 表1:ZooKeep ...
- MongoDB的下载、安装与部署方法
1.什么是MongoDB? 它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性.可伸缩性.扩展性于一身的高性能的面向文档的通用数据库. 2.为什么要用Mong ...
- CentOS6安装各种大数据软件 第十章:Spark集群安装和部署
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- MongoDB的下载、安装与部署
1.什么是MongoDB? 它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性.可伸缩性.扩展性于一身的高性能的面向文档的通用数据库. 2.为什么要用Mong ...
- ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse核心架构设计是怎么样的?ClickHouse核心架构模块分为两个部分:ClickHouse执行过程架构和ClickHouse数据存储架构,下面分别详细介绍. ClickHouse执 ...
随机推荐
- SQLAlchemy加载数据到数据库
SQLAlchemy加载数据到数据库 最近在研究基于知识图谱的问答系统,想要参考网上分享的关于NLPCC 2016 KBQA任务的经验帖,自己实现一个原型.不少博客都有提到,nlpcc-kbqa训练数 ...
- Jx.Cms开发笔记(五)-文章编辑页面标签设计
标签页的样子 设计思路 与其他输入框一样,存在一个Label标签,由于这里不像其他输入框一样可以直接使用Row标签,所以这里需要额外增加. 使用Tag组件显示所有的标签,我们在Blazor 组件库 B ...
- JavaWeb和WebGIS学习笔记(四)——使用uDig美化地图,并叠加显示多个图层
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Python学习笔记: pip install 常见错误汇总
本机环境RHEL8, Python3.9 pip install: 无法安装最新版本的包 在pypi上查看pkg的页面,因为有些pip包的版本对特定的python版本有要求 pip install e ...
- Linux内核浅入浅出
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 01 前言 拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是Linux内核是什么,它用于什么?且听 ...
- 那些我懵懵懂懂的js
1.this 如果说this是代表当前对象,而js中,除原始值(var str = "Leonie",值Leonie是不能改变的,它就是一个字符串,如var num = 4, 4也 ...
- web框架的本质、MVC框架MTV框架的介绍
1.web框架的本质 所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请 ...
- 【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connection reset by peer"
问题描述 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connecti ...
- React 与 Hooks 如何使用 TypeScript 书写类型?
React 与 Hooks 如何使用 TypeScript 书写类型? 本文写于 2020 年 9 月 20 日 函数组件与 TS 对于 Hooks 来说是不支持使用 class 组件的. 如何在函数 ...
- 4.0 vue绑定dom属性和函数的方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...