距离上一篇文章已经快2个月了,这些天公司任务不多,自己折腾了点好玩的东西,用了下pm2,mongodb,redis和elasticsearch。mongodb和redis在两个月前就写过部署相关的文章了,今天扯一下Elasticsearch。
Elasticsearch是一个非常赞的实时分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析等。更重要的是入门简单,api也比较清晰。根据官方的介绍,目前Wikipedia,Github和StackOverflow等都使用Elasticsearch进行搜索和分析。
Elasticsearch是建立在全文搜索引擎Apache Lucene基础上的,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架,但是Lucene只是一个框架,要充分利用它的功能,你需要很高学习成本,因为Lucene确实非常复杂。而Elasticsearch使用Lucene作为内部引擎,在其基础上封装了功能强大的RESTful API,让你不需要了解背后复杂的逻辑,即可完成搜索……
安装java
Elasticsearch是基于java的,使用前需要先安装java。首先下载rpm,我下载的是jdk-7u67-linux-x64.rpm,下载好后,执行:
1. rpm -ivh jdk-7u67-linux-x64.rpm
关于安装的更多内容可以参考官方文档。
安装Elasticsearch
Elasticsearch的安装也很简单,首先下载压缩包:
1. wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.4.tar.gz
然后解压:
1. tar -xvf elasticsearch-1.3.4.tar.gz
2. cd elasticsearch-1.3.4
ok了,就是这么简单,然后就可以直接运行了:
1. ./bin/elasticsearch
然后在浏览器,curl,或者其他任何方式(http的都行),访问http://localhost:9200/?pretty
,j就可以看到类似下面的返回:
1. {
2. "status": 200,
3. "name": "Shrunken Bones",
4. "version": {
5. "number": "1.4.0",
6. "lucene_version": "4.10"
7. },
8. "tagline": "You Know, for Search"
9. }
你的Elasticsearch已经运行起来了。
使用elasticsearch-servicewrapper
只是运行起来是不够的,我们需要将Elasticsearch安装成服务,设置开机自启动什么的。这就要用到elasticsearch-servicewrapper了(当然也有其他方法),安装方法依旧简单,从Github上下载解压,直接把service文件夹放在elasticsearch-1.3.4/bin
下即可,执行下面的命令安装:
1. bin/service/elasticsearch install
然后就可以启动了:
1. bin/service/elasticsearch start
最简单的配置
Elasticsearch是非常强大的,既可以运行在你的笔记本上,也可以部署到成千上万的服务器上,处理PB级别的数据。不需要任何配置,就可以直接上手使用。而且,它的默认配置已经很好了,在你完全明白Elasticsearch的原理前,也不建议盲目的修改。下面简单限制下内存,因为我小内存VPS上安装的时候,出现过无法启动的问题。
由于我们使用elasticsearch-servicewrapper启动运行Elasticsearch,所以限制内存也很简单,打开bin/service/elasticsearch.conf
文件,设置为合适的大小即可:
1. set.default.ES_HEAP_SIZE=1024
这里的单位是MB。一般情况下,限制在总内存的50%比较好,因为还要留下一半给Lucene使用。
最后
Elasticsearch的官方提供了“从入门到精通”的指南,有兴趣深入了解的朋友可以看看:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index.html
网友评论