ES集群搭建


(一) 准備

官網下載 es安裝包

 JDK版本: 1.8

注意:ES不能以root用戶身份運行 確保運行用戶對各使用到的目錄的權限

獲取安裝包版本 6.2.4

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

解壓到安裝目錄

tar -xvf elasticsearch-6.2.4.tar.gz -C /opt

配置

# vim /etc/elasticsearch/elasticsearch.yml 

cluster.name: myelk //17行(名稱相同就是在一個集群里)
node.name: es1 //本機名稱 23行
network.host: 0.0.0.0 // 54行
discovery.zen.ping.unicast.hosts: [“es1", “es2", “es3"] //發現集群節點 68行

啟動

#cd  /opt/elasticsearch-6.2.4/bin
#./elasticsearch
#netstat –ltunp    // 能夠看到9200,9300被監聽
# curl 192.168.1.51:9200   //通過瀏覽器或curl訪問9200端口

 啟動時指定參數:

#./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name

了解啟動腳本可用選項:  

#./elasticsearch -h

ES集群配置

– 集群中的所有節點要相互能夠ping通,要在所有集群機器上配置/etc/hosts中的主機名與ip對應關系

– 集群中所有機器都要安裝Java環境

– cluster.name集群名稱配置要求完全一致

– node.name為當前節點標識,應配置本機的主機名

– discovery為集群節點機器,不需要全部配置

– 配置完成以后啟動所有節點服務

驗證集群,使用ES內置字段 _cluster/health

curl http://192.168.1.51:9200/_cluster/health?pretty
{
"cluster_name" : "myelk", "status" : "green", "timed_out" : false, "number_of_nodes" : 5, "number_of_data_nodes" : 5, //表示集群中節點的數量 ... ... "active_shards_percent_as_number" : 100.0 } 
返回字段解析 status : " green " 集群狀態,綠色為正常,黃色表示有問題但不是很嚴重,紅色表示嚴重故障

RESTful API 調用

Elasticsearch提供了一系列RESTful的API

– 檢查集群、節點、索引的健康度、狀態和統計

– 管理集群、節點、索引的數據及元數據

– 對索引進行CRUD操作及查詢操作

– 執行其他高級操作如分頁、排序、過濾等

POST或PUT數據使用json格式

JSON格式:
             數組 ["aa", "bb", "cc"] 鍵值對 { key: value }

 RESTful API的簡單使用

  _cat API查詢集群狀態,節點信息
例子:
http://192.168.1.51:9200/_cat/health?v     //v參數顯示詳細信息
http://192.168.1.51:9200/_cat/health?help  //help顯示幫助信息
http://192.168.1.51:9200/_cat/nodes?v      //nodes 查詢節點狀態信息
http://192.168.1.51:9200/_cat/indices?v    //索引信息

RESTful API增加:

curl -XPUT http://192.168.1.55:9200/t3/ -d '{
"settings":{
    "index":{ "number_of_shards": 5, //分片數量 "number_of_replicas": 1 //副本數量  } } }'

http://192.168.1.51:9200/_plugin/head/   //elaserch頁面

增:PUT

RESTful API插入數據

– (增)加數據,使用 PUT 方法

– 調用方式: 數據庫地址/索引/類型/id值

curl -XPUT http://192.168.1.51:9200/t3/n1/1  -d '{ 
"姓名":"李白",
"職業":"詩人", "稱號":"詩仙", "年代":"唐"}'

改:POST

– 修(改)數據,使用 POST 方法

– 在修改數據的時候必須調用 _update 關鍵字

– 調用方式:數據庫地址/索引/類型/id值/_update

curl  -XPOST http://192.168.1.53:9200/t3/n1/2/_update -d '
{"doc":{"職業":"粉絲"}}'
  文檔

查:GET

– 查詢使用 GET 方法,GET為默認方法

– 查詢顯示結果時候可以用 pretty 規范顯示格式

– 多條查詢需要使用 _mget 關鍵字配合 json 調用

curl -XGET 'http://192.168.1.55:9200/tedu/teacher/1'

刪:DELETE

– 刪除時候可以是文檔,也可以是庫,但不能是類型

curl -XDELETE 'http://192.168.1.55:9200/tedu/teacher/1'
curl -XDELETE 'http://192.168.1.55:9200/tedu'

批量導入數據

使用_bulk批量導入數據

– 批量導入數據使用POST方式,數據格式為json,url ;編碼使用data-binary

– 導入含有index配置的json文件

# gzip -d logs.jsonl.gz   //解壓文件

# curl -XPOST 'http://192.168.1.51:9200/_bulk' --data-binary @logs.jsonl    //導入

導入數據時,先查看數據,如有需要,自己添加庫和表


web1 ~]# cat /var/log/httpd/access_log     //訪問日志
192.168.1.40 - - [13/Jun/2019:14:12:57 +0800] "GET / HTTP/1.1" 200 12 "-" "curl/7.29.0"
  ip地址                     時間戳                       訪問方式         協議/版本號

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM