elasticsearch head插件是一个入门级的elasticsearch前端插件;我们来安装下;
第一步:安装nodejs
head插件是nodejs实现的,所以必须先安装Nodejs
参考:http://blog.java1234.com/blog/articles/354.html
第二步:安装git
我们要用git方式下载head插件
参考:http://blog.java1234.com/blog/articles/353.html
第三步:下载以及安装head插件
打开 https://github.com/mobz/elasticsearch-head
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open
http://localhost:9100/
我们用这种最简单的方式安装
当然我们安装的地方是 /usr/local/
第四步:配置elasticsearch,允许head插件访问
进入elasticsearch config目录 打开 elasticsearch.yml
最后加上
http.cors.enabled: true
http.cors.allow-origin: "*"
第五步:测试
启动elasticsearch,再进入head目录,执行npm run start 启动插件
说明启动成功,然后浏览器 执行 http://192.168.1.110:9100/
内部输入 http://192.168.1.110:9200/ 点击连接 如果右侧输出黄色背景字体 说明配置完整OK;
elasticsearch提供了丰富的http url接口对外提供服务,
这也使得elasticsearch插件特别多,功能也强大;
我们今天来讲下 用head插件来添加索引
这里有好几种方式,先讲一种原始的,
进入主页,选择 复合查询
我们以后执行操作 都在这里搞;
地址栏输入:http://192.168.1.110:9200/student/
然后点击“提交请求”,即可;
右侧返回索引添加成功信息;
我们返回 概要 首页 点击 刷新 也能看到新建的索引student
这里方式有点索引 这里有更加简单的方式
点击 索引标签,
点击“新建索引”,
这里我们输入索引名称即可 当然默认分片数是5 副本数是1 我们输入索引名称student2 分片数10 副本2
假如单个机器部署的话 副本是没地方分配的 一般集群都是2台或者2台以上机器集群,副本都不存对应的分片所以机器的,这样能保证集群系统的可靠性。
我们点击"OK" 即可轻松建立索引 以及分片数和副本;
回到概要首页;
这里可以清晰的看到索引 以及分片和副本;
当然要删除索引的话
点 动作 然后 删除 ,即可;
比较简单
elasticsearch-head插件添加,修改,删除文档
我们用head插件来实现下添加,修改,删除文档操作;
首先是添加文档,这里我们给student索引添加文档
先进入符合查询
post方式 http://192.168.1.110:9200/student/first/12/
这里student是索引 first是类别 12是id
假如id没写的话 系统也会给我们自动生成一个
假如id本身已经存在 那就变成了修改操作;我们一般都要指定下id
我们输入Json数据,然后点击提交,右侧显示创建成功,当然我们可以验证下json
点 数据浏览,
我们可以看到新添加的索引文档
修改文档的话,
方式和添加一样,只不过我们一定要指定已经存在的id
地址输入:http://192.168.1.110:9200/student/first/12/
然后修改下数据,点击提交:
我们发现 提示修改成功;
数据浏览里:
查询文档也有可以通过请求
http://192.168.1.110:9200/student/first/12/ 选择get方式,然后点击提交
删除文档
选择delete即可;
前面我们讲过删除索引的图形操作方式;
用http url命令也可以
输入:http://192.168.1.110:9200/student/
选择delete即可
elasticsearch使用head打开和关闭索引
打开/关闭索引接口允许关闭一个打开的索引或者打开一个已经关闭的索引。
关闭的索引只能显示索引元数据信息,不能够进行读写操作。
比如我们新建一个索引student2
我们用 POST http://192.168.1.110:9200/student2/_close/ 关闭索引
点击提交请求;
再概要首页里,可以刷新下 看到student2被关闭;
变成了灰色;
POST http://192.168.1.110:9200/student2/_open/ 打开索引;
点击提交请求,
回到概要首页,点击刷新,
又正常了。
elasticsearch head插件 增加索引映射
elasticsearch HTTP API 允许你向索引(index)添加文档类型(type),或者向文档类型(type)中添加字段(field)。
PUT http://192.168.1.110:9200/student/
{
"mappings":{
"first":{
"properties":{
"name":{"type":"keyword"}
}
}
}
}
mapping是映射关键字 properties是添加指定文档类型的字段的关键字
点击提交,添加student索引
添加文档类型first
添加字段name 类型是keyword
(keyword类型适合短词汇内容,比如邮件,姓名,性别等等,text类型适合长文本,可以分词,比如文章标题,文章内容等)
PUT http://192.168.1.110:9200/student/_mapping/third/
{
"properties":{
"name2":{"type":"keyword"}
}
}
向已经存在的索引student添加文档类型为third,包含字段name2,字段类型是keyword字符串
elasticsearch head插件 查询索引映射关系
elasticsearch head插件 查询索引映射关系
http://192.168.1.110:9200/student/ GET 直接加索引名称即可 能查到所有信息
第二种方式 利用head插件图形工具:
进入概要首页,选择索引,然后索引信息,
直接显示索引的映射状态信息;
# action.destructive_requires_name: true
elasticsearch5.5多机集群配置
ELasticsearch 5.5要求JDK版本最低为1.8;
配置集群之前 先把要加群集群的节点的里的data目录下的Node目录 删除,否则集群建立会失败。
我这边虚拟机配置了两台centos IP分别是 192.168.1.110 和 192.168.1.111 ;
分别配置下elasticsearch.yml配置文件
110机器:
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
#path.data: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.1.110
#
# Set a custom port for HTTP:
#
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.zen.ping.unicast.hosts: ["192.168.1.110"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
#discovery.zen.minimum_master_nodes: 3
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"
111机器:
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-2
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
#path.data: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.1.111
#
# Set a custom port for HTTP:
#
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.zen.ping.unicast.hosts: ["192.168.1.110"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
#discovery.zen.minimum_master_nodes: 3
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
这里两台机器的cluster.name必须一致 这样才算一个集群
node.name节点名称每台取不同的名称,用来表示不同的集群节点
network.host配置成自己的局域网IP
http.port端口就固定9200
discovery.zen.ping.unicast.hosts主动发现节点我们都配置成110节点IP
配置完后 重启es服务;
然后head插件我们查看下:
说明集群配置OK 。