elasticsearch是乙個基於apache lucene的分布式搜尋引擎,具備rest api風格、高可用、面向文件等風格,集群高度可擴充套件。著名的github就是使用es來實現**搜尋功能。集群: 乙個集群對應唯一的集群名,es服務啟動時,各個機器根據各自的集群名選擇加入的集群。集群中的master的選舉和管理由es自行完成,使用者只需定義集群名即可。如上圖,四台機器組成乙個集群,其中175表示主節點。
節點: 集群中的每一台機器都是乙個節點,每個節點都有單獨的ip和節點名,便於後續管理。
索引: es的索引可以看成是資料庫的表結構,它是一類文件的集合。如上圖,mainpost2017表示乙個索引。
文件: 集群中的每一條資料都稱為乙個文件,文件格式為json。
分片: es的每乙個分片代表乙個磁碟儲存單位,用來完成儲存過程。如上圖,共有五個分片,每個分片都有一主一從。es集群預設是五個分片,每個分片都有一主一從兩個副本,當然這種配置是可以修改的。通過分片可以將資料均勻的分攤到各個節點上,降低對io的壓力。同時多個分片可以使得查詢的速度增加,提高搜尋效率。通過主備的模式,提高系統穩定性,降低資料丟失的風險。需要注意的是,分片的數量只能在建立的時候指定,不可以在後期修改。
我用的版本是2.3.4, 安裝和配置的基本步驟是:
wget,把 user:user換成自己機器上的使用者,當然,如果沒有的話請增加使用者,不詳述。然後開始修改es的配置檔案,也就是elasticsearch.yml檔案,如下。sudo tar -zxf elasticsearch-2.3.4.tar.gz -c /usr/local
cd /usr/local
sudo chown -r user:user elasticsearch-2.3.4
cd elasticsearch-2.3-4
cd config
sudo vi elasticsearch.yml
\# ---------------------------------- cluster -----------------------------------配置完成之後,儲存即可,然後就是啟動啦。啟動之前要注意一下,由於這裡的資料儲存路徑和日誌儲存路徑是自定義的,要在對應位置mkdir新建資料夾,新建之後修改資料夾歸屬分組,保證其和es的分組一致。cluster.name: es_cluster_name #集群名稱
\# ------------------------------------ node ------------------------------------
node.name: node-10.20.30.177 #當前節點名稱,一般設為ip
\# ----------------------------------- paths ------------------------------------
path.data: /vdb/data/elasticsearch #資料儲存路徑,切記放在資料盤,不要放在系統盤
path.logs: /vdb/data/elasticsearchlog #日誌儲存路徑,同理,放資料盤
\# ---------------------------------- network -----------------------------------
network.host: 10.20.30.177 #網路ip位址
network.publish_host: 10.205.103.177
http.port: 9200 #http埠號,用於外部訪問
transport.tcp.port: 9300 #tcp埠號,用於集群間資料互通
\# --------------------------------- discovery 配置集群 ----------------------------------
discovery.zen.ping.multicast.enabled: true
discovery.zen.ping.unicast.hosts: ["10.20.30.175:9300","10.20.30.176:9300", "10.20.30.177:9300","10.20.30.178:9300"]
discovery.zen.minimum_master_nodes: 1
\# --------------------------------- script 配置此項才能保證查詢語言支援scipt-----------------------------------
script.inline: on
script.indexed: on
啟動的方法比較簡單,直接在es目錄下執行以下語句即可:
bin/elasticsearch當然,如果要保持程式執行狀態,請執行nohup bin/elasticsearch執行執行程式之後,使用瀏覽器訪問對應機器的9200埠,檢視是否啟動成功,若成功,有下面的狀態資訊:當然,若想要得到如上圖1的展示效果,可以在es中安裝外掛程式,在es安裝目錄下,執行以下語句用來安裝外掛程式:
bin/plugin install mobz/elasticsearch-head當裝完畢之後訪問對應ip下的網域名稱 http://ip:9200/_plugin/head/ 即可。當然,es還有其他外掛程式,有需求的請自行尋找,安裝。
構建elasticsearch集群
初始化系統環境 在 etc security limits.conf 增加如下兩行 elasticsearch soft nofile 4096 elasticsearch hard nofile 65536 curl o elasticsearch 解壓軟體包 tar xvf elasticsea...
Elasticsearch集群搭建
1 主節點 儲存資料資訊 meta data 元資料 描述資料的資料,客戶端通過主節點獲取真正的資料位置,到資料節點datanode獲取資料分片 2 資料節點 只負責資料的讀和寫 3 負載均衡節點 當主節點連線的客戶端過多,可以引入負載均衡節點 分擔併發,既不是主節點,也不是資料節點 搭建另外兩台e...
Elasticsearch集群搭建
1 分發 scp 2.修改每一台機器的配置檔案 a 集群的名字 cluster.name my es b 節點名字 node.name node 1 c es儲存資料的路徑 path.data home zpark esdata data d es生成log資訊的路徑 path.logs home ...