CrateDB初探(一):CrateDB集群的Docker部署

2022-02-25 00:00:00 集群 文档 节点 启动 官方

CrateDB是一个分布式SQL数据库,可以轻松实时存储和分析大量机器数据.

"CrateDB底层沿用了ElasticSearch的源码,支持SQL语法,比ElasticSearch的使用更友好,也解决了ES不能多表join的问题......"

— — 携程技术公众号

环境:Ubuntu 18.04

Docker 19.03.6

参考:官方文档 RUN CRATEDB ON DOCKER

在Docker上运行CrateDB
开发模式(单节点)
快捷的启动方式

可能遇到的问题:

vm.max_map_count太低,处理方法见log提示

或者,使用自定义的配置文件启动

其中宿主机上的crate.yml (参考:https://www.cnblogs.com/rongfengliang/p/9428868.html

集群搭建

docker-compose.yml

与官方文档相比,增加了-Cnode.name (实测否则无法组成集群,官方文档对node.name的解释:The name of the node. If no name is configured a random one will be generated.)

参数简介:

node.name: 定义节点名称,用于选举主节点
discovery.seed_hosts: 列出了集群中的其他hosts,因为集群中节点启动顺序不一定,所以log中可能抛出异常,终这些节点会正常运行并互联
cluster.initial_master_nodes: 定义了哪些节点参加的master选举,如果不设置,那么此节点期望加入一个已运行的集群
gateway.expected_nodes and gateway.recover_after_nodes: 集群中期望的节点数,以及集群状态的恢复需要多少个节点恢复
这里翻译和理解可能有偏差,把官方文档贴出

非容器方式

安装

官方称之为Basic CrateDB Tarball Installation

前提:需要安装JAVA11或以上

下载tar文件:https://cdn.crate.io/downloads/releases/

我下载了4.1.2



下载后直接解压,cd到安装目录下直接运行 ./bin/crate(真是简单粗暴)

配置文件: $CRATE_HOME/config/crate.yml


为上述三个节点新建三个目录用于放data、logs,并把$CRATE_HOME/config/下crate.yml (稍后再修改) 、log4j2.properties两个文件分别复制到节点目录。其中一个节点的目录如下:


node2和node3的crate.yml类似。注意:node3不参与master,所以node3不需要initial_master_nodes这个参数 (当然都参与master选举是可以的,这里只是为了测试)

另外,discovery.seed_hosts参数中端口为transport.tcp.port(节点间通信端口),不是http.port

启动节点:依次启动node1,node2,node3。

在启动命令中增加path.conf参数,表示节点的配置文件的目录(在crate.yml中path.conf不用配置)

官方文档:

Getting Started With CrateDB for beginner documentation.

CrateDB Guide for high-level documentation, including overviews, best practices, and tutorials.

CRATEDB REFERENCE a low-level reference manual.
————————————————

原文链接:https://blog.csdn.net/gxf1027/article/details/104789548

相关文章