本文源码:GitHub·点这里 || GitEE·点这里

一、集群环境搭建

1、环境概览

ES版本6.3.2,集群名称esmaster,虚拟机centos7。

服务群 角色划分 说明
en-master master 主节点:esnode1
en-node01 slave 从节点:esnode2
en-node02 slave 从节点:esnode3

ElasticSearch基础功能和用法:

在真正海量数据的业务场景中,ElasticSearch搜索引擎都是需要集群化管理的,实时搜素几十亿的数据十分常见。

2、集群配置

配置文件

vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml

主节点配置

# 集群主节点配置
cluster.name: esmaster
node.master: true # 节点名称
node.name: esnode1 # 开发访问
network.host: 0.0.0.0

从节点配置

注意这里两个从节点配置,node.name分别配置为esnode2和esnode3即可。

# 集群名称
cluster.name: esmaster # 节点名称
node.name: esnode2 # 开发访问
network.host: 0.0.0.0 # 主节点IP
discovery.zen.ping.unicast.hosts: ["192.168.72.133"]

内存权限

vim /etc/sysctl.conf

# 添加内容
vm.max_map_count=262144 # 执行
sysctl -p

3、集群启动

添加esroot用户,并授权。

/opt/elasticsearch-6.3.2/bin/elasticsearch

单服务查看

ps -aux |grep elasticsearch

集群状态查看

http://localhost:9200/_cluster/health?pretty

{
"cluster_name" : "esmaster", # 集群名称
"status" : "green", # 绿:健康,黄:亚健康,红:病态
"timed_out" : false, # 是否超时
"number_of_nodes" : 3, # 节点个数
}

二、集群模式测试

1、环境配置

dev环境

配置单个节点,选择任意单节点,进行数据写入测试。

spring:
data:
elasticsearch:
# 集群名称
cluster-name: esmaster
# 单节点
# cluster-nodes: en-master:9300
# cluster-nodes: en-node01:9300
cluster-nodes: en-node02:9300

test环境

链接集群环境,进行数据读取测试。

spring:
data:
elasticsearch:
# 集群名称
cluster-name: esmaster
# 集群节点
cluster-nodes: en-master:9300,en-node01:9300,en-node02:9300

当然所有的操作都可以基于单节点或者集群环境测试。

2、实例对象

基于注解管理数据对象实例。

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document; @Document(indexName = "usersearchindex",type = "usersearch")
public class UserSearch { //Id注解Elasticsearch里相应于该列就是主键,查询时可以使用主键查询
@Id
private Long id;
private String userId;
private String userName;
private String sex;
}

3、操作案例

提供一个数据查询操作和数据写入操作。

import com.esearch.cluster.entity.UserSearch;
import org.springframework.stereotype.Service;
import javax.annotation.Resource; @Service
public class UserSearchServiceImpl implements UserSearchService { @Resource
private UserSearchRepository userSearchRepository ; @Override
public String esInsert(Integer num) {
for (int i = 0 ; i < num ; i++){
UserSearch userSearch = new UserSearch() ;
userSearch.setId(System.currentTimeMillis());
userSearch.setUserId("Name"+i);
userSearch.setUserName("ZSan"+i);
userSearch.setSex("Male"+i);
userSearchRepository.save(userSearch) ;
}
return "success" ;
} @Override
public Iterable<UserSearch> esFindAll (){
return userSearchRepository.findAll() ;
} }

三、集群控制台

这里是基于Kibana组件做的集群控制台。

1、数据列表

在discover面板中可以查看列表数据,也可以继续搜索。

列表查询

列表搜索

2、开发工具

在dev_tools面板中可以执行ElasticSearch相关命令。

查看集群健康状态

GET /_cat/health?v

查询全部数据

GET _search
{
"query": {
"match_all": {}
}
}

四、源代码地址

GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent

推荐阅读:数据源管理系列

序号 标题
01 数据源管理:主从库动态路由,AOP模式读写分离
02 数据源管理:基于JDBC模式,适配和管理动态数据源
03 数据源管理:动态权限校验,表结构和数据迁移流程
04 数据源管理:关系型分库分表,列式库分布式计算
05 数据源管理:PostGreSQL环境整合,JSON类型应用
06 数据源管理:基于DataX组件,同步数据和源码分析
07 数据源管理:OLAP查询引擎,ClickHouse集群化管理
08 数据源管理:Kafka集群环境搭建,消息存储机制详解

数据源管理 | 搜索引擎框架,ElasticSearch集群模式的更多相关文章

  1. Hadoop框架:集群模式下分布式环境搭建

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...

  2. 使用Elasticsearch Operator快速部署Elasticsearch集群

    转载自:https://www.qikqiak.com/post/elastic-cloud-on-k8s/ 随着 kubernetes 的快速发展,很多应用都在往 kubernetes 上面迁移,现 ...

  3. 升级 Elasticsearch 集群数量实战记录

    搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...

  4. 日志分析平台ELK之搜索引擎Elasticsearch集群

    一.简介 什么是ELK?ELK是Elasticsearch.Logstash.Kibana这三个软件的首字母缩写:其中elasticsearch是用来做数据的存储和搜索的搜索引擎:logstash是数 ...

  5. 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知

    摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknow ...

  6. Elasticsearch集群 管理

    第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...

  7. 微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  8. IntelliJ IDEA的下载、安装和WordCount的初步使用(本地模式和集群模式)

    包括: IntelliJ IDEA的下载  IntelliJ IDEA的安装 IntelliJ IDEA中的scala插件安装 用SBT方式来创建工程 或 选择Scala方式来创建工程 本地模式或集群 ...

  9. Spark集群模式概述

    作者:foreyou出处:http://www.foreyou.net/2015/06/22/spark-cluster-mode-overview/声明:本文采用以下协议进行授权: 署名-非商用|C ...

随机推荐

  1. ca70a_c++_重载函数_实参类型转换

    /*ca70a_c++_重载函数_实参类型转换转换等级,详见P290 编译选择哪个函数版本呢?1.精确匹配2.通过类型提升3.通过标准转换4.通过类类型转换参数匹配和枚举类型重载和const形参 vo ...

  2. EduSoho二次开发功能:单词本使用说明

    测试地址:http://shanxue.edusoho.site/ 管理账号:test 管理密码:123456 针对英语或其他语言进行单词展示,索引功能.可以针对单词进行最多三级的分类筛选,以及不限数 ...

  3. Springboot基于assembly的服务化打包

    (1)首先我们编辑 assembly.xml 配置文件,在前文的基础上新增第三方依赖设置(高亮部分),实现将第三方的 jar 包添加到压缩包里的 lib 目录: <?xml version=&q ...

  4. lw_oopc(c语言实现面向过程宏文件)解析

    一:计算结构体成员变量偏移量宏 #ifdef LW_OOPC_USE_USER_DEFINED_OFFSETOF // 有些环境可能不支持,不过,这种情形极少出现 #define LW_OOPC_OF ...

  5. idea 2018版/2019版的破解

    idea 2019版破解的穿越隧道:https://www.jianshu.com/p/09c9afae9a05 idea 2018版破解的穿越隧道:https://www.jianshu.com/p ...

  6. ElasticSearch中的sort排序和filedData作用

    默认情况下,ElasticSearch 会根据算分进行排序: 可以使用 sort API 指定排序的规则: POST /kibana_sample_data_ecommerce/_search { & ...

  7. JavaWeb网上图书商城完整项目-CommonUtils(1生成uuid,2Map转换成JavaBean)

    java工程中添加上面的jar包 CommonUtils类就两个方法: l  String uuid():生成长度32的随机字符,通常用来做实体类的ID.底层使用了UUID类完成: l  T toBe ...

  8. 防火墙识别、负载均衡识别、waf识别

    防火墙识别: 通过发送SYN和ACK数据包并分析回包可以大概判断端口是否被防火墙过滤,对应关系如下表: Python代码实现: #!/usr/bin/python from scapy.all imp ...

  9. 关于SPSS Modeler18 提示:用于定义的观测值的字段的值无效

    今天在做实验的时候,按照实验步骤严格设置了参数,当运行节点的时候,一直提示:用于定义的观测值的字段的值无效,如下图 我把我的流文件发给同学,同学的机器上是可以运行的,但是我的不行,不知道什么原因,有知 ...

  10. python基础扩展(二)

    python基础扩展(二) 常用操作 1.startswith(以什么开始) endswith(y)什么结束 s='taiWanw39dd' print(s.startswith('t')) #意思是 ...