elasticsearch基礎操作02
阿新 • • 發佈:2018-05-16
curl api 安裝ES集群
準備三臺機器: 192.168.1.10 192.168.1.11 192.168.1.12 三臺機器分別部署elasticsearch 部署前,應該先檢查機器是否有安裝jdk,如果沒有請先安裝JDK,三臺機器時間同步
安裝方式非常簡單,不會的請參考官方文檔,下面我以elasticsearch-1.7.2來示例
rpm -ivh elasticsearch-1.7.2.noarch.rpm 安裝完成修改配置文件: vim /etc/elasticsearch/elasticsearch.yml cluster.name: myes node.name: "linux-node1" #這裏每臺機器寫對應的名字 修改此兩項即可,保存退出,並啟動 /etc/init.d/elasticsearch start
驗證elasticsearch是否啟動成功:
(1)ss -tanl 查看9200、9300端口是否開啟 (2)使用curl命令 # curl -XGET 'http://192.168.1.10:9200' { "status" : 200, "name" : "linux-node1", "cluster_name" : "myes", "version" : { "number" : "1.7.2", "build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec", "build_timestamp" : "2015-09-14T09:49:53Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search" } 顯示"You Know, for Search"說明啟動成功啦! (3)也可以使用瀏覽器測試 輸入" 和curl命令結果應該是一樣的
ES的插件plugins:
插件擴展ES的功能:
添加自定義的映射類型、自定義分析器、本地腳本、自定義發現方式;
安裝方式:
1).直接將插件解壓放置於plugins目錄中即可
/usr/share/elasticsearch/plugins
2).使用plugins腳本安裝
/usr/share/elasticsearch/bin/plugin
-h : 幫助
-l : 列出已安裝的插件
-i,--install: 後面跟插件名
-r,--remove : 卸載
示例:
以192.168.1.10這臺機器為主節點,比如我將網上下載的插件放置於/root/目錄下,常用的幾個插件kopf,head,bigdes,marvel /usr/share/elasticsearch/bin/plugin -i marvel -u /usr/share/elasticsearch/bin/plugin -i bigdesk -u /usr/share/elasticsearch/bin/plugin -i kopf -u /usr/share/elasticsearch/bin/plugin -i head -u [root@linux-node1 ~]# /usr/share/elasticsearch/bin/plugin -l Installed plugins: - head - kopf - bigdesk - marvel 查看我們安裝好的插件
瀏覽器輸入"http://192.168.1.10:9200/_plugin/head"回車;
只需要更改_plugin/{bigdesk|kopf|marvel}即可,就不一一貼圖了;
CURL操作相關的API:
_cat API:
查看幫助相關: [root@linux-node1 ~]# curl -XGET '192.168.1.10:9200/_cat/?help' =^.^= /_cat/allocation /_cat/shards /_cat/shards/{index} /_cat/master /_cat/nodes /_cat/indices /_cat/indices/{index} /_cat/segments /_cat/segments/{index} /_cat/count /_cat/count/{index} /_cat/recovery /_cat/recovery/{index} /_cat/health /_cat/pending_tasks /_cat/aliases /_cat/aliases/{alias} /_cat/thread_pool /_cat/plugins /_cat/fielddata /_cat/fielddata/{fields} 查看nodes相關: [root@linux-node1 ~]# curl -XGET '192.168.1.10:9200/_cat/nodes' localhost 127.0.0.1 8 29 0.00 d m linux-node2 localhost 127.0.0.1 4 16 0.00 d * linux-node1 localhost 127.0.0.1 3 29 0.00 d m linux-node3 後面加?v,會更詳細: [root@linux-node1 ~]# curl -XGET '192.168.1.10:9200/_cat/nodes?v' host ip heap.percent ram.percent load node.role master name localhost 127.0.0.1 8 29 0.00 d m linux-node2 localhost 127.0.0.1 4 16 0.00 d * linux-node1 localhost 127.0.0.1 3 29 0.00 d m linux-node3 還可以自定義: [root@linux-node1 ~]# curl -XGET '192.168.1.10:9200/_cat/nodes?h=name,ip,port,uptime,heap,current' linux-node2 127.0.0.1 9300 37.1m linux-node1 127.0.0.1 9300 37.8m linux-node3 127.0.0.1 9300 10.5m
_cluster API:
[root@linux-node1 ~]# curl -XGET 'http://192.168.1.12:9200/_cluster/health' [root@linux-node1 ~]# curl -XGET 'http://192.168.1.12:9200/_cluster/health?v' [root@linux-node1 ~]# curl -XGET 'http://192.168.1.10:9200/_cluster/health?pretty' [root@linux-node1 ~]# curl -XGET 'http://192.168.1.10:9200/_cluster/state/nodes?pretty' [root@linux-node1 ~]# curl -XGET 'http://192.168.1.10:9200/_cluster/stats?pretty' curl -XGET 'http://192.168.1.10:9200/_nodes/stats?pretty'
看字面意思就能明白查看的是什麽,結果就不一一貼圖了......
下面看一下文檔相關的
創建文檔:
[root@linux-node1 ~]# curl -XPUT 'http://192.168.1.10:9200/students/class1/1?pretty' -d ' > { > "first_name":"Jing", > "laste_name":"Guo", > "Gender":"Male", > "Age":25, > "courses":"Xianglong Shiba Zhang" > }' [root@linux-node1 ~]# curl -XPUT 'http://192.168.1.10:9200/students/class1/2?pretty' -d ' { "first_name":"Rong", "laste_name":"Huang", "Gender":"Female", "Age":23, "courses":"Luoying Shenjian" }' 創建第二個文檔時,註意看class1/2?pretty千萬別和第一個重復了,不然就把第一個覆蓋了
獲取文檔:
[root@linux-node1 ~]# curl -XGET 'http://192.168.1.10:9200/students/class1/1?pretty' { "_index" : "students", "_type" : "class1", "_id" : "1", "_version" : 2, "found" : true, "_source": { "first_name":"Rong", "laste_name":"Huang", "Gender":"Female", "Age":23, "courses":"Luoying Shenjian" } }
更新文檔:
PUT方法會覆蓋原有文檔;
如果只更新部分內容,得使用_update API:
[root@linux-node1 ~]# curl -XPOST 'http://192.168.1.10:9200/students/class1/1/_update?pretty' -d ' > { > "doc":{"age":22} > }' { "_index" : "students", "_type" : "class1", "_id" : "1", "_version" : 3 } 再次獲取,age已經改成22了: [root@linux-node1 ~]# curl -XGET 'http://192.168.1.10:9200/students/class1/1?pretty' { "_index" : "students", "_type" : "class1", "_id" : "1", "_version" : 3, "found" : true, "_source":{"first_name":"Rong","laste_name":"Huang","Gender":"Female","Age":23,"courses":"Luoying Shenjian","age":22} }
刪除文檔:
操作不可逆,慎操作:
[root@linux-node1 ~]# curl -XDELETE 'http://192.168.1.10:9200/students/class1/1'
刪除索引:
[root@linux-node1 ~]# curl -XDELETE 'localhost:9200/students'
查看索引:
[root@linux-node1 ~]# curl -XGET 'localhost:9200/_cat/indices?v'
elasticsearch基礎操作02