注意:
必须是普通用户,不能是root用户(否则,报错:java.lang.RuntimeException: can not run elasticsearch as root)
1.解压文件
tar -zxvf elasticsearch-1.7.3.tar.gz
2.配置文件config/elasticsearch.yml
注意:后面的空格
#这是集群名字,组播的方式通信。es启动后会将具有相同集群名字的节点放到一个集群下。
cluster.name:elasticsearch
-------------★-------------------
#节点名字
node.name: "es-node1"
--------------★-------------------
#数据存放位置
path.data:/data/es/data
--------------★------------------
#日志存放位置
path.logs:/data/es/logs
--------------★------------------
#设置绑定的ip地址,这是我的master的IP。
network.bind_host: 192.168.206.201
#设置其他节点和该节点交互的IP地址
network.publish_host: 192.168.206.201
#同时设置bind_host和publish_host上面两个参数
network.host: 192.168.206.201
------------★--------------------
#指定集群中的节点中有几个有master资格的节点。对于大集群可以写3个以上。
covery.zen.minimum_master_nodes:3
#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]
discovery.zen.ping.unicast.hosts: ["mini1","mini2","mini3"]
#指明集群中其他可能为master的节点ip,以防es启动后发现不了集群中的其他节点。第一对引号里是node1,默认端口是9300.第二个是node2,端口号是9301。第三个引号里是node3,端口号为9302
----------------------------------
discovery.zen.ping.timeout: 40s
#默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间,为避免因为网络差而导致启动报错,我设成了40s。
-----------------------------------
discovery.zen.ping.multicast.enabled: false
#设置是否打开多播发现节点。
----------------------------------
3.分配到其他机器
使用scp拷贝到mini2和mini3(mini2和mini3是映射名)
4.修改mini2和mini3的配置文件
修改如下参数:
node.name
network.host
5.启动es
elasticsearch-1.7.3/bin/elasticsearch -d
-d的意思是后台启动
利用jps查看进程:
Elasticsearch
6.访问机器的9200端口
7.使用RESTful接口URL的格式操作es
mini1:9200/<index>/<type>/[<id>]
index和type是必须提供的。id是自选的,不提供的话es会自动生成
index、type将信息进行分层,利于管理
index可以理解为数据库;
type理解为数据表;
id相当于表中的主键,是唯一的
使用案例:
---------------增----------------
#向store索引中添加一些数据,用PUT
curl -XPUT 'mini1:9200/store/books/1' -d '{
"title": "hello",
"name": {
"first":"aaa",
"last":"bbb"
},
"publish_date":"2019-10-31",
"price":"49.99"
}'
#通过浏览器查数据
mini1:9200/store/books/1
#通过linux中curl方式查询
curl -XGET 'mini1:9200/store/books/1'
-----------------------------------