ElasticSearch的介绍与安装

介绍:ES基于lucene的搜索服务(应用系统),java语言编写,底层封装了lucene
的各种搜索功能;lucene不支持分布式的对index索引的操作缺点,在ES完 美的解决了;

es结构 6个部分

在这里插入图片描述

gatway:es的索引文件的存储,本地,共享,hdfs lucene分布式框架:es基于lucene实现的分布式模块
ES功能模块:es自己的功能,例如关闭,开启索引(应用级别的开启和关 闭)

插件:discovery 发现插件(集群中的es节点一旦出现相同集群名称的节点启动将会自动发现加入集群),scripting,可以支持多种语言来对接操作es

传输模块:支持与es数据交互的底层协议; 用户接口:restFul传参

安装ES

ES安装
1wget获取安装包#wget[空格]"源站地址“

在这里插入图片描述
2tar命令解压安装包
#tar[空格]-xf[空格]lasticsearch***
在这里插入图片描述

3添加当前主机的普通账户#groupadd[空格]es
#useradd[空格]es(用户名)[空格]-g[空格]es(组名)[空格]-p[空格]es(密码)
在这里插入图片描述
解释:root为最高权限的管理员用户,es在启动时不允许使用root用户,所以我们创建一个普通账户es,登录密码es来管理elasticsearch 的启动和调用,从此处开始#的命令表示root用户执行,$的命令提示表示普通用户
用户的切换命令为:

#su[空格]es 从root切换到普通用户es
在这里插入图片描述

$su[空格]root 从普通用户切换到root需要输入密码注意:这里的密码是忙敲,没有字符提示
在这里插入图片描述

4修改新用户的操作权限(es用户新用户,没有操作任何文件,文件夹的权限,elasticsearch 文件夹交个es维护)
解释:新用户es没有对文件和文件夹的读写等权限,需要开启es对刚刚解压的文件夹elasticsearch-5.5.2的操作权限,否则无法执行
注意:强调,开启权限的操作只有root用户可以完成,所以后续操作请注意我的提示是#号开始还是$开始,代表不同用户,有的命令执行时两个用户都可以,但是这里不严格区分,操作时可以一个窗口开启root,一个开启普通用户即可
#chown[空格]-R[空格]es(用户名):es(组名) []/home/software/elasticsearch-5.5.2
在这里插入图片描述

5修改es启动占用的内存空间
解释:默认情况下,es启动互占用2G内存,对云主机内存不足的情况有所限制,虚拟机更需要修改,需要修改占用的内存空间,512M已经足够了
修改es根目录下config目录的jvm.options #vim[空格]jvm.options
在这里插入图片描述
在这里插入图片描述

6尝试启动es测试
在es的根目录的bin目录下执行启动文件命令elasticsearch
$elasticsearch
在这里插入图片描述

出现如下内容,es启动成功
在这里插入图片描述

es启动后,提供一个9200的端口进行http协议访问,这里可以调用linux的curl命令测试es程序
#curl[空格]localhost:9200
curl是linux提供的基于http协议的一个命令文件,可以使用它发起http的请求,一些请求方式get,post,put,delete都可以使用curl来模拟
-XGET 表示请求方式为get

在这里插入图片描述
启动异常:原因是linux版本导致,不影响使用后续解决 unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel,
CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
在这里插入图片描述

在es根目录的config/elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面: 42行:bootstrap.memory_lock: false
添加:bootstrap.system_call_filter: false

#vim elasticsearch.yml
在这里插入图片描述

7后台启动和关闭es 关闭
在前面使用的启动过程中,es的启动程序占用了控制台,如果需要关闭直接ctrl+c停止控制台使用即可,默认的启动方式并不方便,占用的控制台一旦关闭会造成es程序停止,所以需要后台启动

后台启动
动态观察日志
#tail -f ***.log
在普通用户执行启动命令时添加-d的选项表示后台运行
$elasticsearch[空格]-d
在这里插入图片描述
使用crul测试依然成功表示程序正常运行#curl[]localhost:9200

在这里插入图片描述

关闭后台启动的进程
调用java的jps命令查看启动的jvm进程#jps
在这里插入图片描述
或者直接调用linux查看进程命令
#ps[空格]-ef|grep[空格]elasticsearch
无论是哪个命令都是为了找到es启动的id号
在这里插入图片描述
确定pid后直接调用kill命令杀掉进程即可关闭es #kill[空格]17381
在这里插入图片描述

安装启动es到此结束
尚存的问题
无法对外提供访问和使用
通过内部命令可以访问es进程,但是从外网访问ip+端口访问无效没有集群提供高可用
单点的es可以完成创建索引,搜索功能,但是高可用集群才是es的使用途径

但是只有完整的配置了es才可以对外提供访问和使用,同时需要很多插件支持
更好的观察和使用数据索引

ES配置

配置文件elasticsearch.yml详解
在es根目录下的config目录中有elasticsearch.yml配置文件,es加载使用的yml格式配置

17行:cluster.name: 自定义集群名称
解释:es的运行都是以集群形式启动的,默认情况也会有集群名称elasticsearch
es的discovery模块会自动发现在同一个网络通信区间内下的es节点,如果在同一个网段下有多个集群,可以利用集群名称来区分
在这里插入图片描述

23行:node.name: 自定义节点名称
当前启动的es进程表示一个节点,配置当前节点名称,默认随机名称
在这里插入图片描述

33行:path.data: 索引数据存储位置(保持默认,不要开启注释)
解释:默认是es根目录下的data文件夹,可以设置多个存储路径,用“,”隔开即可,例如:path.data:/path01,/path02
如果开启,必须是ES用户的管理路径权限

37行:path.logs: 日志路径(保持默认)

#ip(用ip未启动成功,换成127.0.0.1如果没问题<说明服务已OK>,在换成如下地址,外网可访问)
55行左右:network.host: 当前es节点绑定的ip地址
解释:默认127.0.0.1,如果需要开放对外访问这个属性必须设置,可以绑定本机对外访问ip
在这里插入图片描述

59行:http.port: 启动的es对外访问的http端口,默认9200 开放并且设置自定义端口
在这里插入图片描述

按照如上内容vim便捷elasticsearch.yml文件保存退出

启动es的环境问题
由于linux版本不一致,环境配置不一致,可能在启动时出现如下问题

在这里插入图片描述

[1]: max number of threads [1024] for user [es] is too low, increase to at least [2048]
原因:默认的最大可创建线程数是1024,不满足es程序的要求,设置为2048即可
#vim[空格]/etc/security/limits.d/90-nproc.conf
在这里插入图片描述

[2]: 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=655360
在这里插入图片描述

保存退出执行命令#sysctl[空格]-p

[3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为false

除了以上几个问题的出现,有可能根据环境不同出现不同问题,根据问题的提示找到ERROR。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值