ElasticSearch的介绍与安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch的介绍与安装相关的知识,希望对你有一定的参考价值。

    技术分享图片

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以及以上。
安装步骤
①解压:

[hadoop [email protected]~]$ tar zxvf elasticsearch-6.2.0.tar.gz -C /application/

②修改配置文件

#/application/elasticsearch-6.2.0/config/elasticsearch.yml
cluster.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 [email protected]~]$more /etc/issue和uname -a #查看linux内核信息

技术分享图片

#升级内核
[hadoop [email protected]~]$sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
如果出现下图所示:
技术分享图片
无法在服务器使用curl命令访问https域名,原因是nss版本有点旧了:
可以使用:

[hadoop [email protected]~]$yum -y update nss    

#安装内核

sudo yum --enablerepo=elrepo-kernel install 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 install; 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: false
bootstrap.system_call_filter: false

技术分享图片

④重启电脑

⑤启动ES
[hadoop [email protected]~]$/application/elasticsearch-6.2.0/bin/elasticsearch -d
最终在http://hadoop03:9200的web界面中出现:
技术分享图片
表示安装成功~!!!!!

3. ElasticSearch的集群安装

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

[hadoop [email protected]]$scp -r  elasticsearch-6.2.0 hadoop01:$PWD
[hadoop [email protected]]$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

以上是关于ElasticSearch的介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章

介绍ElasticSearch与安装

ElasticSearch的介绍与安装

批量搞机:分布式ELK平台Elasticsearch介绍Elasticsearch集群安装ES 插件的安装与使用

elasticsearch代码片段,及工具类SearchEsUtil.java

ElasticSearch介绍与安装

Elasticsearch入门基本介绍与安装