• Elasticsearch学习随笔(一)--原理理解与5.0核心插件部署过程


      最近由于要涉及一些安全运维的工作,最近在研究Elasticsearch,为ELK做相关的准备。于是把自己学习的一些随笔分享给大家,进行学习,在部署常用插件的时候由于是5.0版本的Elasticsearch踩了非常多的坑,写给大家避免大家再踩坑。

    • Elasticsearch启动,5.0版本核心插件的安装。

      Elasticsearch的启动十分简单,只需要平时在Linux下运行即可:

    cd elasticsearch/bin
    ./elasticsearch &
    

      Elasticsearch有两个王牌的工具,一般大家都会用到。一个是head,一个是bigdesk。不过不幸的是目前最新的Elastic 5.x 系列,这两个工具都不能像之前一样插件化集成,但仍可以使用,需要一些特殊的方法。

      对于head工具,我们可以使用npm命令来来启动,并且由于Elasticsearch在5.0版本有严格的跨域限制,所以我们也需要修改Elasticsearch的跨域策略来允许head工具管理Elasticsearch。

      配置Elasticsearch文件下config文件夹下elasticsearch.yml文件,在配置末尾添加以下内容:

     http.cors.enabled: true
     http.cors.allow-origin: "*"
    

      同时head工具使用npm进行启动,无法进行插件化,具体方法如下:

    git clone git://github.com/mobz/elasticsearch-head.git
    cd elasticsearch-head
    npm install
    npm run start
    

      对于bigdesk由于也无法插件化集成,所以需要使用python来发布。

    git clone https://github.com/hlstudio/bigdesk
    cd bigdesk/_site/
    python -m SimpleHTTPServer
    • Elasticsearch核心术语理解:

      这块是困扰我比较久的地方,查阅了很多资料,如果术语不能理解那么我们无法正确且合理的维护Elasticsearch集群,我是通过Head插件来进行学习和理解的。

      Node:我们可以理解为一台服务器和一个虚拟机,是集群的最小分配部分,一个Elasticsearch服务器可以为一个Node。同网段的Node可以通过head来发现并进行管理。

      Index:相当于一个索引,通常对应关系型数据库中的Database,我们将一大类通常分成一个Index。我们在使用head去创建Index的时候,我发现又存在两个关键名词需要理解。

      shards:为了提高查询效率,一个Index要被切成多份,分别存储在多个Node上,同时为了保证高可用,配置Index时候还需要配置replica。举个例子,对于一个Index可能有5个shards,然而万一这五个shards丢了怎么办,最朴素的思想是我把这5个shards再复制一份再分别保存到其他节点上。于是在Elasticsearch集群中我们经常看到这张图,我从网上找了一个生产环境的集群来理解。

      其中加粗的是分片是主分片,未加粗的分片是replica。作为备份。

      后续准备总结一下Elasticsearch常见的API,以及调用关系。

  • 相关阅读:
    codechef: ADAROKS2 ,Ada Rooks 2
    codechef: BINARY, Binary Movements
    codechef : TREDEG , Trees and Degrees
    ●洛谷P1291 [SHOI2002]百事世界杯之旅
    ●BZOJ 1416 [NOI2006]神奇的口袋
    ●CodeForce 293E Close Vertices
    ●POJ 1741 Tree
    ●CodeForces 480E Parking Lot
    ●计蒜客 百度地图的实时路况
    ●CodeForces 549F Yura and Developers
  • 原文地址:https://www.cnblogs.com/Hyber/p/7132513.html
Copyright © 2020-2023  润新知