Shay Banon认为自己参与Lucene完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到伦敦,妻子想在伦敦学习做一名厨师,而自己则想为妻子开发一个方便搜索菜谱的应用,所以才接触到Lucene。直接使用Lucene构建搜索有很多问题,包含大量重复性的工作,所以Shay便在Lucene的基础上不断地进行抽象,让Java程序嵌入搜索变得更容易,经过一段时间的打磨便诞生了他的第一个开源作品“Compass”,中文即“指南针”的意思。之后,Shay找到了一份面对高性能分布式开发环境的新工作,在工作中他渐渐发现越来越需要一个易用的、高性能、实时、分布式搜索服务,于是他决定重写Compass,将它从一个库打造成了一个独立的server,并将其改名为Elasticsearch。
ElasticSearch是一款基于Apache Lucene构建的开源搜索引擎,它采用Java编写并使用Lucene构建索引、提供搜索功能,ElasticSearch的目标是让全文搜索变得简单,开发者可以通过它简单明了的RestFul API轻松地实现搜索功能,而不必去面对Lucene的复杂性。ES能够轻松的进行大规模的横向扩展,以支撑PB级的结构化和非结构化海量数据的处理。
接口:
solr类似于webserver结构
elasticsearch是rest风格访问接口
分布式:
solr:solrCloud solr4.x支持
elasticsearch:为分布式而生
支持风格:
solr:json、xml
elasticsearch:json
前置条件
下载地: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.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 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: false
bootstrap.system_call_filter: false
④重启电脑
⑤启动ES
[hadoop hadoop03@~]$/application/elasticsearch-6.2.0/bin/elasticsearch -d
最终在http://hadoop03:9200的web界面中出现:
表示安装成功~!!!!!
这里需要注意,如果是安装集群的话,如果你的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节点就会自动组成一个集群。
这种依赖性的发现,比较靠谱,当然如果要集群扩展就比较慢了。
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索引是哪些,可以配置一个或更多索引。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。