准备三台机器: 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'
原文地址:http://blog.51cto.com/limingyu/2116905