рдПрд▓рд┐рдпрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╡рд┐рдХрд╕рд┐рдд рд╕рдореБрджрд╛рдп, рд╕рдорд░реНрдерди рдФрд░ рд╡реЗрдм рдкрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдкрд╣рд╛рдбрд╝ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЦреЛрдЬ рдЗрдВрдЬрди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЕрд╕рдВрдЧрдд рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЖрддреА рд╣реИред
рдмрд╣реБрдд рдкрд╣рд▓реЗ рдФрд░ рдореБрдЦреНрдп рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рд╣реИ "рдЖрдкрдХреЛ рдПрдХ рдЦреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд▓реЛрдЪрджрд╛рд░ рд▓реЗрдВ!"ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯреА рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рд╖рдп рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЖрдк рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджреЗрдВрдЧреЗред
рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рдБ, рдереЛрдХ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрдзреНрдпрдпрди рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рдкреВрд░реНрд╡ рдкреЛрд╕реНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХреЛрдВ рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рддрдХ рдЪрд▓рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдкреБрд╕реНрддрдХреЛрдВ рддрдХ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛, рдЙрд╕реА рд╕рдордп рдЧреБрдЧрд▓реА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕рд░реНрдЪ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕рд░рд▓ рдЪреБрдирдирд╛ рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдПрд▓рд┐рдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдореЗрдВ рдореБрдЭреЗ рдХреНрдпрд╛ рдореБрдЦреНрдп рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдореВрд╣рд┐рдХ рдмреНрд▓реЙрдЧ рдореЗрдВ рдЦреЛрдЬ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЛ рдЯреИрдЧ, рд╕рдореБрджрд╛рдп, рдЬреНрдпрд╛рдорд┐рддрд┐ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЗрдВ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдпреЛрдЬрдирд╛
рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╣рдо рдЬреЛ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рд╕рдВрдЧреНрд░рд╣рдг рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛:
- рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЦреЛрдЬ рдЗрдВрдЬрди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
- рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдФрд░ рд╡рд┐рд▓реЛрдкрди рдХреЛ рдЙрдЪреНрдЪ рдЧрддрд┐ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкреЗрдХреНрд╖рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рддреАрд╡реНрд░рддрд╛ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЛ рдХрдИ рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрд░реЛрддреЛрдВ (рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕) рд╕реЗ рднрд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
. , , , , , , . . . , .
? . - . .
, . .
{
"title" : " Elasticsearch",
"author" : {
"name": "Roman"
},
"content" : "Elasticsearch, , ...",
"tags":[
"elasticsearch"
],
"ps": ", JSON, BSON XML"
}
, , , .
, , , . .
Elasticsearch
. . ?
-. , . .
, , , . .
. .
? , , , ( ) .
, , , . , , . , .
тАФ , . , , , .
.
тАФ open-source , , , Apache Lucene.
Elasticsearch Lucene
, , . , , , . .
тАФ . , , . .
тАФ . , , . , ?
, . ? - , . - тАФ , , . , , .
, , . , тАФ ( ), . тАФ .
, Lucene. , . , ? . Lucene , (shard) . .
Shard Elasticsearch тАФ , Lucene.
Index тАФ , . , .
.
. . , . ! Elasticsearch . , , . . , .
5, index.number_of_shards: 1
.
PUT _template/all
{
"template": "*",
"settings": {
"number_of_shards": 1
}
}
. .
232 4294967296 , , . , , . , .
. Elasticsearch , . , 10 .
. , .
, Lucene(). , , , . тАФ .
тАФ CRUD- . data node coordinating node. .
Elasticsearch (node). Cluster тАФ . .
:
elasticsearch.yml . , .
, http.port
, 9200 9300 . , .
. , data- .
, . "" . . , , 2007 .
6.7 Elasticsearch . тАФ hot, warm cold.
. hot- SSD, warm cold HDD-. / :
- hot тАФ 1:30
- warm тАФ 1:100
- cold тАФ 1:500
data node node.data: true
, , .
. , MapReduce. :
- Map тАФ ,
- Reduce тАФ worker-
. , worker-( data-).
, coordinating- , , , .
, . . .
, .
Elasticsearch . , coordinating-, . , , false
.
тАФ coordinating-. , / . , .
, coordinating- . data-, . , .
. , , . " " .
master-node. , : , , . .
Elasticsearch master node. node.master: true
.
Master- , . , . 10 only-master .
, . , . , , .
data-, .
. , . , , .
number_of_replicas
. :
PUT / _settings {
"index": {
"number_of_replicas": someVal
}
}
.
primary shard, replica shard, .
, , flush commit Lucene, .
Elasticsearch cluster health status. :
green
тАФyellow
тАФ , ,red
тАФ ,
, - .
. ? .
тАФ .
, , , , ? ? , .
.
Elasticsearch node.master: true
, , , . :
node.master: true
node.data: true
. , . , . - , . split-brain problem.
. . , .
. . . , -.
. - , .
, ? ? ? ?
. .
, , 50%+ . , . .
, . :
_ = __/2 + 1
, . , , .
Elasticsearch , : node.voting_only: true
.
Elasticsearch . . , 7 4, , 3 , 4.
, , , , , .
, , . , . .
Elsaticsearch .
, . тАФ Elasticsearch , .
рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░, рдкреНрд▓рдЧрдЗрдиреНрд╕, рдкреНрд░рд╢реНрдиреЛрдВ, рдЯреЛрдХрди, рдореИрдкрд┐рдВрдЧ рдФрд░ рдмрд╛рдХреА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрдирд╕реЗрд╕реНрдЯ рдФрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдиреЛрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдирд╣реАрдВ рдХрд╣рд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдирд╣реАрдВ рд╣реИрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА
рд▓реЛрдЪрджрд╛рд░ рдвреЗрд░ рдФрд░ рдЙрддреНрдкрд╛рдж рдкреНрд░рд▓реЗрдЦрди
рдЖрдХрд╛рд░ рджреЗрдиреЗ рдПрд▓рд┐рдЯрд┐рдХреНрд╕
рдПрд▓рд┐рдЯрд┐рдХреНрд╕ рдЦреЛрдЬ 5.x рдХреБрдХрдмреБрдХ, рддреАрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг