IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> elasticsearch7.0.1集群搭建(最后有ES6.7的配置) -> 正文阅读

[大数据]elasticsearch7.0.1集群搭建(最后有ES6.7的配置)

**

ES集群搭建

**:
说明:首先要讨论搭建几个集群,集群搭建很简单,只需要配置做好就ok;
一 : 在搭建集群之前,我们首先要了解一个es中的相关内容

  1. cluster : 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
  2. shards : 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

二. 部署环境:
采用三台CentOS7.3部署Elasticsearch集群,部署Elasticsearch集群就不得不提索引分片,以下是索引分片的简单介绍。
系统 节点名 IP
CentOS7.3 el01 172.182.68.11
CentOS7.3 el02 172.182.68.12
CentOS7.3 el03 172.182.68.13
ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。
三. 部署Elasticsearch集群
1.安装JDK
Elasticsearch是基于Java开发是一个Java程序,运行在Jvm中,所以第一步要安装JDK
es7.0以上都需要jdk1.8以上
tar -zxvf jdk-8u161-linux-x64.tar.gz

vim /etc/profile

添加如下内容:

export JAVA_HOME=/home/cloud/usr/jdk  #自己解压的jdk路径
export  JAVA_HOME
PATH=${JAVA_HOME}/bin:$PATH
export PATH

重启机器或者执行命令:

source /etc/profile

2.下载elasticsearch

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-linux-x86_64.tar.gz

解压

tar -zxvf elasticsearch-7.0.1-linux-x86_64.tar.gz

3.配置目录
安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径
vim /home/cloud/elasticsearch/elasticsearch.yml # els的配置文件
vim /home/cloud/elasticsearch/jvm.options # JVM相关的配置,内存大小等等

4.创建用于存放数据与日志的目录

mkdir logs
mkdir data

5.集群配置

vim /config/elasticsearch.yml
cluster.name:  my-elasticsearch                                 # 集群名称
node.name:  es01                                                       # 节点名称,用于标清
path.data:  /home/cloud/es/data                                 # 数据的默认存放路径
path.logs:   /home/cloud/es/logs                                 # 日志的默认存放路径

network.host:  172.182.68.11                                    # 当前节点的IP地址
http.port:  9200                                                          # 对外提供服务的端口,
transport.tcp.port: 9300											  # 9300为集群服务的端口

discovery.seed_hosts:
   - 172.182.68.11
   - 172.182.68.12
   - 172.182.68.13
cluster.initial_master_nodes: 
    -  es01
   	-  es02
   	-  es03

discovery.zen.minimum_master_nodes: 节点数/2 向下取整加1

#剩下两台服务器的配置 , 只需要改 node.name: es02和node.name: es03 , 然后network.host: 172.182.68.112和network.host: 172.182.68.13 , 剩下配置不动即可(如下是某台服务器中的es的elasticsearch.yml配置,其他两台仿照即可)

集群设置1
集群设置1在这里插入图片描述
6.JVM配置
由于Elasticsearch是Java开发的,所以可以通过/etc/config/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。

vim  /config/jvm.options         # JVM最大、最小使用内存
-Xms48g                                                
-Xmx48g

7.es需要的系统配置(必须设置的)

 /etc/security/limits.conf
 增加
* soft    nofile  65536
* hard    nofile  65536
* soft    nproc   10240
* hard    nproc   10240
vim /etc/sysctl.conf  增加
vm.max_map_count=262144

一定要记得重启系统

8.启动Elasticsearch

./bin/elasticsearch
后台启动
./bin/elasticsearch -d -p pid
后台启动(nohub)
nohup ./bin/elasticsearch &

9.测试
Elasticsearch直接听过了http接口,所以直接使用curl命令就可以查看到一些集群相关的信息。
可以使用curl命令来获取集群的相关的信息,
curl -XGET ‘http://172.182.68.11:9200/_cat/nodes?pretty’
网页访问
172.182.68.11:9200/_cat/nodes?pretty

10.跨域访问(只需要在一台服务器山配置即可.使用此台服务器进行跨域访问)

 在vim /config/elasticsearch.yml
 #开启跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: /.*/ 

11.由于项目甲方要求,将buckets设置为100万
查看es的buckets的http://192.168.12.161:9200/_cluster/settings
{
persistent: {
search: {
max_buckets: “10000”
}
},
transient: { }
}

因为es的buckets的默认值是10000,不满足项目要求,项目要求要设置为100万,所以需要修改buckets的值:为100万
修改es的buckets值大小
curl -X PUT “192.168.12.161:9200/_cluster/settings?pretty” -H ‘Content-Type: application/json’ -d’{“persistent” : {“search.max_buckets” : 1000000}}’
12. 设置es的查询条数超过一万条
当用elasticsearch进行深度分页查询时的size-from大于10000的时候,就会报错“”,
官方推荐是scroll查询返回结果是无序的不满足业务需求,所以还是通过设置最大返回结果数来达到我们的目的
然后我们可以通过以下方法设置:
第一种:
curl -H “Content-Type: application/json” -XPUT http://192.168.12.161:9200/*/_settings -d ‘{ “index” : { “max_result_window” : 999999999}}’
第一种:curl -XPUT http://127.0.0.1:9200/_settings -d '{ “index” : { “max_result_window” : 100000000}}‘
第二种:在config/elasticsearch.yml文件中的最后加上index.max_result_window: 100000000,但是这种方法要注意在最前面加上空格

13.配上一个centos6.7版本的elasticsearch.yml的配置图
在这里插入图片描述
在这里插入图片描述
跟elasticsearch7.0.1的配置唯一的不同处:

discovery.zen.ping.unicast.hosts: ["192.168.12.148","192.168.12.149","192.168.12.150","192.168.12.151"]

使用elasticsearch7.3版本在一台主机上部署多个实例组建集群
https://blog.csdn.net/weixin_30381793/article/details/101661971
https://www.cnblogs.com/sanduzxcvbnm/p/11433741.html
添加链接描述

13. 垃圾回收机制:

-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly

改为:

-XX:+UseG1GC
-XX:MaxGCPauseMillis=50

14.安装elasticsearch分词器
将elasticsearch-analysis-ik-6.7.1.zip 放到elasticsearch_19200/plugins下面,然后

unzip elasticsearch-analysis-ik-6.7.1.zip analysis-ik

15. Elasticsearch 设置节点

discovery.zen.minimum_master_nodes: nodes/2 向下取整 +1

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:40:01  更:2021-08-12 16:42:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:12:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码