clickhouse集群安装
单机安装
- yum install yum-utils
- rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPG
- yum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.repo
- sudo yum install clickhouse-server clickhouse-client
配置文件
vim /etc/clickhouse-server/config.xml
<remote_servers><clickhouse_3shards_1replicas><shard><internal_replication>true</internal_replication><replica><host>10.0.5.153</host><port>9000</port></replica></shard><shard><replica><internal_replication>true</internal_replication><host>10.0.5.154</host><port>9000</port></replica></shard><shard><internal_replication>true</internal_replication><replica><host>10.0.5.155</host><port>9001</port></replica></shard></clickhouse_3shards_1replicas></remote_servers><zookeeper><node><host>10.0.5.37</host><port>2181</port></node><node><host>10.0.5.37</host><port>2182</port></node><node><host>10.0.5.37</host><port>2183</port></node>
</zookeeper><macros><shard>01</shard><replica>10.0.5.153</replica>
</macros><macros><shard>02</shard><replica>10.0.5.154</replica>
</macros><macros><shard>03</shard><replica>10.0.5.155</replica>
</macros>
使用scp命令将配置文件传到两外两台机器上:
scp /etc/clickhouse-server/config.xml root@10.0.5.153:/etc/clickhouse-server/config.xml
scp /etc/clickhouse-server/config.xml root@10.0.5.154:/etc/clickhouse-server/config.xml
clickhouse安装位置
- 配置文件: /etc/clickhouse-server/config.xml
- data存储: /var/lib/clickhouse/
开启zk集群
这个参考我之前发布的下载资源,windows下直接使用cmd即可打开zk集群服务。
启动Server(有点坑)
- 指明配置文件的情况下,如果是root账号,要使用 sudo -u clickhouse /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml,否则就提示 Application: DB::Exception: Effective user of the process (root) does not match the owner of the data (clickhouse). Run under ‘sudo -u clickhouse’。一旦你首次用root账号指定配置文件启动的,启动错了,那么再用systemctl就无法启动了。
需要修改文件组:
- chgrp clickhouse clickhouse -R
- chgrp clickhouse /var/lib/clickhouse -R
- chown clickhouse /var/lib/clickhouse -R
- chown clickhouse /var/log/clickhouse-server -R
- chgrp clickhouse /var/log/clickhouse-server -R
客户端连接
# -m是多行模式,分号+回车执行当前语句。
clickhouse-client --port=xxx --host=xxx --user=xxx --password=xxx -m
查看集群是否搭建成功
基础SQL
-- 集群上创建数据库
create database a9_mixed on cluster clickhouse_3shards_1replicas;-- 在已有数据的表上创建分布式表,这里t_log_goods是机器上已经存在数据的表。
create table t_log_goods_all on cluster clickhouse_3shards_1replicas [as a9_mixed.t_log_goods] engine = Distributed(clickhouse_3shards_1replicas,a9_mixed,t_log_goods);-- show create table 的语句为:
CREATE TABLE a9_mixed.t_log_goods_all
(`val` Int32,`new` Int32,`flag` Int32,`rname` String,`optime` Int32,`level` Int32,`goodsid` Int32,`old` Int32,`rid` Int64,`platform` Int32,`sid` Int32,`quality` Int32,`uid` Int32,`guid` Int64,`id` Int32,`sdk` String,`power` Int64,`seri` Int32,`goodstype` Int32
)
ENGINE = Distributed('clickhouse_3shards_1replicas', 'a9_mixed', 't_log_goods');
-- 重新在机器上执行 这样子只会在执行sql的机器上新建名字为t_log_goods_all的表,其他机器并不会新建表。-- 删除分布式表
drop table t_log_goods_all on cluster clickhouse_3shards_1replicas;-- 新建本地表,然后对应一张分布式表
CREATE TABLE t_local on cluster clickhouse_3shards_1replicas
(EventDate DateTime,CounterID UInt32,UserID UInt32
) ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate);-- 对应的分布式表
CREATE TABLE t_logical_Distributed on cluster clickhouse_3shards_1replicas
(EventDate DateTime,CounterID UInt32,UserID UInt32
)
ENGINE = Distributed(clickhouse_3shards_1replicas, test01, t_local, CounterID) ;-- 向分布式表中写入数据,分布式表最终也是把数据分散写入对应的分片。
INSERT INTO t_logical_Distributed VALUES ('2021-01-16 00:00:00', 5, 5),('2021-02-10 00:00:00',6, 6),('2021-03-10 00:00:00',4, 4);
相关文章:

clickhouse集群安装
单机安装 yum install yum-utilsrpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPGyum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.reposudo yum install clickhouse-server clickhouse-client 配置文件 vim /etc/clickhouse-serve…...
Zookeeper入门
Zookeeper入门概述特点结构应用场景选举机制节点信息监听原理写数据原理分布式锁概述 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper 从设计模式的角度来开:是一个基于观察者模式设计的分布式服务管理框架…...

JavaScript
BOM核心对象docunmentBOM核心对象windowBOM包含着DOMF12即可打开浏览器控制台navigator(浏览器版本)、history(浏览器历史记录),location(地址信息)、screen(屏幕相关)JS输出形式:浏览器输出:wi…...
.gitignore 常用忽略规则
.gitignore常用忽略语法 1、空格不匹配任意文件,可作为分隔符,可用反斜杠转义 2、以井号#开头的文件标识注释,可以使用反斜杠进行转义 3、以斜杠/开头表示目录 4、以星号*通配多个字符 5、以问号?通配单个字符 6、以方括号[]包含单个字符的…...

Vue路由 —— vue-router
在上一篇内容讲到关于单页面组件的内容,同时也附上补充讲了关于单页面(SPA)和多页面(MPA)之间的优缺点,在本篇目当中就要来讲这个路由(vue-router),通过路由来实现页面的…...

Java Jackson TypeReference获取泛型类型信息【泛型】
Jackson是一个比较流行的Json序列化和反序列化框架。本文以Jackson为例介绍TypeReference实现涉及泛型的反序列化,及TyperReference的实现原理。对于获取泛型类型信息的场景,TypeReference是一个可以参考的通用解决方案。 Jackson ObjectMapper的readVa…...
Python 核心笔记(二)
特殊规则及特殊字符:#号(#) : 注释换行(\n) : 换行反斜线(\) : 继续上一行分号(;) : 两个语句连在一行冒号(:) : 将代码块的头和体分开不同的缩进…...

Hadoop集群搭建
文章目录一、运行环境配置(所有节点)1、基础配置2、配置Host二、依赖软件安装(101节点)1、安装JDK2、安装Hadoop(root)3、Hadoop目录结构三、本地运行模式(官方WordCount)1、简介2、本地运行模式(官方WordCount)四、完全分布式运行…...

每个前端都应该掌握的7个代码优化的小技巧
本文将介绍7种JavaScript的优化技巧,这些技巧可以帮助你更好的写出简洁优雅的代码。 1. 字符串的自动匹配(Array.includes) 在写代码时我们经常会遇到这样的需求,我们需要检查某个字符串是否是符合我们的规定的字符串之一。最常…...

金三银四丨黑蛋老师带你剖析-二进制漏洞
作者:黑蛋二进制漏洞岗上篇文章我们初步了解了一下简历投递方式以及二进制方向相关逆向岗位的要求,今天我们就来看看二进制漏洞相关的岗位,当然,漏洞岗位除了分不同平台,也有漏洞挖掘岗和漏洞分析利用岗。同样…...
pgsql-用户角色组角色创建和维护
pgsql-用户&角色&组角色创建和维护 环境 win10pgsql 14.2 相关文档 PostgreSQL 14.1 手册 create 语法 grant 授权语法 revoke 撤回语法 alter 更新语法 用户、角色、组角色概念和区别 早期版本(8.1之前)中用户、组、角色是不同的概念&#…...

算法与数据结构理解
目录1、数据结构与算法1.1 定义1.2 常见数据结构1.3 常用算法2、插入排序3、希尔排序4、归并排序1、数据结构与算法 1.1 定义 数据结构:是计算机中存储、组织数据的方式。具有一定逻辑关系,应用某种存储结构,并且封装了相应操作的数据元素集…...
常见的C++软件异常场景分析与总结
根据排查软件异常问题的经历和经验,简单的总结一下软件异常的场景和原因,以供参考。 1、野指针问题 可能是指针没初始化就使用。也有可能是指针指向的内存已经被释放,但是指针没置为NULL,一旦访问这样的指针就会出问题。在很多情…...

【虹科公告】好消息!云展厅开放时间长达1年,2023年不限次云观展
云展厅开放通知 2023年,【虹科赋能汽车智能化云展厅】将持续开放,开放时间长达一年,开放期内,均可进入观展,没有次数及观看时长限制,欢迎大家随时进入云展厅观展。 虹科赋能汽车智能化云展厅 聚焦前沿技…...

Linux破解root密码
✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Linux操作…...

2023年信息与通信工程国际会议(JCICE 2023)
2023年信息与通信工程国际会议(JCICE 2023) 重要信息 会议网址:www.jcice.org 会议时间:2023年3月17-19日 召开地点:成都 截稿时间:2023年2月10日 录用通知:投稿后2周内 收录检索:EI,Scopus 会议简介…...

ASP.NET Core+Element+SQL Server开发校园图书管理系统(完)
随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP.NET Core也应运而生。本文主要基于ASP.NET CoreElementSql Server开发一个校园图书管理系统为例,简述基于MVC三层架构开发的常见知识点,本系列共五篇文章&a…...
elasticsearch 批量写入(Python版).md
1. 插入数据 现在我们如果有大量的文档(例如10000000万条文档)需要写入es 的某条索引中,该怎么办呢? 1.1 顺序插入 import time from elasticsearch import Elasticsearches Elasticsearch()def timer(func):def wrapper(*arg…...

【排序算法】快速排序(Quick Sort)
快速排序(Quick Sort)使用分治法算法思想。快速排序介绍它的基本思想是: 选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排…...

SpringIOC之创建Bean的核心方法doGetBean
概述面向资源(XML、Properties)、面向注解定义的 Bean 是如何被解析成 BeanDefinition(Bean 的“前身”),并保存至 BeanDefinitionRegistry 注册中心里面,实际也是通过 ConcurrentHashMap 进行保存。Spring…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...