码迷,mamicode.com
首页 > 其他好文 > 详细

Elasticsearch最新版本2.20特性及如何安装

时间:2016-02-03 22:39:33      阅读:1416      评论:0      收藏:0      [点我收藏+]

标签:elasticsearch 赛克蓝德 日志分析 secilog

  版本选择:Elasticsearch最新版本2.20

  Elasticsearch的更新速度实在太快了,16年2月2日更新到了2.2版本,首先看一下这个版本增加了哪些新的特性。首先是基于Lucene 5.4.1,修复了Elasticsearch 2.1.2和Elasticsearch 1.7.5版本中存在的很多bug,同时Elasticsearch 2.2.0增加了两个很棒的新功能:查询分析器和增强地理位置字段。这个版本增加了更加严格的安全性和修复了2.1的一个重大bug,就是在分片恢复的时候会非常缓慢。以及许多其他的错误修复和改进。官方鼓励所有用户升级到此版本。

 分析器(Profile API)

 利用分析器可以得到查询的详细分析信息,它可以让你了解和调试查询性能。查询的每一部分都独立的记录了统计时间,如多长时间重写查询,找到匹配的文档以及他们的得分情况。这个当查询慢的时候就不需要进行猜测为什么这么慢:只要设置profile这个参数为true,你就可以得到最直接的深入的查询分析。

  增强地理位置字段

  地理位置字段在2.20版本中几乎进行了从写,它利用一个新的紧凑型数据结构存储在Lucene的索引中,可以增加50%的入库效率, 20-50%的查询效率,一半的存储空间和内存的占用以及更简单的映射参数。

  对插件和脚本进行更严格的安全性检查

  作为安全增强的一部分,Groovy和Lucene的表达式脚本语言已经移出了核心层,现在把他们作为默认的分布式模块的插件。这样的调整可以控制这些模块的权限,已减少黑客的攻击,Elasticsearch的核心模块在未来将会更多的进行模块化处理。脚本语言,现在预定义提供一个白名单列表,这些脚本不能读写文件,不能打开远程的连接。默认情况下,都不准许插件有特殊权限,否则必须事先声明这些权限。同时在插件安装时将会被警告有特殊权限的要求,这个时候你可以根据需要确认是否移除这些插件。

  本文由赛克蓝德(secisland)原创,转载请标明作者和出处。

安装

  Elasticsearch安装至少需要Java 7的支持。最新的版本建议使用Oracle的JDK版本1.8.0_72。如需了解Java的情况,可以到oracle的官网找相关的资料。在你安装Elasticsearch前,请检查您的Java版本运行:

    java -version

  当我们设置好Java后,我们可以下载最新的版本。下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-2-2-0。

  下载完成后直接解压。然后到cd elasticsearch-2.2.0/bin目录。

  在windows下执行elasticsearch.bat,在linux下运行./elasticsearch。

  如果一切顺利的话,你应该看到一堆像下面这样的信息:

[2016-02-03 16:53:31,122][INFO ][node                     ] [Rintrah] version[2.2.0], pid[6840], build[8ff36d1/2016-01-27T13:32:39Z]
[2016-02-03 16:53:31,122][INFO ][node                     ] [Rintrah] initializing ...
[2016-02-03 16:53:31,668][INFO ][plugins                  ] [Rintrah] modules [lang-groovy, lang-expression], plugins [], sites []
[2016-02-03 16:53:31,684][INFO ][env                      ] [Rintrah] using [1] data paths, mounts [[work (D:)]], net usable_space [67.2gb], net total_space [99.9gb], spins? [unknown], types [NTFS]
[2016-02-03 16:53:31,684][INFO ][env                      ] [Rintrah] heap size [910.5mb], compressed ordinary object pointers [true]
[2016-02-03 16:53:33,637][INFO ][node                     ] [Rintrah] initialized
[2016-02-03 16:53:33,637][INFO ][node                     ] [Rintrah] starting ...
[2016-02-03 16:53:33,918][INFO ][transport                ] [Rintrah] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
[2016-02-03 16:53:33,934][INFO ][discovery                ] [Rintrah] elasticsearch/1oo5dtelT8ax-3LmnTrs8g
[2016-02-03 16:53:37,982][INFO ][cluster.service          ] [Rintrah] new_master {Rintrah}{1oo5dtelT8ax-3LmnTrs8g}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)
[2016-02-03 16:53:40,363][INFO ][gateway                  ] [Rintrah] recovered [0] indices into cluster_state
[2016-02-03 16:53:40,567][INFO ][http                     ] [Rintrah] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2016-02-03 16:53:40,567][INFO ][node                     ] [Rintrah] started

  这样我们就已经启动了Elasticsearch,当然我们也可以在启动的时候修改集群的名称和节点的名称。例如:

./elasticsearch --cluster.name my_cluster_name --node.name my_node_name

  默认情况下,Elasticsearch使用9200端口提供的REST API。该端口是可配置的。

  在本机访问http://127.0.0.1:9200/

  将会得到一下内容:

{
  "name" : "Rintrah",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.2.0",
    "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe",
    "build_timestamp" : "2016-01-27T13:32:39Z",
    "build_snapshot" : false,
    "lucene_version" : "5.4.1"
  },
  "tagline" : "You Know, for Search"
}

  现在,我们有我们的节点(和集群)将争取的运行,下一步就是要了解如何进行使用。Elasticsearch提供了非常全面和强大的REST API,通过这些API,我们可以了解集群的信息。这些API可以做如下事情:

1、检查群集,节点和索引的情况,状态和统计

2、管理群集、节点和索引数据和文档数据

3、执行CRUD(创建,读取,更新和删除)操作,可以对索引进行操作

4、执行高级搜索操作如分页、排序、过滤、脚本、聚合及其他操作。

赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。


Elasticsearch最新版本2.20特性及如何安装

标签:elasticsearch 赛克蓝德 日志分析 secilog

原文地址:http://zhulinu.blog.51cto.com/539189/1740964

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!