實(shí)訓(xùn)總結(jié)20171008

ElasticSearch

Redis c++編寫代碼量小,消耗內(nèi)存大

SSDB 360的k-v硬盤

fastDFS阿里k-vNginx

大數(shù)據(jù)4V理論

?Volume,數(shù)據(jù)規(guī)模大,從T升到P、E;

?Variety,數(shù)據(jù)類型多,非結(jié)構(gòu)化的數(shù)據(jù)、語音、地理位置信息、視頻等數(shù)據(jù);

?Value,數(shù)據(jù)價(jià)值高,具有很大的商業(yè)價(jià)值,支持深層數(shù)據(jù)挖掘;

?Velocity,數(shù)據(jù)處理速度快,要求實(shí)時(shí)處理而非傳統(tǒng)的存儲(chǔ)性數(shù)據(jù)進(jìn)行數(shù)據(jù)庫處理。

層次架構(gòu)


基礎(chǔ)概念

接近實(shí)時(shí):Elasticsearch是一個(gè)接近實(shí)時(shí)的搜索平臺(tái)。這意味著,從索引一個(gè)文檔直到這個(gè)文檔能夠被搜索到有一個(gè)輕微的延遲(通常是1秒)

集群(cluster):一個(gè)集群就是由一個(gè)或多個(gè)節(jié)點(diǎn)組織在一起,它們共同持有你整個(gè)的數(shù)據(jù),并一起提供索引和搜索功能。

節(jié)點(diǎn)(node):一個(gè)節(jié)點(diǎn)是你集群中的一個(gè)服務(wù)器,作為集群的一部分,它存儲(chǔ)你的數(shù)據(jù),參與集群的索引和搜索功能。一個(gè)節(jié)點(diǎn)可以通過配置集群名稱的方式來加入一個(gè)指定的集群

索引(index):一個(gè)索引就是一個(gè)擁有幾分相似特征的文檔的集合。

類型(type):在一個(gè)索引中,你可以定義一種或多種類型。一個(gè)類型是你的索引的一個(gè)邏輯上的分類/分區(qū),其語義完全由你來定。

文檔(document):一個(gè)文檔是一個(gè)可被索引的基礎(chǔ)信息單元。

分片和復(fù)制(shards & replicas)

一個(gè)索引可以存儲(chǔ)超出單個(gè)結(jié)點(diǎn)硬件限制的大量數(shù)據(jù)。比如,一個(gè)具有10億文檔的索引占據(jù)1TB的磁盤空間,而任一節(jié)點(diǎn)都沒有這樣大的磁盤空間;或者單個(gè)節(jié)點(diǎn)處理搜索請(qǐng)求,響應(yīng)太慢。

為了解決這個(gè)問題,Elasticsearch提供了將索引劃分成多份的能力,這些份就叫做分片。當(dāng)你創(chuàng)建一個(gè)索引的時(shí)候,你可以指定你想要的分片的數(shù)量。每個(gè)分片本身也是一個(gè)功能完善并且獨(dú)立的“索引”,這個(gè)“索引”可以被放置到集群中的任何節(jié)點(diǎn)上。

分片之所以重要,主要有兩方面的原因:

允許你水平分割/擴(kuò)展你的內(nèi)容容量

允許你在分片(潛在地,位于多個(gè)節(jié)點(diǎn)上)之上進(jìn)行分布式的、并行的操作,進(jìn)而提高性能/吞吐量。

怎樣聚合回搜索請(qǐng)求,是完全由Elasticsearch管理的

ES部署

1.Cluster

cluster.name: elasticsearch

設(shè)置ElasticSearch集群的名字,默認(rèn)的集群名字為elasticsearch,如果想要讓某一ElasticSearch節(jié)點(diǎn)加入集群只需指定cluster.name

2. Node

node.name:“Franz

Kafka“,設(shè)置ElasticSearch節(jié)點(diǎn)的名字

node.master: true,設(shè)置節(jié)點(diǎn)是否為主節(jié)點(diǎn)

node.data: true,設(shè)置節(jié)點(diǎn)是否存儲(chǔ)索引分片

3. Index

index.number_of_shards: 5,設(shè)置索引的分片數(shù),默認(rèn)為5個(gè)分片

index.number_of_replicas: 1,設(shè)置索引的副本數(shù),默認(rèn)為1個(gè)副本

4. Paths

path.data: /data/esdata,設(shè)置索引數(shù)據(jù)的存儲(chǔ)路徑

path.logs: /data/eslogs,設(shè)置日志數(shù)據(jù)的存儲(chǔ)路徑

ES常用命令

_cat系列

_cat系列提供了一系列查詢elasticsearch集群狀態(tài)的接口。你可以通過執(zhí)行

curl -XGET localhost:9201/_cat

獲取所有_cat系列的操作

http://47.94.18.202:9201/

/_cat/allocation ?v

/_cat/shards ?v

/_cat/shards/{index} ?v

/_cat/master ?v

/_cat/nodes ?v

/_cat/indices ?v

/_cat/indices/{index} ?v

/_cat/segments ?v

/_cat/segments/{index} ?v

/_cat/count ?v

/_cat/count/{index} ?v

/_cat/recovery ?v

/_cat/recovery/{index} ?v

/_cat/health ?v

/_cat/pending_tasks ?v

/_cat/aliases ?v

/_cat/aliases/{alias} ?v

/_cat/thread_pool ?v

/_cat/plugins ?v

/_cat/fielddata ?v

/_cat/fielddata/{fields} ?v

你也可以后面加一個(gè)v,讓輸出內(nèi)容表格顯示表頭

2_cluster系列

1、查詢?cè)O(shè)置集群狀態(tài)

curl -XGET localhost:9201/_cluster/health?pretty=true

pretty=true表示格式化輸出

level=indices表示顯示索引狀態(tài)

level=shards表示顯示分片信息

2、curl -XGET localhost:9201/_cluster/stats?pretty=true

顯示集群系統(tǒng)信息,包括CPU JVM等等

3、curl -XGET localhost:9201/_cluster/state?pretty=true

集群的詳細(xì)信息。包括節(jié)點(diǎn)、分片等。

3、curl -XGETlocalhost:9201/_cluster/pending_tasks?pretty=true

2_nodes系列

1、查詢節(jié)點(diǎn)的狀態(tài)

curl -XGET ‘http://localhost:9201/_nodes/stats?pretty=true’

curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2/stats?pretty=true’

curl -XGET ‘http://localhost:9201/_nodes/process’

curl -XGET ‘http://localhost:9201/_nodes/_all/process’

curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2,192.168.1.3/jvm,process’

curl -XGET‘http://localhost:9201/_nodes/192.168.1.2,192.168.1.3/info/jvm,process’

curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2,192.168.1.3/_all

curl -XGET ‘http://localhost:9201/_nodes/hot_threads

插件有kopf、head、sql

腦裂問題:由于某些節(jié)點(diǎn)的失效,部分節(jié)點(diǎn)的網(wǎng)絡(luò)連接會(huì)斷開,并形成一個(gè)與原集群一樣名字的集群,這種情況成為集群腦裂(split-brain)現(xiàn)象。這個(gè)問題非常危險(xiǎn),因?yàn)閮蓚€(gè)新形成的集群會(huì)同時(shí)索引和修改集群的數(shù)據(jù)。

正常情況下,集群中的所有的節(jié)點(diǎn),應(yīng)該對(duì)集群中master的選擇是一致的,這樣獲得的狀態(tài)信息也應(yīng)該是一致的,不一致的狀態(tài)信息,說明不同的節(jié)點(diǎn)對(duì)master節(jié)點(diǎn)的選擇出現(xiàn)了異?!簿褪撬^的腦裂問題。這樣的腦裂狀態(tài)直接讓節(jié)點(diǎn)失去了集群的正確狀態(tài),導(dǎo)致集群不能正常工作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容