您的位置:首页 > 移动开发

elasticsearch 核心概念

2017-09-29 17:25 501 查看
转自大数据学习平台:大讲台: http://www.dajiangtai.com/course/search.do?search=elastic

     一、分片(shards)

     1、一个索引库默认有5个分片,如果想更改分片数,必须在创建索引库的时候指定

          POST /{indexname}  -d {"settings":{"shards":5}}

          例如:curl -XPOST http://hadoop01:9200/djtshards -d '{"settings":{"shards":5}}'
          通过可视化管理插件head查看:

     2、默认一个分片可以存储2,147,483,519条数据。

     3、分片可以使得节点的压力均衡

二、副本(replactions)
     1、默认一个分片有一个副本,
          可以在创建索引库的时候指定副本数量     -d {"settings":{"number_of_replacations":2}}
          也可以在索引库已经存在的情况下更新副本数量     PUT /{indexname}/_settings   -d {"index":{"number_of_replacations":1}}
     
     2、分片可以提高系统的容错性,主分片和副本一定式分布在不同的节点上的。

三、Recover
     1、es在有节点加入或者退出时,会重新分配分片及副本的分布。

四、gateway(数据持久化)
     1、hdfs方式
          首先要安装插件,在github上查看下es于es-hdfs插件对应的版本
     -----------------------------------------------------------------
| Hadoop Plugin    | ElasticSearch    | Embedded Hadoop Version |
-----------------------------------------------------------------
| master           | 0.21 -> master   | 0.20.204.0              |
-----------------------------------------------------------------
| 1.2.0            | 0.19 -> 0.20     | 0.20.204.0              |
-----------------------------------------------------------------
| 1.1.0            | 0.19 -> 0.20     | 0.20.204.0              |
-----------------------------------------------------------------
| 1.0.0            | 0.18             | 0.20.204.0              |
-----------------------------------------------------------------


          bin/plugin install elasticsearch/elasticsearch-repository-hdfs/2.2.0

修改配置文件 config/elasticsearch.yml

     gateway:
          type: hdfs
     gateway:
          hdfs:
          uri: hdfs://cluster1/
               
五、mapping(索引)

     1、mapping即为索引类型的定义,类型的名称,类型有哪些属性(字段)
         
     2、 查看某个索引库的索引信息:
          GET /{indexname}/_mapping?pretty
     
{

  "djt" : {

    "mappings" : {

      "user" : {

        "properties" : {

          "age" : {

            "type" : "long"

          },

          "name" : {

            "type" : "string"

          }

        }

      }

    }

  }

}
     3、创建mapping
         PUT /{indexname}/ -d {"mappings":{"user":{"properties":{"name":{"type":"string"}}}}}
     4、更新mapping
         POST /{indexname}/{typename} -d {"properties":{"name":{"type":"string"}}}
          
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息