elasticSearch简介及安装(内含linux下的es+head+kibana)

elasticsearch的简介

什么是es(elasticSearch)?

我的理解es是一个数据库或者成为中间件,是一个用RESTful进行增删改查的数据库;这种数据库多是用于搜索。而这种搜索有别于关系型数据库的搜索。------------倒排索引搜索

关于倒排索引可以这么理解:我们以前是通过歌名找歌曲,倒排索引是实现通过歌词找歌曲。即通过内容对找搜索对象

es的基本技术是Lucene,一个java写的全文检索开源工具。

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。------来自于知乎

小结:

​ es的特点:

  1. 分布式
  2. 多用户能力
  3. 区分搜索
  4. RESTful风格

es使用的场景:

  • 快速构件,使用简单
  • 高可用
  • 可以实现分布式
  • 用json+RESTful请求
  • 实时、大数据

es vs solr

solr与es都是Apache下的项目,也都是Lucene作为基础。solr产生比的es早一些。

solr:

Solr 是 Apahce下的顶级开源项目,Java开发的,也是基于Lucene封装的全文搜索服务器。
Solr 提供的功能:大量的配置、索引进行了优化。
Solr 独立运行的服务器
Solr 使用方式:Post 方法发送一个 请求 Xml 文档、 添加、删除、更新。。。。 GET 请求来进行查询
(Xml, json数据)

es:

ElasticSearch 是一个实时分布式搜索和分析引擎,在大数据领域使用十分广泛。
比如百度搜索高亮,商品搜索.....
实时搜索,效率十分高(倒排索引)
ElasticSearch 是一个基于 Apahce Lucene下的开源搜索引擎。

图表来自百度图片:

elasticSearch简介及安装(内含linux下的es+head+kibana)_第1张图片
elasticSearch简介及安装(内含linux下的es+head+kibana)_第2张图片

elasticsearch的安装

下载资源。(docker支持7.7.0)

windows安装

解压压缩包
elasticSearch简介及安装(内含linux下的es+head+kibana)_第3张图片

config里是配置,这里windows和linux通用。这里可以将内存改小一点

elasticSearch简介及安装(内含linux下的es+head+kibana)_第4张图片

bin目录下打开cmd执行elasticsearch就行了

elasticSearch简介及安装(内含linux下的es+head+kibana)_第5张图片

其他的也都是解压以后通过npm进行安装npm install

或者直接到bin下双击.bat文件

linux安装(es+head+kibana)

建议不要用1核的。

下载包放入opt文件夹进行解压。

elasticSearch简介及安装(内含linux下的es+head+kibana)_第6张图片

选择elasticsearch。

elasticSearch简介及安装(内含linux下的es+head+kibana)_第7张图片

我们就新建一个用户

# 创建用户
useradd es
#给es用户权限 不然会出现.AccessDeniedException: /opt/elasticsearch-7.6.1/config/jvm.options 错误 我没有下载jdk所以使用es内部自带的jdk。
# 给es授权
chown -R es:es /opt/elasticsearch-7.6.1/

# su到新用户下面
sudo su es

--------------------------------------------------------------------------
# 如果是用的阿里云建议首先修改root的密码
sudo passwd root #修改root用户的密码 此时必须是root用户

此时es运行起来了

elasticSearch简介及安装(内含linux下的es+head+kibana)_第8张图片

我们通过linux内部的curl访问:

elasticSearch简介及安装(内含linux下的es+head+kibana)_第9张图片

内部启动起来

不过外部不能访问:

elasticSearch简介及安装(内含linux下的es+head+kibana)_第10张图片

确保防火墙和阿里安全组已经开启9200和9300端口。

我们需要改变绑定的ip地址,使得es可以公网访问(这是测试需要,正式上线慎重)。

config里面有一个es的yml文件。

elasticSearch简介及安装(内含linux下的es+head+kibana)_第11张图片

运行后依然不行。在es的日志目录下查看日志elasticsearch.log 看到这一条:

elasticSearch简介及安装(内含linux下的es+head+kibana)_第12张图片

bootstrap加载出错。我们知道bootstrap是jvm底层的加载器。包了底层空间不足,所以我们要增加空间。

# 修改最大限制 
vi /etc/secuirty/limits.conf

#加入
* soft nproc 2048
* hard nproc 4096

elasticSearch简介及安装(内含linux下的es+head+kibana)_第13张图片

# 系统配置
vi /etc/sysctl.conf
#添加配置
vm.max_map_count=262145

elasticSearch简介及安装(内含linux下的es+head+kibana)_第14张图片

查看结果

system -p

elasticSearch简介及安装(内含linux下的es+head+kibana)_第15张图片

启动又报错:

[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

#说配置文件属性必须设置 
# 修改ES config目录下的elasticsearch.yml
vi elasticsearch.yml
cluster.name: icoding-es #给集群设置一个名字,如果是集群,所有在这个集群中的节点集群名都要一样
node.name: es-node-1 #如果是集群,集群中每个节点的名字都不能一样
path.data: /usr/local/elasticsearc/mkdata 
path.logs: /usr/local/elasticsearc/mklogs
network.host: 0.0.0.0 #外网访问
http.port: 9200  #服务端口,通信端口是9300
cluster.initial_master_nodes: ["es-node-1"] #master节点服务发现,和上面的节点名一致

elasticSearch简介及安装(内含linux下的es+head+kibana)_第16张图片

再次运行通过外网访问

可以访问了

elasticSearch简介及安装(内含linux下的es+head+kibana)_第17张图片

下来安装head和kibana

npm安装

# 安装node
yum install -y nodejs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ix0Gjwci-1590413998556)(images\image-20200525191315665.png)]

head安装

elasticsearch-head

GitHub: https://github.com/mobz/elasticsearch-head

#获得zip包
#到head目录下 要能看到json
cd elasticsearch-head
npm install --registry=https://registry.npm.taobao.org
npm run start
# 启动后本地访问及端口:http://localhost:9100

elasticSearch简介及安装(内含linux下的es+head+kibana)_第18张图片

通过curl访问正常

elasticSearch简介及安装(内含linux下的es+head+kibana)_第19张图片

安装完毕后访问会提升不允许跨域

# No 'Access-Control-Allow-Origin'
# 在elasticsearch.yaml里加入
http.cors.enabled: true
http.cors.allow-origin: "*"

elasticSearch简介及安装(内含linux下的es+head+kibana)_第20张图片
这里是通过本机连接到了服务器。

kibana安装

# 下载地址
https://artifacts.elastic.co/downloads/kibana/kibana-7.5.2-linux-x86_64.tar.gz

vi kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.0.143:9200"]
# 进入bin目录
# Kibana should not be run as root.  Use --allow-root to continue.
# chown -R esuser:esuser /usr/local/software/kibana-7.5.2-linux-x86_64
# 端口默认是5601
./kibana
nohup ./kibana &

注意依然不能是root用户启动

elasticSearch简介及安装(内含linux下的es+head+kibana)_第21张图片
elasticSearch简介及安装(内含linux下的es+head+kibana)_第22张图片

给es用户设置权限,启动。

从公网访问5601端口

如果觉得英语看不懂,在config里面的yml文件,最后一行是i18n国家化

i18n-local: "zh-CN"

elasticSearch简介及安装(内含linux下的es+head+kibana)_第23张图片

搭建成功了

你可能感兴趣的:(elasticsearch)