热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7下安装和运行使用ClickHouse

ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK,与Hadoop,Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yande

ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hadoop, Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++。下面将详细介绍centos环境下的ClickHouse安装与使用。

一、 CentOS7下ClickHouse的安装

1 安装前准备

1.1 软件资源地址

操作系统版本:Centos 7.3
ClickHouse RMP包下载地址:http://repo.red-soft.biz/repos/clickhouse/stable/el7/
安装前需要修改一些centos系统配置。

1.2 检查系统是否支持SSE 4.2指令集

需要验证当前服务器的CPU是否支持SSE 4.2指令集,因为向量化执行需要用到这项特性,检查命令如下:

grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"


如果支持则会显示 SSE 4.2 supported。

1.3 CentOS取消打开文件数限制

在/etc/security/limits.conf、/etc/security/limits.d/90-nproc.conf这2个文件的末尾加入一下内容:

vim /etc/security/limits.conf
在文件末尾添加:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
vim /etc/security/limits.d/90-nproc.conf
在文件末尾添加:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

重启服务器之后生效,用ulimit -n 或者ulimit -a查看设置结果。

1.4 CentOS取消SELINUX

修改/etc/selinux/config中的SELINUX=disabled后重启.

vim /etc/selinux/config
SELINUX=disabled

1.5 关闭防火墙

关闭防火墙,两种方式:
方式一:暂时关闭关闭防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

方式二:关闭防火墙

service iptables stop
service ip6tables stop

注:
在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理 ;如果想要使用 service iptables start/stop 命令,需要下载 iptables-services。在 Centos 7 下下载 iptables-services 时,需要执行以下命令:

systemctl stop firewalld     --关闭防火墙
systemctl mask firewalld
yum install iptables-services   --安装iptables-services
systemctl enable iptables    --设置开机启动
service iptables save       --保存

1.6 安装ClickHouse相关依赖

yum install -y libtool
yum install -y *unixODBC*

2 单机模式安装

2.1 创建安装目录

mkdir -p /opt/software/clickhouse/
cd /opt/software/clickhouse/

2.2 下载ClickHouse安装包

wget -nd -r -l1 -A.rpm --no-parent http://repo.red-soft.biz/repos/clickhouse/stable/el7/

ClickHouse PRM包共五个文件:

clickhouse-client-1.1.54236-4.el7.x86_64.rpm -- clickhouse客户端
clickhouse-server-1.1.54236-4.el7.x86_64.rpm -- clickhouse服务端
clickhouse-compressor-1.1.54236-4.el7.x86_64.rpm --内置提供的压缩工具,可用于数据的正压反解。
clickhouse-server-common-1.1.54236-4.el7.x86_64.rpm
clickhouse-debuginfo-1.1.54236-4.el7.x86_64.rpm

2.3 通过rpm进行ClickHouse安装

方式一:单个安装:

rpm -ivh clickhouse-client-1.1.54236-4.el7.x86_64.rpm
rpm -ivh clickhouse-server-1.1.54236-4.el7.x86_64.rpm
rpm -ivh clickhouse-compressor-1.1.54236-4.el7.x86_64.rpm
rpm -ivh clickhouse-server-common-1.1.54236-4.el7.x86_64.rpm
rpm -ivh clickhouse-debuginfo-1.1.54236-4.el7.x86_64.rpm

方式二:批量安装:

rpm -ivh *.rpm

rpm安装后,会在服务器上生成如下几个文件:

# 默认配置文件位置
root@localhost.localdomain:/ # ls /etc/clickhouse-server
config.xml users.xml
# 上述文件定义了默认数据目录,临时目录位置,日志目录
/var/lib/clickhouse
/var/lib/clickhouse/tmp/
/var/log/clickhouse-server
# 默认启动脚本,注意,这个名字虽然叫server,其实是个shell脚本
/etc/rc.d/init.d/clickhouse-server
root@localhost.localdomain:/ # file /etc/rc.d/init.d/clickhouse-server
/etc/rc.d/init.d/clickhouse-server: POSIX shell script, ASCII text executable, with very long lines
# 最大文件打开数
root@localhost.localdomain:/ # cat /etc/security/limits.d/clickhouse.conf
clickhouse soft nofile 262144
clickhouse hard nofile 262144
# 默认crontab目录(没啥用)
/etc/cron.d/clickhouse-server
# 剩下就是/usr/bin下的二进制文件,但其实都是软链接到了clickhouse这个二进制文件
root@localhost.localdomain:/usr/bin # ll | grep click -i
-rwxr-xr-x 1 root root 63M Sep 20 16:58 clickhouse
lrwxrwxrwx 1 root root 10 Dec 11 17:14 clickhouse-client -> clickhouse
-rwxr-xr-x 1 root root 3.3M Sep 20 16:58 clickhouse-compressor
lrwxrwxrwx 1 root root 10 Dec 11 17:14 clickhouse-server -> clickhouse

2.4 ClickHouse相关数据和权限配置

ClickHouse需要进行一些权限配置,配置文件存放在/etc/clickhouse-server。该目录下有四个配置文件:

重点关注config.xml 和 users.xml,其中:
config.xml 端口配置、本地机器名配置、内存设置等
users.xml 权限、配额设置

users.xml配置参考如下:






10000000000
0
random



10000000000
0
random
1







3600
0
0
0
0
0






967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e

::/0

default
default



967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e

::/0

readonly
default



3 分布式集群安装

3.1 在hadoop103,hadoop104上面执行之前单机的所有步骤

3.2 三台机器修改配置文件config.xml

[root@hadoop102 ~]# vim /etc/clickhouse-server/config.xml
::


[root@hadoop103 ~]# vim /etc/clickhouse-server/config.xml
::


[root@hadoop104 ~]# vim /etc/clickhouse-server/config.xml
::


3.3 在三台机器的etc目录下新建metrika.xml文件

[root@hadoop102 ~]# vim /etc/metrika.xml

添加如下内容:





true

hadoop102
9000




true
hadoop103
9000



true

hadoop104
9000






hadoop102
2181


hadoop103
2181


hadoop104
2181



hadoop104


::/0



10000000000
0.01
lz4



注意:上面标红的地方需要根据机器不同去修改

3.4 三台机器启动ClickServer

首先在三台机器开启Zookeeper
前台启动:

[root@hadoop102 software]# clickhouse-server --config-file=/etc/clickhouse-server/config.xml

后台启动:

[root@hadoop102 software]# nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml >null 2>&1 &

二、 CentOS7下ClickHouse的运行及使用

ClickHouse服务启动:
方式一:service clickhouse-server start
方式二:/etc/init.d/clickhouse-server start

运行 clickhouse-client 命令进入客户端:

clickhouse-client --只支持单行执行
clickhouse-client -m --支持多行执行

clickhouse-client命令行参数:

--host, -h -– 服务端的 host 名称, 默认是 ‘localhost’。 您可以选择使用 host 名称或者 IPv4 或 IPv6 地址。
--port – 连接的端口,默认值: 9000。注意 HTTP 接口以及 TCP 原生接口是使用不同端口的。
--user, -u – 用户名。 默认值: default。
--password – 密码。 默认值: 空字符串。
--query, -q – 非交互模式下的查询语句.
--database, -d – 默认当前操作的数据库. 默认值: 服务端默认的配置 (默认是 default)。
--multiline, -m – 如果指定,允许多行语句查询(Enter 仅代表换行,不代表查询语句完结)。
--multiquery, -n – 如果指定, 允许处理用逗号分隔的多个查询,只在非交互模式下生效。
--format, -f – 使用指定的默认格式输出结果。
--vertical, -E – 如果指定,默认情况下使用垂直格式输出结果。这与 ‘–format=Vertical’ 相同。在这种格式中,每个值都在单独的行上打印,这种方式对显示宽表很有帮助。
--time, -t – 如果指定,非交互模式下会打印查询执行的时间到 ‘stderr’ 中。
--stacktrace – 如果指定,如果出现异常,会打印堆栈跟踪信息。
--config-file – 配置文件的名称。

clickhouse默认是以default用户登录的,拥有读写权限。进入clickhouse-client客户命令后,创建数据库经常会报错。

DB::Exception: Received from localhost:9000, ::1. DB::Exception: Access to file denied: /var/lib/clickhouse/metadata/test.

该问题是由/var/lib/clickhouse/目录的权限导致,需要给clickhouse授权。

chown -R clickhouse /var/lib/clickhouse/

授权后能够正常使用。

参考:
https://blog.csdn.net/weixin_42411818/article/details/108174888
https://www.pianshen.com/article/47341561074/


推荐阅读
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 对于希望在未越狱的iOS设备上修改Hosts文件的苹果用户来说,了解文件的具体位置和操作步骤至关重要。本文将详细介绍如何通过安装最新版本的iTunes来实现这一目标,并提供实用的操作指南,帮助用户轻松完成Hosts文件的编辑。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 将Jar包部署至Linux服务器的详细步骤与注意事项
    将Jar包部署至Linux服务器的详细步骤及注意事项包括:首先使用 `mvn install` 命令进行Jar包的打包构建。接着,需要停止当前正在运行的Jar进程,可以通过 `ps -ef | grep **.jar` 查找对应的进程ID(PID),然后使用 `kill -9 ` 终止该进程。最后,使用 `rm` 命令删除旧的Jar包文件,确保新版本能够顺利部署。在整个过程中,务必确保操作的准确性和安全性,避免对服务器造成不必要的影响。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
author-avatar
最爱靖哥哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有