Elasticsearch?入门
一、Elasticsearch常识
? 什么是Elasticsearch(ES)?
基于Lucene的搜索服务器,支持集群,用java开发的,基于RestFul web接口,最火的搜索引擎,稳定可靠快速。
? Lucene与Es的关系
lucene是一个全文检索的引擎架构,非常复杂需要深入了解,es在其上层封装,提供简单的restful API
- 分布式实时文件存储
- 实时分析
- 非结构化,结构化都可以,可扩展上百台
? es和solr对比
- es 优点:分布式,实时的、支持实时收索、多租户、不会出现单点故障
- es 缺点:还不够自动,长期低水位,流量突增系统压垮
- solr:优点:Apache 提供 一个更大,更成熟的用户社区、成熟稳定
- solr:缺点:实时搜索不行(相较于es)
? ES倒排索引和正排索引
- 什么是正排索引?
简单说就是正常查询从上到下 - 什么是倒排索引?
通过记录映射一个属性值表,通过属性值指向记录关键字出现在哪一个记录上 由属性去定记录的位置,不是由记录确定属性值
二、Linux安装ES
1、下载?安装
官方下载
① 上传tar包并解压
mkdir -p /usr/local/elasticsearch/es1
tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz -C
解压后其实便可以启动,但root账号无法启动,权限过高
② 环境配置并启动 修改配置文件 elasticsearch-env
vim bin/elasticsearch-env
JAVA_HOME="/usr/local/elasticsearch/es1/elasticsearch-7.4.2/jdk/"
创建 es 用户组和 es 用户,并将其添加到用户组 es 中
groupadd es
useradd es -g es
chown -Rf es:es /usr/local/elasticsearch/
su es
bin/elasticsearch
测试:[es@localhost root]$ curl http://127.0.0.1:9200 如果启动失败,可能是你的配置文件空格问题导致配置出错
2、远程访问(windows访问)配置
修改 config/elasticsearch.yml 文件
vi config/elasticsearch.yml
实际生产环境请添加允许访问的IP,学习时使用0.0.0.0放行所有IP
network.host: 0.0.0.0
切换至root用户添加防火墙规则,重启防火墙,学习时直接关闭防火墙
su root -A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT systemctl restart iptables.service
//停掉防火墙
systemctl stop firewalld
切换es用户重启elasticsearch,重启之前先查询es进程然后杀死进程
kill -9 进程号 bin/elasticsearch -d
Elasticsearch进程的最大文件描述符[4096]太低,请至少增加到[65535]
vi /etc/security/limits.conf
//添加一下内容
es soft nofile 65535
es hard nofile 65535
es soft nproc 4096
es hard nproc 4096
用户[es]可以创建的最大线程数[3795]太低,请至少增加到[4096]
vi /etc/sysctl.conf
//添加如下内容
vm.max_map_count = 262144
重载一下
sysctl -p
当前配置不适合生产环境使用
vi config/elasticsearch.yml
//添加如下
discovery.seed_hosts: ["192.168.10.100"]
cluster.initial_master_nodes: ["192.168.10.100"]
重启访问
三、常用插件Head
在学习和使用Elasticsearch的过程中,必不可少需要通过一些工具查看es的运行状态以及数据。如果都是通过rest请求,未免太过麻烦,而且也不够人性化。head可以完美帮我们快速学习和使用es
1、安装Node.js
直接官网下载tar包,导入linux,解压tar包,配置环境变量
mkdir -p /usr/local/nodejs
tar -xvf node-v12.13.1-linux-x64.tar.xz -C /usr/local/nodejs/
配置环境变量
export NODE_HOME=/usr/local/nodejs/node-v12.13.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin
2、安装Head
直接从官网下载资源,导入到linux,并解压
安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
进入Elasticsearch安装目录下的config目录,修改 elasticsearch.yml 文件
# 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.enabled: true
# 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
http.cors.allow-origin: "*"
进入 elasticsearch-head 目录,修改 Gruntfile.js 文件
cd /usr/local/elasticsearch/plugins/elasticsearch-head/
vi Gruntfile.js
基本配置完毕
3、启动测试
npm install
npm run start
或者
npm run start & # 后台启动
|