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的介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章
批量搞机:分布式ELK平台Elasticsearch介绍Elasticsearch集群安装ES 插件的安装与使用