基于Docker方式实现Elasticsearch集群

文本环境:Docker + (Elasticsearch6.8.5 * 3)

1、拉取Elasticsearch

docker pull elasticsearch6.8.5

2、创建es挂载目录

创建3个文件夹用于存放es挂载地址:es01、es02、es03

[root@CentOS7 ~]# mkdir /es-cluster
[root@CentOS7 ~]# cd /es-cluster/
[root@CentOS7 es-cluster]# mkdir es01
[root@CentOS7 es-cluster]# mkdir es02
[root@CentOS7 es-cluster]# mkdir es03

3、创建配置文件及数据存放目录

我们以es01 为例,cd es01,增加es01.yml配置文件:

# es01.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 10.211.55.4
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.211.55.4:9300","10.211.55.4:9301","10.211.55.4:9302"]
discovery.zen.minimum_master_nodes: 2

其他两个es配置文件类似:

# es02.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 10.211.55.4
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.211.55.4:9300","10.211.55.4:9301","10.211.55.4:9302"]
discovery.zen.minimum_master_nodes: 2# es03.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 10.211.55.4
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.211.55.4:9300","10.211.55.4:9301","10.211.55.4:9302"]
discovery.zen.minimum_master_nodes: 2

由于默认es实例是1g,太吃内存了,我们修改一下jvm参数,每个es目录下放一个jvm.option文件:

-Xms128m
-Xmx128m

image-20200601153457414

4、创建es容器并启动

docker create --name es01 --net host -v /es-cluster/es01/es01.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-cluster/es01/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /es-cluster/es01/data:/usr/share/elasticsearch/data elasticsearch:6.8.5docker create --name es02 --net host -v /es-cluster/es02/es02.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-cluster/es02/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /es-cluster/es02/data:/usr/share/elasticsearch/data elasticsearch:6.8.5docker create --name es03 --net host -v /es-cluster/es03/es03.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /es-cluster/es03/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /es-cluster/es03/data:/usr/share/elasticsearch/data elasticsearch:6.8.5

创建完docker容器后,启动es容器:

docker start es01 es02 es03

通过 docker ps -a 查看启动情况如图所示,启动失败了,我们通过 docker logs es01 查看启动日志:

data目录访问权限异常,我们给一下权限:

chmod 777 es01/data/ -R 
chmod 777 es02/data/ -R
chmod 777 es03/data/ -R

重新启动一下:

docker start es01 es02 es03

Elasticsearch-head中连接一下集群:

5、Elasticsearch-head安装

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 插件的安装在 LinuxWindows 没什么区别,安装之前确保当前系统已经安装 nodejs 即可。

github地址:https://github.com/mobz/elasticsearch-head

如下是安装命令:

# git 克隆
git clone git://github.com/mobz/elasticsearch-head.git
# 进入下载目录
cd elasticsearch-head
# 安装依赖「需要node缓解」
npm install
# 运行
npm run start

浏览器访问:http://127.0.0.1:9100

6、最后补充

至此,基于DockerElasticsearch简单集群就搭建完了,下一篇我们将通过创建索引实例来介绍分片和副本,以及集群的 故障转移 等知识点。

推荐阅读:

重温Elasticsearch

elasticsearch集群搭建-windows

了解一下Elasticsearch的基本概念

用Elasticsearch代替数据库存储日志方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[js] 不用 + eval Function 实现加法

[js] 不用 eval Function 实现加法 // 使用位运算符实现 function add (a, b) {if (a 0 || b 0) {return a || b;}while (b ! 0) {let i b;b (a & b) << 1;a a ^ i;}return a; };个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&…

基于Docker搭建Gitlab代码存储

关于Docker搭建Gitlab&#xff0c;在19年时就已经在博客发过文章了&#xff0c;今天重新回顾一下。 1、拉取镜像 docker pull gitlab/gitlab-ce默认拉取最新版本&#xff1a; 2、创建Gitlab配置 创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外&#xff…

Java Web开发技术教程入门-JavaBean组件与Servlet

补更&#xff1a;阅战阅勇第7/8/9Days笔记昨天我们了解了JDBC技术的一些日常操作&#xff0c;对于数据库而言&#xff0c;不仅仅的只有“增&#xff0c;删&#xff0c;改&#xff0c;查”。博主觉得最重要的是SQL语句的优化&#xff0c;一个“完美”的SQL语句可以大大减少程序的…

[js] 写一个 document.querySelector 的逆方法

[js] 写一个 document.querySelector 的逆方法 document.queryNode function(node){if(node.id){return # node.id;}if(node.className){return . node.id;}return node.nodeName; };个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但…

读书笔记--Android Gradle权威指南(上)

本篇文章已授权微信公众号 dasu_Android&#xff08;大苏&#xff09;独家发布 最近看了一本书《Android Gradle 权威指南》&#xff0c;对于 Gradle 理解又更深了&#xff0c;但不想过段时间就又忘光了&#xff0c;所以打算写一篇读书笔记&#xff0c;将书中一些我个人觉得蛮有…

[js] 如何判断对象是否属于某个类?

[js] 如何判断对象是否属于某个类&#xff1f; obj.proto class.prototype 可以递归去找obj instanceof class个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

基于Docker搭建私有镜像仓库

通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的&#xff0c;这个在线存储库里的docker镜像可以由任何用户发布和使用&#xff0c;显然这在某些场景下是不适用的&#xff0c;比如某些互金的隐私项目&#xff0c;或者是公司完全处于内网状态不能访问外网&#…

[js] 说说你对js沙箱的理解,它有什么应用场景?

[js] 说说你对js沙箱的理解&#xff0c;它有什么应用场景&#xff1f; 在微前端有用到js沙箱&#xff0c;例如qiankun框架&#xff0c;主应用的js运行和子任务的js运行不会相互影响&#xff0c;是使用es6的proxy来实现的个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后…

volatile理解了吗?

到这里大家感觉自己对volatile理解了吗&#xff1f; 如果理解了&#xff0c;大家考虑这么一个问题&#xff1a;ReentrantLock&#xff08;或者其它基于AQS实现的锁&#xff09;是如何保证代码段中变量&#xff08;变量主要是指共享变量&#xff0c;存在竞争问题的变量&…

Linux|CentOS下配置Maven环境

1、下载maven包 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz如果提示 wget: 未找到命令&#xff0c;请尝试如下指令安装 wget yum -y install wget2、解压下载的maven压缩吧 tar -xzvf apache-maven-3.3.…

[js] 纯函数和函数式编程有什么关系?

[js] 纯函数和函数式编程有什么关系&#xff1f; 函数式编程是一种编程思想&#xff0c;纯函数是这种思想的基本要实现函数式编程&#xff0c;我们所封装的方法应该是抽象的&#xff0c;应该是和外部状态无关系的&#xff0c;也就需要是纯函数的&#xff0c;这样才能保证抽象的…

PHP 超级全局变量

PHP 超级全局变量列表: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION 转载于:https://www.cnblogs.com/alexguoyihao/p/9086857.html

[js] 为什么要用纯函数?

[js] 为什么要用纯函数&#xff1f; 在此之前要先了解什么是纯函数&#xff0c;简单来说纯函数的定义有两个&#xff1a; 1.返回的结果只依赖于传入的参数。 2.执行过程中不产生副作用。 在这里就需要了解到什么是副作用 1.改变了外部变量或者对象属性 2.触发任何外部进程 3.发…

CentOS中安装Docker步骤

1、安装仓库所需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm22、设置yum加速源 yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo3、安装docker-ce yum install docker-ce docker-ce-cli containerd.io4、启动dock…

LeetCode 22. 括号生成(Generate Parentheses)

题目描述 给出 n 代表生成括号的对数&#xff0c;请你写出一个函数&#xff0c;使其能够生成所有可能的并且有效的括号组合。 例如&#xff0c;给出 n 3&#xff0c;生成结果为&#xff1a; ["((()))","(()())","(())()","()(())",&qu…

[js] 使用js实现一个图片剪裁的功能

[js] 使用js实现一个图片剪裁的功能 /** * 裁切图片* param imgUrl 原始图片路径* param x,y,width,height 从点[x, y]开始&#xff0c;将宽度width,高度height的区域裁切下来* tips&#xff1a;需要运行于服务器环境下切图片为同域*/ function clipImage(imgUrl, x, y, width…

Docker+Jenkins+Git+GitLab实现DevOps

先了解一下Jenkins Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;提供了数百个插件来支持构建&#xff0c;部署和自动化任何项目。我们可以使用Jenkins结合常用的版本控制工具(git、svn等)来实现自动部署项目&#xff0c;比如说我们从本地上传代码到G…

[js] 使用for-in语句能保证遍历对象的顺序吗?如果不能那为什么?如果可以那又如何保证?

[js] 使用for-in语句能保证遍历对象的顺序吗&#xff1f;如果不能那为什么&#xff1f;如果可以那又如何保证&#xff1f; Chrome Opera 的 JavaScript 解析引擎遵循的是新版 ECMA-262 第五版规范。因此&#xff0c;使用 for-in 语句遍历对象属性时遍历顺序并非属性构建顺序。…

深入理解Flask中的上下文

https://blog.csdn.net/barrysj/article/details/51519254 1.AppContext类即是应用上下文&#xff0c;可以看到里面只保存了几个变量&#xff0c;其中比较重要的有&#xff1a; app是当前web应用对象的引用&#xff0c;如Flask&#xff1b;还有g&#xff0c;用来保存需要在每个…

毕业两年的大专生程序员工作总结(java后端)

文章目录前言这一年做了啥去年的学习清单今年的学习清单第三年的规划最后唠叨的话前言 如题&#xff0c;这是我毕业第二年的工作总结&#xff0c;对第一年工作总结感兴趣的请戳这《毕业一年的大专生程序员工作总结》&#xff0c;再简单介绍一下我以及这个系列的文章。 关于我…