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的安装

下载资源。(docker支持7.7.0)

windows安装

解压压缩包
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

linux安装(es+head+kibana)

建议不要用1核的。

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

在这里插入图片描述

选择elasticsearch。

在这里插入图片描述

我们就新建一个用户

# 创建用户
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运行起来了

在这里插入图片描述

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

在这里插入图片描述

内部启动起来

不过外部不能访问:

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

#加入
* soft nproc 2048
* hard nproc 4096

在这里插入图片描述

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

在这里插入图片描述

查看结果

system -p

在这里插入图片描述

启动又报错:

[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节点服务发现,和上面的节点名一致

在这里插入图片描述

再次运行通过外网访问

可以访问了

在这里插入图片描述

下来安装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

在这里插入图片描述

通过curl访问正常

在这里插入图片描述

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

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

在这里插入图片描述
这里是通过本机连接到了服务器。

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用户启动

在这里插入图片描述
在这里插入图片描述

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

从公网访问5601端口

在这里插入图片描述

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

i18n-local: "zh-CN"

在这里插入图片描述

搭建成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值