elasticsearch在NAS上的部署和基本使用

elasticsearch在NAS上的部署和使用

elasticsearch是一款企业级的全文搜素引擎,基于java的Lucene库开发,完全采用RESTful接口面向用户,对分布式搜索支持非常好!

部署环境

为了能实现分布式部署,我这里采用了两台群晖的nas,分别是x86和arm的架构,实践证明都是能运行起来的。

主机:群晖的DS415+,DS414j (https://www.synology.com)

版本:elasticsearch-1.5.0

安装

先从apache的官方网站上下载elasticsearch的程序包

https://www.elastic.co/downloads/elasticsearch

这里有4种下载包,tar/zip/deb/rpm,我这里选择zip,在nas中解压后就能直接执行了。

需要注意的是,因为elasticsearch是用java编写的,所以运行的环境必须要有java的解释器,在群晖nas上默认是没有的,需要安装java的管理器,然后去oracle的官方网站上下载jre来安装到nas中去。

运行

解压后,运行./bin/elasticsearch,过几秒钟就会把服务启动起来了,如果想要在background中运行,就采用./bin/elasticsearch -d的方式。

运行后,可以开打浏览器直接访问http://localhost:9200/  (这里localhost请替换成你的服务器地址)

运行成功可以看到如下内容:

顺便说一下,

如果想更加容易的去管理elasticsearch,那么就使用Marvel插件(太贵了1000刀一年了,用不起,自己开发)

该插件提供一下功能:

监控你的cluster状态

实时和历史分析elasticsearch的内部状态,存储历史记录,性能监控等

提供了一个call Elasticsearch‘s REST API的控制台

bin/plugin -i elasticsearch/marvel/latest

Stop and Start Elasticsearch

http://any-server-in-cluster:9200/_plugin/marvel

如果不想被监控,那么

echo ‘marvel.agent.enabled: false‘ >> ./config/elasticsearch.yml
如果是在foreground开启,那就直接ctrl+c就可以关闭node,如果不是,那么就用http://localhost:9200/_shutdown 来关闭吧

和关系型数据库的关系

如果和RDB进行比较,那么

Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ Columns

Elasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒ Fields

数据读写

插入/更新数据

you see ? employee/1 要带上1,一般就是用key

抓取数据

GET /megacorp/employee/1*PUT插入数据,GET获取数据,DELETE删除数据,HEAD查询是否存在数据,更新数据?用PUT覆盖就行了

搜索数据

如果是搜索所有的记录,那么就
GET /megacorp/employee/_search

如果是要用轻量级的搜索,那么就
GET /megacorp/employee/_search?q=last_name:Smith

如果要用更加复杂一点的搜索方法,可以使用The domain-specific language (DSL)

对于全文搜索来说,会匹配相关度的。可以精确匹配,也可以让关键词高亮

甚至可以做聚合分析和搜索嵌套

cluster

集群是这个搜索引擎的重头戏啊,通过在不同node上的shard部署,可以做到分布式搜索和容灾备份

创建index的时候,就可以指定分多少个shard,要冗余多少份

这里就指定了shards和replicas的数量,shards只在创建时指定,而replicas可以事后再修改的,默认都是一份rep
直接启动第二node的elasticsearch,然后会自动寻找到主节点进行replicas的拷贝的,完成后如下

如果是1份拷贝,那么3台node就是

但是如果我们想scale更多,则可以提高rep的数量

如果是用URL方法去关闭某个node,则整个cluster就被关闭了,
如果是强制关闭某个node,那么就会降级成如下

集群会遇到些数据更新冲突等问题,

elasticsearch是通过_version这个metadata来检测是否出现更新冲突,如果冲突的就返回失败,由客户端自行决定

如何解决冲突,比如说再次获取最新数据,决定是否插入等。

因为引擎是为每个字段默认都建立了引索,所以如果是部分更新document,那么也是 retrieve-change-reindex process这个步骤 ,但是用自带update的API确保了在一个shards里完成这些步骤,减少到了网路耗时,这样也间接降低了更新冲突的可能性。

客户端

以下是目前官方所支持的客户端程序,通常都是封装好了,CRUD就像操作关系型数据库一样方便。

时间: 2024-10-28 00:57:26

elasticsearch在NAS上的部署和基本使用的相关文章

Kibana在Linux上安装部署及使用说明

Kibana安装及使用说明 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索.查看交互存储在Elasticsearch索引中的数据. 官方地址:https://www.elastic.co/cn/products/kibana 一.Kibana安装1.环境准备 Kibana是ElasticSearch的可视化平台,依赖ElasticSearch,需要优先安装ElasticSearch. 示例:ElasticSearch在Linux上安装部署 2.Kibana下载

Netty简单应用与线上服务器部署_netty视频

Netty简单应用与线上服务器部署 课程学习地址:http://www.xuetuwuyou.com/course/198 课程出自学途无忧网:http://www.xuetuwuyou.com 一.开发环境 4.1.11.Final   jdk1.8 maven 3.2 Spring 4.3.9 二.适合人群 ①想深入学习java ClassLoader ②想在线上linux服务器上运行netty或Springboot服务 三.课程目标 ①掌控ClassLoader ②学会编写shell脚本

利用Powershell在IIS上自动化部署网站

本文主要讲如何通过Powershell在IIS上自动化部署ASP.NET网站,而不涉及Powershell的基本语法,如果没有Powershell基础的同学也可以把本文作为学习Powershell的基石,通过学习本文中的脚本再去查阅具体的语法,可能会达到事半功倍的效果. 一般我们建立网站大致需要以下几个步骤: 1.安装.NET Framework 2.安装了IIS 3.注册.启用ISAPI和CGI限制 4.建立网站 5.设置默认首页.身份验证.设置MIME类型 6.绑定域名或IP地址 7.设置权

Window Server 2008 R2 上安装部署 Exchange 2010

最近先来无事,捣鼓捣鼓 Exchange Server 2010 服务的安装和调试. 一,事先规划: 两台服务器,一台域DC ,一台做 Exchange Server: Exchange 2010 此处将所有功能安装在一台机器上. DC                             Exchange Window Server 2008 R2           Window Server 2008 R2 IP  :10.0.0.100                 IP   :10

rsync实现负载均衡集群文件同步,搭建线上测试部署环境

闲来无事,搭建一个负载均衡集群,至于负载均衡集群搭建过程,找时间写下.这次主要写集群之间的文件同步,以及线上测试环境的搭建. 笔者看过很多公司都没有线上测试环境,真是崩溃了,不造怎么确保线上线下环境一致的. 笔者此次使用三台服务器: 192.168.138.3   web服务器 192.168.138.4   web服务器 192.168.138.10  web服务器+线上测试环境+源站 其中3 4 服务器作为集群中的web服务器,对外开放,是负载均衡集群的部分. 其中10 服务器不对外开放,代

跟我学习dubbo-在Linux操作系统上手工部署Dubbo服务(5)

在Linux操作系统上手工部署Dubbo服务 1.环境变量配置 Java环境变量----只需要JRE vi /etc/profile ## java env export JAVA_HOME=/usr/local/java/jdk1.7.0_72 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/li/tools.jar:$JRE_HOME/lib/rt.jar export PA

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

Zabbix3.0的安装.部署.配置,必须基于LAMP环境或是是LNMP环境. 关于LAMP环境的简单快速搭建,见博客:http://afterdawn.blog.51cto.com/7503144/1923139 注意:以下步骤都是在LAMP配置之后进行的. 本文不会再对zabbix-server和zabbix-agent理论知识再进行介绍,建议看完http://afterdawn.blog.51cto.com/7503144/1922502再进行zabbix实战. Zabbix3.0对软硬件

在Ubuntu14.04上快速部署OpenStack

对于初学者来说,OpenStack手工部署相当麻烦, 而且需要花较多时间学习.不过我们可以使用部署脚本来安装OpenStack. 网上有一款名叫DevStack的号称最傻瓜的OpenStack部署工具.用了一下觉得的确挺傻瓜的.组件是从github上面直接拉下来,不仅慢不说,连版本兼容都有可能出问题.安装就用了4个小时.想要更改参数更是只能重来.更可恶的是它会使用python setup脚本把一些可能过期的包直接添加到系统的python库里,引发一大堆错误.基本上用DevStack安装失败了可以

在Tomcat上安装部署SAIKU

在Tomcat上安装部署SAIKU Saiku是一个强大的独立工具,用于查询构建数据集市,如:即席查询报表.图表展示.导出报表成excel或csv格式等.Saiku是基于Mondrian OLAP引擎. 本文主要是一步一步解释如何在tomcat下部署saiku,为了让你更好更快的使用.开始之前,假设你已经比较熟悉数据集市数据库,以及如何建立Mondrian Schema.(可以参考之前的<pentaho schema workbench 图文教程>) 示例数据库.schema文件以及saiku