七十九ElasticSearch的简介与安装

Posted 象在舞

tags:

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

       本文我们来看一下一个非常常用的搜索引擎——ElasticSearch。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~


目录

一、ElasticSearch的概述

1.1 ElasticSearch的简介

1.2 ElasticSearch的特点

1.3 同类产品的对比

二、ElasticSearch的安装

2.1 环境准备

2.2 单机安装


一、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的简介与安装的主要内容,如果未能解决你的问题,请参考以下文章

七十九ElasticSearch的简介与安装

第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

一起Talk Android吧(第四百七十九回:集合类视图动画)

一起Talk Android吧(第四百七十九回:集合类视图动画)

通信算法之七十九:无人机通信- WI-FI系统

通信算法之七十九:无人机通信- WI-FI系统