目录
  1. ElasticStack及Elasticsearch介绍
  2. Elasticsearch安装
  3. Elasticsearch入门
  4. Elasticsearch配置
  5. Elasticsearch REST API
  6. Elasticsearch .NET客户端
  7. 附录
 
ElasticStack及Elasticsearch介绍
 
 
Elastic Stack (旧称ELK Stack): Elasticsearch + Logstash + Kibana + Beats (New)
 
Elastic Stack组件:
  • Elasticsearch
            搜索、分析和存储数据。Elasticsearch是一个基于JSON的分布式搜索和分析引擎,专为水平可扩展性,最高可靠性和易管理性而设计。
  • Logstash
            Logstash是一个动态数据收集管道,具有可扩展的插件生态系统和强大的Elasticsearch协同作用。
  • Kibana
            可视化您的数据。 导航弹性堆栈。Kibana为您的数据提供了可视化,是用于配置和管理Elastic Stack各个方面的可扩展用户界面。
  • Beats
            Beats是轻量级数据运送平台,可将边缘机器的数据发送到Logstash和Elasticsearch。
 
Elasticsearch安装
 
最新版本为Elasticsearch 6.5.4 GA Release,Windows下载安装包如下:
 
安装条件:64位Java虚拟机
 
 
安装步骤:
 
  1. 下载并解压缩Elasticsearch
  2. 运行bin\elasticsearch.exe
  3. 使用浏览器访问http://localhost:9200
 
配置ES使用JVM分配的内存堆(Heap)
对于小型部署来说1G足够,最大不应超过内存的50%
 
 
 
安装成功验证画面
 
 
Elasticsearch入门
 
Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。 它允许您快速,近实时地存储,搜索和分析大量数据。 它通常用作底层引擎/技术,为具有复杂搜索功能和要求的应用程序提供支持。
 
以下是Elasticsearch可用于的一些示例用例:
 
  • 您经营一家在线网上商店,您可以让客户搜索您销售的产品。在这种情况下,您可以使用Elasticsearch存储整个产品目录和库存,并为它们提供搜索和自动填充建议。
 
  • 您希望收集日志或交易数据,并且希望分析和挖掘此数据以查找趋势,统计信息,摘要或异常。在这种情况下,您可以使用Logstash(Elasticsearch / Logstash / Kibana堆栈的一部分)来收集,聚合和解析数据,然后让Logstash将此数据提供给Elasticsearch。一旦数据在Elasticsearch中,您就可以运行搜索和聚合来挖掘您感兴趣的任何信息。
 
  • 您运行价格警报平台,允许精通价格的客户指定一条规则,例如“我有兴趣购买特定的电子产品,如果小工具的价格在下个月内从任何供应商降至X美元以下,我希望收到通知” 。在这种情况下,您可以刮取供应商价格,将其推入Elasticsearch并使用其反向搜索(Percolator)功能来匹配价格变动与客户查询,并最终在发现匹配后将警报推送给客户。
 
  • 您有分析/业务智能需求,并希望快速调查,分析,可视化并询问有关大量数据的特定问题(想想数百万或数十亿条记录)。在这种情况下,您可以使用Elasticsearch存储数据,然后使用Kibana(Elasticsearch / Logstash / Kibana堆栈的一部分)构建自定义仪表板,以便可视化对您来说重要的数据方面。此外,您可以使用Elasticsearch聚合功能针对您的数据执行复杂的商业智能查询。
 
基本概念
 
  • NRT(接近实时)
            Elasticsearch是一个近实时搜索平台。 这意味着从索引文档到可搜索文档的时间有一点延迟(通常为一秒)。
 
  • Cluster(集群) —— 按应用或业务,如HR、法务
            集群是一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。 群集由唯一名称标识,默认情况下为“elasticsearch”。 此名称很重要,因为如果节点设置为按名称加入群集,则该节点只能是群集的一部分。
 
  • Node(节点) —— 按物理服务器
            节点是作为群集一部分的单个服务器,存储数据并参与群集的索引和搜索功能。 就像集群一样,节点由名称标识,默认情况下,该名称是在启动时分配给节点的随机通用唯一标识符(UUID)。 如果不需要默认值,可以定义所需的任何节点名称。
 
  • Index(索引)  ——  按业务领域,如订单、合同、交易记录
            索引是具有某些类似特征的文档集合。 例如,您可以拥有客户数据的索引,产品目录的另一个索引以及订单数据的另一个索引。 索引由名称标识(必须全部小写),此名称用于在对其中的文档执行索引,搜索,更新和删除操作时引用索引。
 
  • Type(类型) —— 6.0.0已弃用
  • Document(文档)
            文档是可以编制索引的基本信息单元。 例如,您可以为单个客户提供文档,为单个产品提供另一个文档,为单个订单提供另一个文档。 该文档以JSON(JavaScript Object Notation)表示,JSON是一种普遍存在的互联网数据交换格式。在索引/类型中,您可以根据需要存储任意数量的文档。 请注意,尽管文档实际上驻留在索引中,但实际上必须将文档编入索引/分配给索引中的类型。
 
  • Shards & Replicas (分片和复制)
            为了解决这个问题,Elasticsearch提供了将索引细分为多个称为分片的功能。 创建索引时,只需定义所需的分片数即可。 每个分片本身都是一个功能齐全且独立的“索引”,可以托管在集群中的任何节点上。
            分片很重要,主要有两个原因:
    • 允许水平拆分/扩展索引容量
    • 允许跨分片(可能在多个节点上)分布和并行化操作,从而提高性能/吞吐量
            分片的分布方式以及如何将其文档聚合回搜索请求的机制完全由Elasticsearch管理,对用户而言是透明的。
            在可以随时发生故障的网络/云环境中,非常有用,强烈建议使用故障转移机制,以防分片/节点以某种方式脱机或因任何原因消失。 为此,Elasticsearch允许您将索引的分片的一个或多个副本制作成所谓的副本分片或简称副本。
 
        主分片和复制分片:
 
  • 此索引包括两个主分片和两个复制分片。你的应用会循环请求各节点。
  • 写请求路由到主分片然后复制分片。
  • 读请求路由到主分片或任何复制分片。
 
Elasticsearch配置
 
ES目录结构
 
  • bin: 运行ES实例和插件管理的脚本
  • lib: ES使用的库文件
  • modules: ES主要模块
  • plugins: ES插件目录
 
安装后可以通过Windows服务来停止或启动Elasticsearch。
 
ES客户端
 
 
Elasticsearch REST API
 
现在我们已经启动并运行了节点(和集群),下一步是了解如何与它进行通信。 幸运的是,Elasticsearch提供了一个非常全面和强大的REST API,您可以使用它与集群进行交互。 使用API可以完成的一些事项如下:
  • 检查群集,节点和索引运行状况,状态和统计信息
  • 管理您的群集,节点和索引数据和元数据
  • 对索引执行CRUD(创建,读取,更新和删除)和搜索操作
  • 执行高级搜索操作,例如分页,排序,过滤,脚本编写,聚合等等
 
查询集群状态:GET http://localhost:9200/_cat/health?v
查询节点状态:GET http://localhost:9200/_cat/nodes?v
查询索引列表:GET http://localhost:9200/_cat/indices?v
 
创建索引customer:PUT  http://localhost:9200/customer?pretty
{
"name": "John Doe"
}
 
 
基本语法:<HTTP Verb> /<Index>/<Type>/<ID>
 
更新/创建索引(带文档ID):PUT http://localhost:9200/customer/_doc/1?pretty
创建索引(不带文档ID):POST  http://localhost:9200/customer/_doc?pretty
 
{
  "script" : "ctx._source.age += 5"
}
 
 
Elasticsearch .NET客户端
 
Elasticsearch的.NET客户端包括Elasticsearch.Net和NEST:
 
  • NEST (推荐使用) - 高级客户都
 
Elasticsearch PasS申请流程(CIO)
 
准备材料
  1. Obtain the Name Domain requirements.
  2. Elastic Search Version
  3. Node Configuration
    1. Instance Count
    2. Instance Type
  4. Storage Configuration
    1. Storage Type
    2. Volume Type
    3. Volume Size
  5. Snaposhot Configuration
申请流程
  1. Application team submits an Infrastructure Architecture type RITM to ED (INFRADELV-OPER-CIOENVDELV).
The ticket contains the requirements above. (See I. Requirements)
  1. ED assignee submits a CHG to ID (INFRADELV-CIO-Infrastructure Design) for TA357 update.
  2. ED assignee creates the AWS ElasticSearch in AWS.
  3. Application team verifies the configuration and provides sign off.
 
CIO Elasticsearch服务创建负责:ED Team
AWS Elasticsearch服务版本:5.3 (可以跟ED确认)
服务实例命名规则:AppName-AIRID-ENV
 
流程
 
访问控制可通过CAPP申请,如开通EC2访问ES的权限(resource based permissions)
 
附录
 
参考链接:
 

Elasticsearch上手指南的更多相关文章

  1. Rancher 快速上手指南操作(1)

    Rancher 快速上手指南操作(1)该指南知道用户如何快速的部署Rancher Server 管理容器.前提是假设你的机器已经安装好docker了.1 确认 docker 的版本,下面是 ubunt ...

  2. Elasticsearch 权威指南

    Elasticsearch 权威指南 http://fuxiaopang.gitbooks.io/learnelasticsearch/content/index.html

  3. X下轻量级桌面WindowMaker上手指南

    layout: post title: 轻量级桌面WindowMaker上手指南 tags: x11, cygwin, raspi --- 最近工作上需要在远程Linux上运行一个桌面(我需要跑Net ...

  4. UnityShader快速上手指南(三)

    简介 这一篇还是一些基本的shader操作:裁剪.透明和法向量的应用 (纠结了很久写不写这些,因为代码很简单,主要是些概念上的东西) 先来看下大概的效果图:(从左到右依次是裁剪,透明,加了法向量的透明 ...

  5. Elasticsearch 权威指南 NESTAPI地址

    Elasticsearch 权威指南:http://fuxiaopang.gitbooks.io/learnelasticsearch/content/index.html NEST:http://n ...

  6. Windows 8 系统完全上手指南 - 非常详尽的 Win8 系统入门学习手册与使用技巧专题教程!

    每次当有新版本的操作系统发布的时候,市面上总会冒出各种从入门到精通类的学习书籍,这次最新的 Windows 8 也不例外!不过,今天给大家送上免费的大礼——<Windows 8 完全上手指南&g ...

  7. Resharper上手指南

    原文http://www.cnblogs.com/renji/archive/2007/12/11/resharper.html Resharper上手指南 我是visual studio的忠实用户, ...

  8. NewLife.XCode 上手指南2018版(二)增

    目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...

  9. NewLife.XCode 上手指南2018版(一)代码生成

    目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...

随机推荐

  1. Parrot Linux安装教程

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.Parrot Linux介绍 Parrot 是一个由开发人员和安全专家组成的全球社区,他们共同构建一个共享的工具框架,使他们的工作更轻松.标准 ...

  2. nginx配置限制同一个ip的访问频率方法

    1.在nginx.conf里的http{}里加上如下代码: limit_conn_zone $binary_remote_addr zone=perip:10m;   limit_conn_zone ...

  3. 网络编程 并发socketserver

    网络编程 并发socketserver ipv4.ipv6 ip协议:规定网络地址的协议 B/S架构 C/S架构 bs是cs的一种 B/S是浏览器和服务端架构 C/S是客户端和服务端架构 osi七层协 ...

  4. 重写(Override)与重载(Overload)的区别(面试题)

    概念:重写(Override):是存在子父之间的关系,子类里定义的方法与父类里定义的方法具有相同的方法名以及相同的返回值和参数类型 重写规则: 1.方法名形参列表相同: 2.访问权限,子类大于等于父类 ...

  5. 中国软件杯---电力客户行为分析---图表联动echarts-demo(flask)

    中国软件杯---电力客户行为分析---图表联动echarts-demo(flask) 题目链接(可下载原始CSV数据集):http://www.cnsoftbei.com/plus/view.php? ...

  6. 什么是GUI?

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面.图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠 ...

  7. Java中如何声明方法?JavaScript中如何声明函数?

    public void method(){ } //实例方法 Function Declaration 可以定义命名的函数变量,而无需给变量赋值.Function Declaration 是一种独立的 ...

  8. Java 中的 LinkedList 是单向链表还是双向链表?

    是双向链表,你可以检查 JDK 的源码.在 Eclipse,你可以使用快捷键 Ctrl + T, 直接在编辑器中打开该类.

  9. 学习Tomcat(二)

    一. Java简介 JDK: 面向开发人员使用的SDK,提供Java的开发环境和运行环境 SDK: 软件开发包,包括函数库.编译程序等 JRE: Java的运行环境,面向Java的使用者,不是开发者 ...

  10. 学习RabbitMQ(四)

      I. 消息中间件特点: 1,异步处理模式 消息发送者可以发送一个消息而无需等待响应,消息发送者将消息发送到一条虚拟的通道或队列上,消息接收者则订阅或监听该通道,一条消息可能最终转发给一个或多个消息 ...