蛋疼的ElasticSearch(一)之安装ElasticSearch
Interesting things
本周的计划暂时这样子的:
1.学习Solr和ElasticSearch
2.深入学习SpringBoot
3.了解日志系统的实现
What did you do today
先入为主
ElasticSearch是什么?百度词条是这样解释的。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用java开发的,并作为Apache许可条款下的开发源码发布,是当前流行的企业级搜索引擎。设计用于云计算,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
我们建立一个网站或者应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能简单的使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用ElasticSearch来解决所有这些问题以及可能出现的更多其他问题。
安装
-
安装ES之前确保自己的机器配置过java 8环境。
[root@localhost software]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.zip
-
好像还没有安装wget,那就安装吧
[root@localhost software]# yum install -y wget
-
下载ES的.tar.gz安装包
[root@localhost software]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz
-
解压到/usr/local/fast/目录下。
[root@localhost software]# tar -zxvf elasticsearch-6.1.1.tar.gz -C /usr/local/fast/
- 进入/usr/local/fast/elasticsearch-6.1.1/,启动elasticsearch后,发现报错了。问题所在是我虚拟机分配的内存太小了(256MB),我来修改为512MB。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory. # An error report file with more information is saved as: # /usr/local/fast/elasticsearch-6.1.1/hs_err_pid1795.log
- 现在我再次启动发现“Cannot allocate memory”问题解决了,但是又抛出一个新的异常。
[2018-01-08T10:59:24,934][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:125) ~[elasticsearch-6.1.1.jar:6.1.1] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1] at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85)