热门IT资讯网

ElasticSearch的介绍与安装

发表于:2024-11-23 作者:热门IT资讯网编辑
编辑最后更新 2024年11月23日,    1. ElasticSearch的介绍(1)ElasticSearch的趣味历史  Shay Banon认为自己参与Lucene完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到

    

1. ElasticSearch的介绍

(1)ElasticSearch的趣味历史

  Shay Banon认为自己参与Lucene完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到伦敦,妻子想在伦敦学习做一名厨师,而自己则想为妻子开发一个方便搜索菜谱的应用,所以才接触到Lucene。直接使用Lucene构建搜索有很多问题,包含大量重复性的工作,所以Shay便在Lucene的基础上不断地进行抽象,让Java程序嵌入搜索变得更容易,经过一段时间的打磨便诞生了他的第一个开源作品"Compass",中文即"指南针"的意思。之后,Shay找到了一份面对高性能分布式开发环境的新工作,在工作中他渐渐发现越来越需要一个易用的、高性能、实时、分布式搜索服务,于是他决定重写Compass,将它从一个库打造成了一个独立的server,并将其改名为Elasticsearch。

(2)ElasticSearch的概述

  ElasticSearch是一款基于Apache Lucene构建的开源搜索引擎,它采用Java编写并使用Lucene构建索引、提供搜索功能,ElasticSearch的目标是让全文搜索变得简单,开发者可以通过它简单明了的RestFul API轻松地实现搜索功能,而不必去面对Lucene的复杂性。ES能够轻松的进行大规模的横向扩展,以支撑PB级的结构化和非结构化海量数据的处理。

(3)ElasticSearch与solr的比较

接口
 solr类似于webserver结构
 elasticsearch是rest风格访问接口
分布式
 solr:solrCloud solr4.x支持
 elasticsearch:为分布式而生
支持风格
 solr:json、xml
 elasticsearch:json

(4)ElasticSearch与MySQL的比较

2. ElasticSearch的单机版安装

(1)单机版安装

前置条件
下载地:https://github.com/elastic/elasticsearch
注意:在安装集群之前,保证有jdk并且是1.7以及以上。
不能以root用户启动ES,否则:

安装步骤
①解压:

[hadoop hadoop03@~]$ tar zxvf elasticsearch-6.2.0.tar.gz -C /application/

②修改配置文件

#/application/elasticsearch-6.2.0/config/elasticsearch.ymlcluster.name: zzy-application #集群的名称node.name: node-1 #节点名称path.data: /home/hadoop/data/elasticsearch-data #数据存储目录path.logs: /home/hadoop/logs/elasticsearch-log #日志存储目录network.host: 192.168.191.130 #绑定主机

③版本兼容问题

requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER


表示:centos6.x的内核太低,需要centos7或者升级centos6.x对应的内核至3.5以上。这里选择升级centos6.x对应的内核。
#相关操作:

[hadoop hadoop03@~]$more /etc/issue和uname -a #查看linux内核信息

#升级内核
[hadoop hadoop03@~]$sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
如果出现下图所示:

无法在服务器使用curl命令访问https域名,原因是nss版本有点旧了:
可以使用:

[hadoop hadoop03@~]$yum -y update nss    

#安装内核

sudo yum --enablerepo=elrepo-kernel ×××tall kernel-lt -y

#编辑grub.conf文件,修改Grub引导顺序

#如果出现以下错误:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]


#limits.conf
sudo vim /etc/security/limits.conf 添加如下内容:

*   soft    nofile  65536*   hard    nofile  131072*   soft    nproc   2048*   hard    nproc   4096

并注释:

如果还有错误:

max number of threads [1024] for user [bigdata] is too low, increase to at least [4096]


#修改配置文件90-nproc.conf
sudo vim /etc/security/limits.d/90-nproc.conf

#接下来还会有错误

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

#修改配置文件/etc/sysctl.conf

并且生效:sudo sysctl -p

#最后一个错误:

system call filters failed to ×××tall; 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为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
#修改elasticsearch配置文件
vim /application/elasticsearch-6.2.0/config/elasticsearch.yml

#在Memory下面bootstrap.memory_lock: falsebootstrap.system_call_filter: false

④重启电脑

⑤启动ES
[hadoop hadoop03@~]$/application/elasticsearch-6.2.0/bin/elasticsearch -d
最终在http://hadoop03:9200的web界面中出现:

表示安装成功~!!!!!

3. ElasticSearch的集群安装

这里需要注意,如果是安装集群的话,如果你的Linux每一台都是出现以上的问题,那么每一台电脑都要升级内核,一点要保持所有的节点都能成功启动单机的ES。
  如何你的节点能够成功的安装单机的ES,那么集群的安装非常简单:只要节点同属于一个局域网同一网段,而且集群名称相同,ES就会自动发现其他节点。
①将单机的版的ES发送的各个节点上:

[hadoop hadoop03@application]$scp -r  elasticsearch-6.2.0 hadoop01:$PWD[hadoop hadoop03@application]$scp -r  elasticsearch-6.2.0 hadoop02:$PWD

②修改配置文件:
#节点一 hadoop01:
cluster.name: zzy-application
http.port: 9200
network.host: 0.0.0.0
#节点二 hadoop 02:
cluster.name: zzy-application
http.port: 9200
network.host: 0.0.0.0
transport.tcp.port: 19300
#节点三:
cluster.name: bigdata
http.port: 9200
network.host: 0.0.0.0
transport.tcp.port: 29300
③配置完成之后,启动ES即可:
可以通过ES插件elasticsearch-head查看集群信息:

这里elasticsearch-head是一个Google的插件,下载需要×××,这里小编直接给大家提供一个,直接放在Google浏览器的扩展程序中即可。
下载地址:http://down.51cto.com/data/2458080
注意:这里是通过一台机器不同的端口实现的集群,如果是多台机器需要在每一个节点的配置文件中加入:

discovery.zen.ping.unicast.hosts: [ "nodeIP:9300","nodeIP:9300" ]

这是因为ES集群是自动发现机制,这里我们提供一个发现的列表,只要clusterName一样,并且在同一网络下,集群名称相同的ES节点就会自动组成一个集群。
这种依赖性的发现,比较靠谱,当然如果要集群扩展就比较慢了。

4. Elasticsearch Kibana

  kibana 本质上是elasticsearch web客户端,是一个分析和可视化elasticsearch平台,可通过kibana搜索、查看和与存储在elasticsearch的索引进行交互。可以很方便的执行先进的数据分析和可视化多种格式的数据,如图表、表格、地图等。
  .1 简单部署
①下载
URL:http://www.elastic.co/downloads/kibana
需要特别注意的就是kibana和ES之间的版本匹配问题。这里使用的是kibana-6.2.0-linux-x86_64.tar
② 配置:
解压:[hadoop@hadoop03 ~]$ tar zxvf kibana-6.2.0-linux-x86_64.tar.gz -C /application/
配置文件:[hadoop@hadoop03 config]$ vim kibana.yml

注意:由于ES启动时不能通过root用户,所以logs这个目录需要是启动ES的用户创建:
#后台启动(在bin下):

nohup bin/kibana >logs/kibana.log 2>&1 &

③ 测试
访问部署Kibana机器的5601端口出现这个页面,表示部署成功:

  .2 简单部署

  Discover页面: 交互式的浏览数据。可以访问所匹配的索引模式的每个索引的每个文档。可以提交搜索查询,过滤搜索结果和查看文档数据。还可以搜索查询匹配的文档数据和字段值的统计数据。还可以选定时间以及刷新频率。

  Visualize页面:设计数据可视化。可以保存这些可视化,单独或合并成仪表盘。可视化可以基于以下数据源类型1.一个新的交互式搜索 2. 一个保存的搜索 3. 现有的可视化。

  Dashboard页面:自由排列已保存的可视化,保存这个仪表盘并可以分享或者重载。
  settings页面:要使用kibana,得先告诉kibana要搜索的elasticsearch索引是哪些,可以配置一个或更多索引。

0