CrateDB初探(一):CrateDB集群的Docker部署
CrateDB是一个分布式SQL数据库,可以轻松实时存储和分析大量机器数据.
"CrateDB底层沿用了ElasticSearch的源码,支持SQL语法,比ElasticSearch的使用更友好,也解决了ES不能多表join的问题......"
— — 携程技术公众号
环境:Ubuntu 18.04
Docker 19.03.6
参考:官方文档 RUN CRATEDB ON DOCKER
在Docker上运行CrateDB
开发模式(单节点)
快捷的启动方式
或者,使用自定义的配置文件启动
其中宿主机上的crate.yml (参考:https://www.cnblogs.com/rongfengliang/p/9428868.html)
集群搭建
与官方文档相比,增加了-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: 集群中期望的节点数,以及集群状态的恢复需要多少个节点恢复
这里翻译和理解可能有偏差,把官方文档贴出
非容器方式
安装
下载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
相关文章