elasticsearch-7.3.2集群搭建

一、简述

1、es介绍

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch应用广泛,常用用于大数据、云计算中,它包含如下特性:

  • 分布式高可用搜索引擎:每个索引都可以配置分片的数量。每个分片都有一个或多个副本且分片都支持读写
  • 多租户:支持多个索引以及索引级配置,如碎片数、索引存储等。
  • 提供各种API:包括HTTP Restful API,原生Java API。 Restful风格,容易上手
  • 面向文档:不需要预先定义架构,可以通过定义模式来定制索引过程。
  • 可靠,异步写入,可长期持久存储。
  • 即刻读取,近实时性强:数据更新在Elasticsearch中几乎是完全同步的
  • 建在lucene之上:每个分片都是一个全完整的lucene索引,Lucene的所有功能都很容易通过简单的配置/插件看到
  • 操作具有一致性:单文档级操作具有原子性、一致性、独立性和持久性。

2、es7.X变化

Elasticsearch 7.0开始 默认自带 JDK,不用再为安装什么版本的 JDK和环境冲突而苦恼了,下载安装即可使用,包大了安装包200MB+,增加的正是JDK的大小。

默认节点名称为主机名 不过仍然可以在elasticsearch.yml中显式配置,实际业务场景中,以主机名区分不同节点比随机起名字更便于甄别,不易混淆。

默认分片数改为number_of_shards值为1,不再是5

Elasticsearch 7.0 没有 Type 了,包括 API 层面的

hits.total返回对象,而非仅结果值

Kibana 支持全局开启“黑暗”模式

查询相关性速度优化,Weak-AND算法在Term Query查询场景有3700%的性能提升

间隔查询(Intervals queries)

引入新的集群协调子系统

升级 Elasticsearch 7,0 ,不再内存溢出

时间戳纳秒级支持,提升数据精度

 

二、下载

https://www.elastic.co/cn/downloads/elasticsearch下载,这里下载linux的tar版

 三、安装与配置

1、准备机器

iphostes
192.168.1.73node031
192.168.1.74node041
192.168.1.75node051

2、下载安装

(1)建立安装目录

在node03、node04、node05分别执行命令$ mkdir /opt/es,创建es目录,做为es文件的安装目录

(2)把下载的es压缩包上传到node03下的 /opt/es

(3)在node03上解压 $ tar -zxvf elasticsearch-7.3.2-linux-x86_64.tar

(4)在每个节点创建用户es并设置密码

 创建用户 $ useradd es   设置密码$ echo "123456" | passwd --stdin es

(5)给es用户赋权限 $ chown -R es:es elasticsearch-7.3.2

(6)分发node04、node05的/opt/es下

   $ scp -r elasticsearch-7.3.2 node04:/opt/es
   $ scp -r elasticsearch-7.3.2 node05:/opt/es

3、配置elasticsearch.yml

node03的elasticsearch.yml的简单配置如下:

# ---------------------------------- Cluster -----------------------------------
cluster.name: es-cluster #集群名字
# ------------------------------------ Node ------------------------------------
node.name: node05  #节点名
# ---------------------------------- Network -----------------------------------
network.host: 192.168.1.73
http.port: 9200   #默认9200
# --------------------------------- Discovery ----------------------------------
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node03", "node04", "node05"]

# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.1.73:9300", "192.168.1.74:9300", "192.168.1.75:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#解决内核版本过低且不升级内核不报错问题
bootstrap.system_call_filter: false

#增加参数,使head插件可以访问es
http.cors.enabled: true  #插件运行时候,必须设置为true
http.cors.allow-origin: "*"   #允许所有来源外部访问

node04、node05修改如下两项即可

 4、可视化插件elasticsearch-head安装

(1)elasticsearch-head安装

下载https://github.com/mobz/elasticsearch-head,这里下载到/opt/es/elasticsearch-7.3.2/路径下

 在该路径下解压$ unzip elasticsearch-head-master.zip

为了方便,重命名 $ mv elasticsearch-head-master  head

这里需要说明的是es5以上版本安装head插件需要安装node和grunt,grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等工作,elasticsearch-head插件就是通过grunt启动的

(2)node安装

去下载$ wget https://npm.taobao.org/mirrors/node/v9.9.0/node-v9.9.0-linux-x64 .tar.gz

解压 $ tar -zxvf node-v9.9.0-linux-x64.tar.gz  -C  /usr/local/

重命名 $ mv /usr/local/node-v9.9.0-linux-x64  /usr/local/nodejs

配置环境变量$ vim /etc/profile  使生效$ source /etc/profile

NODE_HOME=/usr/local/nodejs
PATH=$PATH:$NODE_HOME/bin
NODE_PATH=$NODE_HOME/lib/node_modules
export NODE_HOME PATH NODE_PATH

 (3)grunt安装

  • npm安装grunt

$ npm install -g grunt-cli 成功如下

  •  依赖安装

进入到插件目录/opt/es/elasticsearch-7.3.2/head下,进行npm依赖安装 $ npm install

可以看到,githup安装由于读取超时而失败,换个方式安装,用户cnpm安装,接下来安装cnpm命令

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm 安装成功,执行$ cnpm install 来安装依赖,从而代替npm install安装失败,成功如下

  • 修改grunt配置

依赖完成后,修改head插件目录下grunt启动文件,修改 /opt/es/elasticsearch-7.3.2/head下的 Gruntfile.js 文件,在 options 属性内增加键值:hostname: '0.0.0.0',如下图

进入到插件目录下,编辑 $ vim _site/app.js, 把localhost改为本机实际IP,否则启动插件后看不到ES集群节点

 这里要提醒的是,别忘了elasticsearch.yml增加参数,使head插件可以访问es,这里前边已经增加过

http.cors.enabled: true      #允许跨域
http.cors.allow-origin: "*"  #允许所有域名


四、启动es集群

1、启动集群

这里要注意的启动不要在root用户下操作,一定要在创建的用户下进行,否则启动会报错

分别在node03、node04、node05三个节点中执行命令 $ /opt/es/elasticsearch-7.3.2/bin/elasticsearch 启动集群,确认启动成功后,启动日志没有报错后,在浏器中输入 http://192.168.1.73:9200/,如下图

2、启动head插件

node03上,在插件目录 /opt/es/elasticsearch-7.3.2/head下启动集群,$ grunt server,启动成功如下

在浏器中输入http://192.168.1.73:9100/,如下图


五、常见错误

启动es过程中失败,日志报如下错误:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

编辑 $ vim /etc/security/limits.conf,调整增加参数

*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096

[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096] 

编辑  $ vim /etc/security/limits.d/90-nproc.conf,调整参数

*          soft    nproc     4096

执行 $ sysctl -p 生效
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

编辑 $ vim /etc/sysctl.conf,增加参数

vm.max_map_count=262144

[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
编辑 $ vim elasticsearch.yml,增加参数

bootstrap.system_call_filter: false

至此 elasticsearch集群搭建成功,其使用将在下边介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值