ElasticSearch 集群安装,简单使用
http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html
https://github.com/elastic/elasticsearch
###【在多台机器上执行下面的命令】###
#es启动时需要使用非root用户,所有创建一个xiaoniu用户:
useradd xiaoniu
#为hadoop用户添加密码:
echo | passwd --stdin xiaoniu
#将bigdata添加到sudoers
echo "xiaoniu ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/xiaoniu
chmod /etc/sudoers.d/xiaoniu
#解决sudo: sorry, you must have a tty to run sudo问题,在/etc/sudoer注释掉 Default requiretty 一行
sudo sed -i 's/Defaults requiretty/Defaults:xiaoniu !requiretty/' /etc/sudoers #创建一个bigdata目录
mkdir /{bigdata,data}
#给相应的目录添加权限
chown -R xiaoniu:xiaoniu /{bigdata,data} -------------------------------------------------------------------------------------------------
.安装jdk(jdk要求1..20以上) .上传es安装包 .解压es
tar -zxvf elasticsearch-5.4..tar.gz -C /bigdata/ .修改配置
vi /bigdata/elasticsearch-5.4./config/elasticsearch.yml
#集群名称,通过组播的方式通信,通过名称判断属于哪个集群
cluster.name: bigdata
#节点名称,要唯一
node.name: es-
#数据存放位置
path.data: /data/es/data
#日志存放位置(可选)
path.logs: /data/es/logs
#es绑定的ip地址
network.host: 192.168.10.16
#初始化时可进行选举的节点
discovery.zen.ping.unicast.hosts: ["node-4", "node-5", "node-6"] /bigdata/elasticsearch-5.4./bin/elasticsearch -d
-------------------------------------------------------------------------------------------------
#出现错误
[]: max file descriptors [] for elasticsearch process is too low, increase to at least []
[]: max virtual memory areas vm.max_map_count [] is too low, increase to at least [] #用户最大可创建文件数太小
sudo vi /etc/security/limits.conf
* soft nofile
* hard nofile #查看可打开文件数量
ulimit -Hn #最大虚拟内存太小
sudo vi /etc/sysctl.conf
vm.max_map_count= #查看虚拟内存的大小
sudo sysctl -p .使用scp拷贝到其他节点
scp -r elasticsearch-5.4./ node-:$PWD
scp -r elasticsearch-5.4./ node-:$PWD .在其他节点上修改es配置,需要修改的有node.name和network.host .启动es(/bigdata/elasticsearch-5.4./bin/elasticsearch -h查看帮助文档)
/bigdata/elasticsearch-5.4./bin/elasticsearch -d .用浏览器访问es所在机器的9200端口
http://192.168.10.16:9200/
{
"name" : "node-2",
"cluster_name" : "bigdata",
"cluster_uuid" : "v4AHbENYQ8-M3Aq8J5OZ5g",
"version" : {
"number" : "5.4.3",
"build_hash" : "eed30a8",
"build_date" : "2017-06-22T00:34:03.743Z",
"build_snapshot" : false,
"lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
} kill `ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'` #查看集群状态
curl -XGET 'http://192.168.10.16:9200/_cluster/health?pretty'
http://192.168.10.16:9200/_cluster/health?pretty
------------------------------------------------------------------------------------------------------------------ RESTful接口URL的格式:
http://192.168.10.16:9200/<index>/<type>/[<id>]
其中index、type是必须提供的。
id是可选的,不提供es会自动生成。
index、type将信息进行分层,利于管理。
index可以理解为数据库;type理解为数据表;id相当于数据库表中记录的主键,是唯一的。 #向store索引中添加一些书籍
curl -XPUT 'http://192.168.10.16:9200/store/books/1' -d '{
"title": "Elasticsearch: The Definitive Guide",
"name" : {
"first" : "Zachary",
"last" : "Tong"
},
"publish_date":"2015-02-06",
"price":"49.99"
}' #在linux中通过curl的方式查询
curl -XGET 'http://192.168.10.18:9200/store/books/1' #通过浏览器查询
http://192.168.10.18:9200/store/books/1 #在添加一个书的信息
curl -XPUT 'http://192.168.10.18:9200/store/books/2' -d '{
"title": "Elasticsearch Blueprints",
"name" : {
"first" : "Vineeth",
"last" : "Mohan"
},
"publish_date":"2015-06-06",
"price":"35.99"
}' # 通过ID获得文档信息
curl -XGET 'http://192.168.10.18:9200/store/books/1' #在浏览器中查看
http://92.168.10.18:9200/store/books/1 # 通过_source获取指定的字段
curl -XGET 'http://192.168.10.16:9200/store/books/1?_source=title'
curl -XGET 'http://192.168.10.16:9200/store/books/1?_source=title,price'
curl -XGET 'http://192.168.10.16:9200/store/books/1?_source' #可以通过覆盖的方式更新
curl -XPUT 'http://192.168.10.16:9200/store/books/1' -d '{
"title": "Elasticsearch: The Definitive Guide",
"name" : {
"first" : "Zachary",
"last" : "Tong"
},
"publish_date":"2016-02-06",
"price":"99.99"
}' # 或者通过 _update API的方式单独更新你想要更新的
curl -XPOST 'http://192.168.10.16:9200/store/books/1/_update' -d '{
"doc": {
"price" : 88.88
}
}' curl -XGET 'http://192.168.10.16:9200/store/books/1' #删除一个文档
curl -XDELETE 'http://192.168.10.16:9200/store/books/1' curl -XPUT 'http://192.168.10.16:9200/store/books/4' -d '{
"title": "Elasticsearch: The Definitive Guide",
"author": "Guide",
"publish_date":"2016-02-06",
"price":"35.99"
}' #https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
# 最简单filter查询
# SELECT * FROM books WHERE price = 35.99
# filtered 查询价格是35.99的
# 返回的的分是1.
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"term": {
"price": 35.99
}
}
}
}
}' # 返回的的分是1.
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"constant_score": {
"filter": {
"term": {
"price": 35.99
}
}
}
}
}' # 返回的的分是0.
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"bool": {
"filter" : {
"term" : {
"price" : 35.99
}
}
}
}
}' #指定多个值
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query" : {
"bool" : {
"filter" : {
"terms" : {
"price" : [35.99, 99.99]
}
}
}
}
}' curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query" : {
"bool" : {
"must": {
"match_all": {}
},
"filter" : {
"terms" : {
"price" : [35.99, 99.99]
}
}
}
}
}' # SELECT * FROM books WHERE publish_date = "2015-02-06"
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query" : {
"bool" : {
"filter" : {
"term" : {
"publish_date" : "2015-02-06"
}
}
}
}
}' # bool过滤查询,可以做组合过滤查询
# SELECT * FROM books WHERE (price = 35.99 OR price = 99.99) AND publish_date != "2016-02-06"
# 类似的,Elasticsearch也有 and, or, not这样的组合条件的查询方式
# 格式如下:
# {
# "bool" : {
# "must" : [],
# "should" : [],
# "must_not" : [],
# }
# }
#
# must: 条件必须满足,相当于 and
# should: 条件可以满足也可以不满足,相当于 or
# must_not: 条件不需要满足,相当于 not curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query" : {
"bool" : {
"should" : [
{ "term" : {"price" : 35.99}},
{ "term" : {"price" : 99.99}}
],
"must_not" : {
"term" : {"publish_date" : "2016-02-06"}
}
}
}
}' # 嵌套查询
# SELECT * FROM books WHERE price = 35.99 OR ( publish_date = "2016-02-06" AND price = 99.99 ) curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"bool": {
"should": [
{
"term": {
"price": 35.99
}
},
{
"bool": {
"must": [
{
"term": {
"publish_date": "2016-02-06"
}
},
{
"term": {
"price": 99.99
}
}
]
}
}
]
}
}
}' # range范围过滤
# SELECT * FROM books WHERE price >= AND price <
# gt : > 大于
# lt : < 小于
# gte : >= 大于等于
# lte : <= 小于等于 curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"range" : {
"price" : {
"gte" : ,
"lt" :
}
}
}
} #name和author都必须包含Guide,并且价钱等于33.99或者188.
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"bool": {
"must": {
"multi_match": {
"operator": "and",
"fields": [
"name",
"author"
],
"query": "Guide"
}
},
"filter": {
"terms": {
"price": [
35.99,
188.99
]
}
}
}
}
}' http://192.168.10.16:9200/store/books/_search
ElasticSearch 集群安装,简单使用的更多相关文章
- 批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用
一.分布式ELK平台 ELK的介绍: ELK 是什么? Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用 ELK!ELK! ...
- Elasticsearch集群安装Version6.2.2
Elasticsearch集群安装, 基于Elasticsearch6.2.2版本, 在Linux上安装Elasticsearch集群. 1.安装规划 IP HostName Service Mast ...
- CentOS下 elasticsearch集群安装
1.进入root目录并下载elasticsearch cd /root wget https://download.elastic.co/elasticsearch/elasticsearch/ela ...
- ELK学习实验003:Elasticsearch 集群安装
前面已经介绍了Elasticsearch这个工具,并对单机安装做了简单介绍,现在使用三台机器做一个elasticsearch集群 一 环境准备 1.1 机器准备 1.2 同步时间 [root@node ...
- ElasticSearch集群安装配置
1. 环境说明 Cent OS 7 jdk-8u121-linux-x64.tar.gz elasticsearch-5.2.1.zip 2. 系统环境配置 新建进程用户 修改File Descrip ...
- elasticsearch集群安装+安全验证+kibana安装
准备环境 启动4个centos容器, 并暴露相对应端口 (我的本机ip为172.16.1.236,以下涉及到的地方需要修改为自己的ip) node_name ip http port transpor ...
- ELK篇---------elasticsearch集群安装配置
说明: 本次ELK的基础配置如下: 虚拟机:vmware 11 系统:centos7.2 两台 IP:172.16.1.15/16 一.下载es wget https://download.elas ...
- ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程
前言 本文主要介绍的是ElasticSearch集群和kinaba的安装教程. ElasticSearch介绍 ElasticSearch是一个基于Lucene的搜索服务器,其实就是对Lucene进行 ...
- ElasticSearch 5.0.0 集群安装部署文档
1. 搭建环境 3台物理机 操作系统 centos7 es1 192.168.31.141 4g内存 2核 es2 192.168.31.142 4g内存 2核 es3 ...
随机推荐
- golang rest api example
package main import ( "net/http" "github.com/gin-gonic/gin" "github.com/jin ...
- Leetcode- Find Minimum in Rotated Sorted Array-ZZ
http://changhaz.wordpress.com/2014/10/15/leetcode-find-minimum-in-rotated-sorted-array/ Suppose a so ...
- [EffectiveC++]item34:区分接口继承和实现继承
[EffectiveC++]item34:区分接口继承和实现继承
- U-Mail邮件群发如何过滤无效地址?
U-Mail邮件群发平台可以自动过滤掉无效和重复地址,过滤效果如下图 U-Mail邮件群发平台会将客户已经确认好是无效地址的加入无效地址库,下次再导入改无效地址就直接拒绝.邮件格式不正确的也会直接过滤 ...
- 当你的Spring IOC 容器(即applicationContext.xml文件)忘记配到web.xml 文件中时
当你的Spring IOC 容器忘记配到web.xml 文件中时,启动服务器就会报错. 部分错误如下: Caused by: org.springframework.beans.factory.NoS ...
- linux解压eclipse启动时无法找到jre环境的解决办法
使用软链接的方法: 1.打开终端进入到eclipse安装主目录下:mkdir jre 2.cd jre 3.ln -s /home/zhoushuo/app/jdk1.8.0_102/bin bin
- 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信
http://blog.csdn.net/xiaominghimi/article/details/51586492 一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解R ...
- SqlMapConfig.xml配置文件
SqlMapConfig.xml中配置的内容和顺序如下: 1.1 properties(属性) mybatis的属性加载顺序.读取顺序:properties------>resource或url ...
- es6之数据结构
1.set的用法 用add方法添加元素,添加的数组不可重复. 可利用set类型添加元素不重复的功能,给数组完成去重的功能 size属性用于获取set元素的长度 { let list =new Set( ...
- Server.xml解析
来源 本文整理自 <Tomcat内核设计剖析>.<Tomcat结构解析> 加上自己的理解.源码来自 Tomcat8.5 版本 <Server port="800 ...