七十九ElasticSearch的简介与安装
Posted 象在舞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七十九ElasticSearch的简介与安装相关的知识,希望对你有一定的参考价值。
本文我们来看一下一个非常常用的搜索引擎——ElasticSearch。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~
目录
一、ElasticSearch的概述
1.1 ElasticSearch的简介
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
1.2 ElasticSearch的特点
1、分布式的实时文件存储,每个字段都被索引并可被搜索。
2、分布式的实时分析搜索引擎——做不规则查询。
3、可以扩展到上百台服务器,处理PB级结构化或非结构化数据。
4、Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
5、ElasticSearch可以用于全文检索(全部字段)、模糊查询(搜索)、数据分析(提供分析语法,例如聚合)等场合。
1.3 同类产品的对比
1、Solr
Solr源自搜索引擎,侧重搜索与全文检索。数据规模从几百万到千万不等,数据量过亿的集群特别少。有可能存在个别系统数据量过亿,但这并不是普遍现象(就像Oracle的表里的数据规模有可能超过Hive里一样,但需要小型机)。
2、Hermes
Hermes是一个基于大索引技术的海量数据实时检索分析平台,侧重数据分析。数据规模从几亿到万亿不等,最小的表也是千万级别。在腾讯17台TS5机器,就可以处理每天450亿的数据(每条数据1kb左右),数据可以保存一个月之久。
3、Solr与ES的区别
1、Solr利用Zookeeper进行分布式管理,而ElasticSearch自身带有分布式协调管理功能。
2、Solr支持更多格式的数据,而ElasticSearch仅支持json文件格式。
3、Solr官方提供的功能更多,而ElasticSearch本身更注重于核心功能,高级功能多有第三方插件提供。
4、Solr在传统的搜索应用中表现好于Elasticsearch,但在处理实时搜索应用时效率明显低于Elasticsearch。
二、ElasticSearch的安装
2.1 环境准备
1、首先确保已经安装了jdk1.8
2、新建普通用户
adduser es
passwd es
2.2 单机安装
1、将下载好的安装包上传到服务器并解压
[root@master es]# pwd
/opt/software/es
[root@master es]# tar -zxvf elasticsearch-6.3.1.tar.gz -C ../../modules/
2、去到es的bin目录下,使用如下命令启动es
[root@master bin]# ./elasticsearch
发现启动报错,如下所示:
[root@master bin]# ./elasticsearch
[2021-06-01T08:57:13,672][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.3.1.jar:6.3.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.3.1.jar:6.3.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.3.1.jar:6.3.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.3.1.jar:6.3.1]
... 6 more
报错信息显示es不能使用root用户启动,故而切换到先前创建的普通用户,重新执行启动命令发现报错如下:
权限禁止的错误,需要更改目录的所属用户和用户组,如下所示:
[root@master modules]# pwd
/opt/modules
[root@master modules]# chown -R es:es ./elasticsearch-6.3.1
切换到普通用户下再次启动,出现下面的界面说明启动成功:
也可以如下命令后台运行:
./elasticsearch -d
3、修改配置文件,配置浏览器访问。
(1)修改配置文件
[root@master config]# vim elasticsearch.yml
(2)启动发现如下问题
修改对应的配置文件:
vim /etc/security/limits.conf
* hard nofile 65536
* soft nofile 131072
* hard nproc 4096
* soft nproc 2048
其中,nofile表示打开文件的最大数目,noproc表示进程的最大数目,soft指的是当前系统生效的设置值,hard表明系统中所能设定的最大值。
vim /etc/sysctl.conf
vm.max_map_count=655360
fs.file-max=655360
使用如下命令使之生效:
sysctl -p
(3)再次启动,出现如下界面说明启动成功。
以上就是本文的所有内容,比较简单。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~
以上是关于七十九ElasticSearch的简介与安装的主要内容,如果未能解决你的问题,请参考以下文章
第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装
一起Talk Android吧(第四百七十九回:集合类视图动画)