ES安装手册
http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html
https://github.com/elastic/elasticsearch
###【在多台机器上执行下面的命令】###
#es启动时需要使用非root用户,所有创建一个xiaoniu用户:
useradd xiaoniu
#为hadoop用户添加密码:
echo 123456 | passwd --stdin xiaoniu
#将bigdata添加到sudoers
echo "xiaoniu ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/xiaoniu
chmod 0440 /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}
-------------------------------------------------------------------------------------------------
1.安装jdk(jdk要求1.8.20以上)
2.上传es安装包
3.解压es
tar -zxvf elasticsearch-5.4.3.tar.gz -C /bigdata/
4.修改配置
vi /bigdata/elasticsearch-5.4.3/config/elasticsearch.yml
#集群名称,通过组播的方式通信,通过名称判断属于哪个集群
cluster.name: bigdata
#节点名称,要唯一
node.name: es-1
#数据存放位置
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.3/bin/elasticsearch -d
-------------------------------------------------------------------------------------------------
#出现错误
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
#用户最大可创建文件数太小
sudo vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
#查看可打开文件数量
ulimit -Hn
#最大虚拟内存太小
sudo vi /etc/sysctl.conf
vm.max_map_count=262144
#查看虚拟内存的大小
sudo sysctl -p
5.使用scp拷贝到其他节点
scp -r elasticsearch-5.4.3/ node-5:$PWD
scp -r elasticsearch-5.4.3/ node-6:$PWD
6.在其他节点上修改es配置,需要修改的有node.name和network.host
7.启动es(/bigdata/elasticsearch-5.4.3/bin/elasticsearch -h查看帮助文档)
/bigdata/elasticsearch-5.4.3/bin/elasticsearch -d
8.用浏览器访问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.0
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"term": {
"price": 35.99
}
}
}
}
}'
# 返回的的分是1.0
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"constant_score": {
"filter": {
"term": {
"price": 35.99
}
}
}
}
}'
# 返回的的分是0.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 >= 10 AND price < 99
# gt : > 大于
# lt : < 小于
# gte : >= 大于等于
# lte : <= 小于等于
curl -XGET 'http://192.168.10.16:9200/store/books/_search' -d '{
"query": {
"range" : {
"price" : {
"gte" : 10,
"lt" : 99
}
}
}
}
#name和author都必须包含Guide,并且价钱等于33.99或者188.99
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
ES安装手册的更多相关文章
- Redis安装手册
转载请注明出处:http://www.cnblogs.com/robinjava77/p/5465146.html (Robin) 1)下载redis:wget http://download.red ...
- linux下subversion server安装手册
linux下subversion server安装手册 安装基于的Linux版本为:Red Hat Enterprise Linux Server release 6.3. 一 准备需要的安装包. ( ...
- Oracle 11g R2安装手册(图文教程)For Windows
1.Oracle 11g R2安装手册(图文教程)For Windows 1.下载Oracle 11g R2 for Windows版本,下载地址如下 官方网站: http://download.or ...
- oracle 11gR2 RAC安装手册
--oracle 11gR2 RAC安装手册 -----------------------------2013/10/29 参考三思笔记 http://files.cnblogs.com/jackh ...
- entos 7虚拟机安装手册
entos 7虚拟机安装手册. 环境:VMware虚拟机软件 centos7 最小化安装包 步骤: 第一步:新建虚拟机 第二步:选择要安装的虚拟机的操作系统镜像.如我这里使用的就是CentOS7最小化 ...
- Nginx安装手册
前提是搭建yum安装环境,见前面的教程资料 Nginx安装手册1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装ngin ...
- 泛微云桥e-Bridge安装手册
有时候不看官方文档进行配置,可能会出现奇奇怪怪的问题,SO转载一下官方文档,顺带学习. 想超长体验此软件,请搜索本博客内容,有破解方法,仅用来学习使用,顺带进行二次开发,请勿使用在商业用途,谢谢. 泛 ...
- Gpload安装手册(Linux版本)
Gpload安装手册(Linux版本) 一.python 2.7版本 Linux系统默认是安装python2.7的,如果没有需要手动安装(python版本要求2.4.4以上): 通过命令:python ...
- Dubbo -- 系统学习 笔记 -- 安装手册
安装手册 示例提供者安装 示例消费者安装 Zookeeper注册中心安装 Redis注册中心安装 简易注册中心安装 简易监控中心安装 管理控制台安装 推荐使用Zookeeper注册中心 你可以只运行D ...
随机推荐
- python基础_mysql建表、编辑、删除、查询、更新
1.建一张学生表 包含(id,name,age,sex)2.增加四条数据3.查询表中sex为男的数据4.删除id =3的数据,5.将sex为女的,修改为男 create: CREATE TABLE d ...
- NEST 根据id查询
想要在NEST里根据id查询 GET /employee/employee/1 可使用Get方法 public IGetResponse<employee> GetDoc() { var ...
- 如何在Unity中创造真实的水
你将要创造什么 Unity是由Unity Technologies开发的多平台游戏引擎,用于为控制台,移动设备,计算机甚至网站等多种设备创建视频游戏和应用程序.Unity的核心优势在于其稳健性,可移植 ...
- iOS - WebRTC 自编译(音视频即时通讯开源库)
什么是WebRTC? WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言之它是一个支持网页浏览器进行实时语音对话或视频对话的技术.是谷歌2010 ...
- 移动端vue2.5去哪儿项目-常见问题整理
一.项目中遇到的问题.难点及解决方式 1. 移动端开发中的1px边框问题,由于在不同设备屏幕上,可能会使得1px实际在移动端显示不是1px,怎么解决? 2. 移动端click点击事件,会延迟300ms ...
- ERROR: Cannot uninstall 'chardet'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
pip 安装 docker库报错: ERROR: Cannot uninstall 'chardet'. It is a distutils installed project and thus we ...
- robot framework笔记(二):在RF中自定义chrome启动参数
(一)在RF中自定义chrome启动参数 这里主要是实现下面2个功能 1.禁用chrome正受自动测试软件控制的提示 2.设置默认的下载路径(一些导出.下载类的功能,将文件下载到指定路径下) 自定义一 ...
- js 数组 去重 算法(转载)
以下内容可能有重复部分,项目有用上,但还没来得急整理和验证. 一:https://www.cnblogs.com/jiayuexuan/p/7527055.html 1.遍历数组法 它是最简单的数组去 ...
- 【Linux下Hadoop-eclipse-plus-3.2.0】编译Hadoop连接eclipse的插件遇见的一系列错误,崩溃的操作
2019-09-02 23:35:22 前言:首先,我想吐槽下自己,居然花费了4到5个夜晚和中午的时间来做这件事情,直到刚才才顺利解决,我也挺佩服自己的! 我在这个过程中参考其他人的博客,非常感谢他们 ...
- git/github安装与使用教程
新学习了Git和GitHub的使用,记一下笔记,也希望可以帮助他人,这里只是初级阶段,以后还会不断的修改和完善. 1.什么是git 开源的分布式版本控制系统,与svn比独特的地方: 1.解决了svn后 ...