环境
  虚拟机:VMware 10
  Linux版本:CentOS-6.5-x86_64
  客户端:Xshell4
  FTP:Xftp4
  jdk8
 

一、概念
ElasticSearch:
  基于Lucene全文搜索框架;
  实时的高扩展的分布式的开源搜索引擎;
  Java开发,基于RESTful web接口;

Lucene是一个全文搜索框架,而不是应用产品。核心工作就是给搜索内容定位,使用方式:倒排索引。

何为倒排索引?
举个例子:有个文档,文档有以下两行数据
我是中国人(1)
中国是全球人口最多的国家,中国人也最多(2)

索引如下:
1,我 (1:1){0}:(第1行:出现1次){偏移量0}
2,中国 (1:1) {2},(2:2){0,15}:(第1行:出现1次){偏移量2},(第2行:出现2次){偏移量0和15}

输入源:对于要处理的数据,可以是文本文件,可以是数据库数据,也可以网页,我们将其抽象为Document文档,文档里可以定义多个Field,比如context、size、path等等,每个field都会设置三个设置:是否保存、是否分词、是否索引;
分词处理:根据设置,进行过滤,分词
倒排索引:根据设置,进行索引
存储:根据设置,对于需要保存的数据进行保存,比如文档路径;

ES和关系型数据库的数据对比:

二、ES集群搭建

方案
PCS101 196.168.123.101
PCS101 196.168.123.102
PCS101 196.168.123.103

java版本要求:最低1.7

第一步:创建ES运行用户,ES不允许使用root运行

#创建用户
[root@PCS101 ~]# useradd cluster
#设置用户密码
[root@PCS101 ~]# echo | passwd --stdin cluster
#root创建目录 root 用户创建 /opt/cluster/es(普通用户无法创建)
[root@PCS101 ~]# mkdir -p /opt/cluster/es (注意:此时的目录权限属于root)
#目录权限赋给新用户
在父目录cluster下执行: chown cluster:cluster es

第二步:上传elasticsearch-2.2.1.zip至/usr/local/src
#切换用户 使用cluster用户解压elasticsearch-2.2.1.zip包至es目录,保证es文件属于用户cluster:

[root@PCS101 src]# su cluster
[cluster@PCS101 src]$ unzip /usr/local/src/elasticsearch-2.2..zip -d /opt/cluster/es

第三步:修改配置文件

[cluster@PCS101 es]$ cd /opt/cluster/es/elasticsearch-2.2./config && ll
total
-rw-rw-r--. cluster cluster Jan elasticsearch.yml
-rw-rw-r--. cluster cluster Jan logging.yml
[cluster@PCS101 config]$ vi elasticsearch.yml

修改:

---------------cluster-------------------------
cluster.name: wjy-es
----------------node-------------------------------
node.name: PCS101 (分发后各节点修改)
----------------network--------------------------------
network.host: 196.168.123.101 (分发后修改)
http.port: (放开) #末尾增加防脑裂:
#关闭多播模式 来一台加一台
discovery.zen.ping.multicast.enabled: false
#按照自定义节点清单设置集群
discovery.zen.ping.unicast.hosts: ["196.168.123.101","196.168.123.102", "196.168.123.103"]
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s

分发另外两个节点:

[cluster@PCS101 es]$ scp -r ./elasticsearch-2.2./ cluster@PCS102:`pwd`
[cluster@PCS101 es]$ scp -r ./elasticsearch-2.2./ cluster@PCS103:`pwd`

第四步:启动(ES启动比较慢)

#正常打印日志启动
[cluster@PCS101 bin]$ /opt/cluster/es/elasticsearch-2.2./bin/elasticsearch
#后台运行
[cluster@PCS101 bin]$ /opt/cluster/es/elasticsearch-2.2./bin/elasticsearch -d

验证:

[cluster@PCS101 ~]$ jps
Jps
Elasticsearch

访问三个节点,默认返回的是json串
http://196.168.123.101:9200
http://196.168.123.102:9200
http://196.168.123.103:9200

三、插件
上面访问返回的是json串,不太友好,这里安装图形可视化插件head,重启
第一步:ftp上传head插件包 拷贝至/opt/cluster/es/elasticsearch-2.2.1/下面

[root@PCS101 bin]$ cp -abr /usr/local/src/plugins/ /opt/cluster/es/elasticsearch-2.2./
[root@PCS101 bin]$ cd /opt/cluster/es/elasticsearch-2.2./plugins && chown -R cluster:cluster head

分发至102、103:

[root@PCS101 bin]$ su cluster && cd /opt/cluster/es/elasticsearch-2.2./plugins
[cluster@PCS101 plugins]$ scp -r ./head/ cluster@PCS102:`pwd`
[cluster@PCS101 plugins]$ scp -r ./head/ cluster@PCS103:`pwd`

第二步:重启

[cluster@PCS101 bin]$ /opt/cluster/es/elasticsearch-2.2./bin/elasticsearch -d

验证:
http://196.168.101:9200/_plugin/head?pretty
http://196.168.123.102:9200/_plugin/head?pretty
http://196.168.123.103:9200/_plugin/head?pretty

其他站点插件(以网页形式展现)
BigDesk Plugin (作者 Lukáš Vlček)
简介:这个主要提供的是节点的实时状态监控,包括jvm的情况,linux的情况,elasticsearch的情况
安装bin/plugin install lukas-vlcek/bigdesk
删除bin/plugin remove bigdesk
http://IP:9200/_plugin/bigdesk/
http://ip:9200/_cluster/state?pretty

Paramedic Plugin (作者 Karel Minařík)
简介:es监控插件

SegmentSpy Plugin (作者 Zachary Tong)
简介:查看es索引segment状态的插件

Inquisitor Plugin (作者 Zachary Tong)
简介:这个插件主要用来调试你的查询。

官网文档
elasticsearch详解
Elasticsearch实战干货
Lucene介绍与入门使用

196.168

【Elasticsearch学习之一】Elasticsearch的更多相关文章

  1. Elasticsearch学习之ElasticSearch 5.0.0 安装部署常见错误或问题

    ElasticSearch 5.0.0 安装部署常见错误或问题 问题一: [--06T16::,][WARN ][o.e.b.JNANatives ] unable to install syscal ...

  2. Elasticsearch学习(5) Elasticsearch+logstash +filebeat+log4j的日志系统

    最近需要使用Elasticsearch做一个日志系统,本文只介绍log4j内容同步到Elasticsearch,至于日志的查询和分类,会在后面介绍. 一.配置并打开Elasticsearch 这个操作 ...

  3. Elasticsearch 学习笔记 Elasticsearch及Elasticsearch head安装配置

    一.安装与配置 1.到官网下载Elasticsearch,https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6. ...

  4. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  5. Elasticsearch学习随笔(一)--原理理解与5.0核心插件部署过程

    最近由于要涉及一些安全运维的工作,最近在研究Elasticsearch,为ELK做相关的准备.于是把自己学习的一些随笔分享给大家,进行学习,在部署常用插件的时候由于是5.0版本的Elasticsear ...

  6. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  7. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  8. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  9. ElasticSearch 学习记录之如任何设计可扩容的索引结构

    扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...

  10. ElasticSearch 学习记录之ES高亮搜索

    高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "si ...

随机推荐

  1. mysql分库 分表

    原文链接:http://www.jianshu.com/p/89311703b320 传统的分库分表传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库.分库分库的原因 首先, ...

  2. ansible--我的几个报错

    我的几个报错: 1.远程复制失败 [root@localhost ~ ]#scp -r .ssh 192.168.10.145:/root/ root@192.168.10.145's passwor ...

  3. ETL : kettle Spoon 转换 + 作业

    Kettle能做什么? 前言 : 需将db2中数据导入到mysql中,利用etl工具进行多表转换.以此为切入点,系统整理.学习kettle工具. 提醒: kettle是纯java编写,机器需要有jre ...

  4. 唯美MACD

    上证30 分钟产生背离,60 分钟高位,但并没有背离,若调整,也是30F 级别的.算是上涨途中的歇脚. 1.股票如果非要从MACD 上去判断怎么拿,那么一句话:要大跌,一般都需要背离.所以,没有背离的 ...

  5. VS中属性配置ABC

    1.包含目录和附加包含目录(库目录和附加库目录)的区别: 包含目录:修改了系统的include宏的值,是全局的: 附加包含目录:用于当前项目,对其他项目没有影响. (库目录和附加库目录的区别同上) 2 ...

  6. (转)fabric 一个链码如何调用另一个链码

    使用开发模式测试 可以使用~/hyfa/fabric-samples/chaincode-docker-devmode/启动fabric,具体过程略 用同一个链码注册2个服务 root@2ee7b51 ...

  7. (转)EOSIO开发(一)使用Docker构建本地环境

    前言 一直想学习EOS开发,但是不知道怎么入门.最近从GitHub上下载了源码,发现官方已经提供了完整的EOSIO开发入门教程,既然如此赶紧开始行动.今天是系列文章的第一篇,介绍如何使用Docker搭 ...

  8. Go win32 - 1

    上次说到,我们的GO可以执行系统调用,嘿嘿 不假,但如果你认为你已经掌握了,哈哈,那么不然 网上的例子,总是不深入,不彻底,除非是官网上的demo,也就是说只有设计者才知道告诉你什么才是它设计的正真意 ...

  9. DataGrip设置长sql语句自动换行

    我这个DataGrip是英文版的. 在每个查询窗口(Console)的工具图标里,有个Settings.打开Settings弹出框,试图从Appearance和Editor里找到设置选项,却没有找到. ...

  10. dotnet 命令

    以下用实例串起dotnet常用命令,带你玩转dotnet命令. 1.创建(dotnet new) 首先我们创建一个项目,这里我们创建控制台程序,命令如下图所示. dotnet new dotnet n ...