简介
ElasticSearch是基于Lucene库实现的一个全文搜索引擎,可以快速的存储、搜集和分析海量数据。
ElasticSearch具有如下特点:
1、分布式,索引可以被分片,每个分片有0个或者多个副本,每个节点托管一个或者多个分片。
2、可拓展,具有接近实时的搜索,支持多租户。
3、自动完成平衡和路由。
4、有一个特性被称为“网关”,在服务器崩溃的时候可以从网关恢复。
5、支持实时GET请求,可以作为NOSQL数据存储,但是不支持分布式事务。
6、虽然ES是用Java开发的,但官方的客户端也支持其他语言的使用,比如C#、Python等。
Elastic Stack
ELK Stack指的一种集成解决方案,包含了三个软件
- Elastic Search
- LogStash (数据收集和日志解析引擎)
- Kibana (分析和可视化平台)
- Beats(面向轻量级采集器的平台,采集器可以从边缘发送数据)
安装
环境检查
可以先检查一下自己的环境是否支持安装当前版本的ElasticSearch
https://www.elastic.co/cn/support/matrix
当前版本ES版本:7.10.2
JDK版本:1.8
Windows版本:10
Windows
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
下载好后,解压,解压后的目录如下
进入bin目录,打开cmd,输入命令:
.\elasticsearch
默认端口为9200,启动好后可以浏览器访问试试
http://localhost:9200/
出现类似的页面,则表示启动成功
Linux
以centos为例
和windows类似,上传文件,解压文件,进入bin目录
运行后报错:
can not run elasticsearch as root
不能以root启动,所以你需要建一个普通用户,并授权给他。
如果你有普通用户,就不用创建了,直接授权就好。
useradd 用户名
password 用户名 (回车后再输入密码,别直接跟后面)
#授权
chown -R 用户名 elasticsearch文件夹路径
#切换用户
su 用户名
#启动es
cd es所在文件夹
./bin/elasticsearch
浏览器访问
新开一个窗口
curl localhost:9200
远程访问
如果想要宿主主机或者内网其他计算机可以远程访问
1、开放linux9200端口
参考: https://blog.csdn.net/qq_37855749/article/details/113616660
2、修改配置文件
修改config目录下的 elasticsearch.yml
设置0.0.0.0则表示允许不同机器(同一网段,能ping通)的用户访问,否则只能本机用户访问
并将下面的这一行取消注释:
并修改
cluster.initial_master_nodes: ["node-1"]
如果不这么做,会报错如下:
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
3、修改系统配置
修改上述的配置后,会发现还是跑不起来,报错如下
-
用户可创建得文件数太少,切换到root用户修改限制
编辑文件:
vi /etc/security/limits.conf
最后追加如下内容
# elasticsearch config start
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
# elasticsearch config end
-
修改虚拟内存
命令
vim /etc/sysctl.conf
添加如下内容
vm.max_map_count=655260
生效
sysctl -p
-
重启
ip+端口(默认9200)访问
参考链接:
https://zh.wikipedia.org/wiki/Elasticsearch