文章目录
(2)打开bin文件,双击运行elasticsearch.bat
前言
本文重点讲述了以下内容: Elaticsearch 的介绍、优势、概念,下列软件或插件的详细安装步骤和安装过程中常见问题及解决方案:
- jdk
- Elasticsearch-rtf
- Kibana
- node.js
- headmaster
一、ElasticSearch的介绍
1.Elaticsearch简介
Elaticsearch,简称为ES, ES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
2.ElasticSearch的优势
Elasticsearch是一种分布式的海量数据搜索与分析的技术,可以用于电商网站、门户网站、企业IT系统等各种场景下的搜索引擎,也可以用于对海量的数据进行近实时的数据分析。相较于Lucene来说,Elasticsearch天然的分布式特性,让其可以支持海量的、PB级的大数据搜索。相对于Spark Streaming、Storm等大数据实时计算引擎来说,Elasticsearch天生为分布式执行数据分析操作而生的架构,海量数据量级下的近实时(秒级)性能支持,以及无比强大的搜索和聚合分析的语法支持,让ES更加适合进行大数据场景下的数据分析应用。
Spark Streaming进行实时数据分析,有天然的无法全量多数据流join、内核shuffle过程大量基于磁盘落地等缺陷,导致其实时数据分析功能较差,实时数据分析性能也较差。Storm则作为实时计算引擎的鼻祖,由于其对SQL的支持很弱,导致其非常不适合进行实时数据分析,开发成本巨大。而Elasticsearch克服了上述大数据技术的缺点,更加适合进行大数据场景下的数据分析操作。
3.elasticsearch基础概念
- 集群:一个或者多个节点组织在一起
- 节点:一个节点是一个集群中的一个服务器,由一个名字来标识,默认是一个随机的漫威角色的名字
- 分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片响应请求,提高性能和吞吐量
- 副本:创建分片的一份或多份的能力,在一个节点失败,其余节点可以顶上
- elasticsearch不是一个中间库,它是一个集合了数据保存与数据分析的服务,下表是 elasticsearch与mysql的一些概念类比:
- 在elasticsearch中提到索引,可能有两种意思。第一种,是名词,指的就是数据库;第二种,是动词,指的是索引操作,也就是将数据做插入操作。
4.对比ElasticSearch和Solr
对比项 | ElasticSearch | Solr |
---|---|---|
分布式管理 | 自身带有分布式协调管理功能 | 利用 Zookeeper 进行分布式管理 |
支持的数据格式 | 仅支持json文件格式 | 支持更多格式的数据 |
提供的功能 | 本身更注重于核心功能,高级功能多有第三方插件提供 | 官方提供的功能更多 |
总结:Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch
二、安装Elasticsearch及相关配件
1.安装jdk
Elasticsearch基于Java开发,所以需要先安装jdk。
Java官网:Java Downloads | Oraclehttps://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意:需安装Java8以上的版本。
(1)进入官网选择版本和系统
(2)勾选协议
(3)登录后即可开始下载
(4)打开下载包,安装jdk
(5)修改安装地址
(6)等待完成安装
(7)完成安装
此时点击后续步骤,则会在浏览器打开一个API规范文档 。
网址:Overview (Java SE 11 & JDK 11 )https://docs.oracle.com/en/java/javase/11/docs/api/index.html
(8)确认安装结果
安装完成后,打开终端(win+R,输入cmd),输入 java -version 查看java版本,若显示如图表示安装成功。
2.安装elasticsearch
在官网上下载elasticsearcElastic Stack:Elasticsearch、Kibana、Beats 和 Logstash | Elastic能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。https://www.elastic.co/cn/elastic-stack/
① 打开官网。
② 点击下载到本地。
③ 选择系统开始下载 。
④ 将文件解压到相应目录。
(1)解压文件
下载后解压,文件目录如下:
(2)打开bin文件,双击运行elasticsearch.bat
运行结果错误展示及解决方案:
该情况并非安装elasticsearch的用户都会出现,如果遇到该情况可以按照下列方案解决。若未出现该问题,则可以跳到下文“(3)查看结果”的位置 。
Ⅰ、右键我的电脑 点击属性
Ⅱ、点击高级系统设置
Ⅲ、点击高级中的环境变量
Ⅳ 、点击系统变量中的新建
Ⅴ、在编辑系统变量中添加=>变量名:JAVA_HOME,变量值:D:\Java(注:变量值为安装jdk的路径)
Ⅵ 、在编辑系统变量中添加=>变量名:CLASSPATH,变量值:%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
Ⅶ、在系统变量中找到变量名为PATH的变量,选中后点击编辑
Ⅷ、在环境变量PATH中点击新建,输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,完成后点击确定。
Ⅸ、重新打开bin文件,双击运行elasticsearch.bat。
成功!!!
(3)查看安装结果
打开浏览器,输入网址:127.0.0.1:9200,若页面展示如下图,则说明安装ElasticSearch成功。
注意:访问127.0.0.1:9200的时候,不能停止运行elasticsearch.bat,若关闭了,则会出现无法访问的问题。
注意:ES需要使用两个端口
- 9200:HTTP协议,restful api
- 9300:tcp协议,使用java客户端使用9300端口连接
3.安装ES客户端headmaster(第三方插件)
headmaster的优势:
- 方便浏览数据,查看节点信息。
- 可以以插件形式存在或以独立服务形式。
(1)进入Github下载
进入Github,点击克隆,点击zip,开始下载。
官方安装文档:ElasticSearch Headhttp://mobz.github.io/elasticsearch-head/
(2)解压压缩包
解压后,将文件包放入指定目录,目录如下:
扩展安装:
注:若已安装过node.js,则可跳到下文“ (3)安装grunt ”的位置。
由于headermaster是使用node.js开发,所以,需要先安装nodejs,安装步骤如下。
Ⅰ、进入node.js官网下载安装包
Ⅱ、下载后点击安装,点击Next。
Ⅲ、同意协议,点击Next。
Ⅳ、选择安装路径,点击Next。
Ⅴ、点击Next。
Ⅵ、点击Next。
Ⅶ、点击install,开始安装。
Ⅷ、安装中。
Ⅸ、安装成功。
点击Finish完成安装!!!
(3)安装grunt
Ⅰ、打开终端(win+R,输入cmd)
Ⅱ、cd到elasticsearch-head文件夹后,运行下列命令。
npm install -g grunt -cli
npm install
grunt server
Ⅲ、不关闭终端,打开浏览器运行 127.0.0.1:9100。
此时状态为未连接,是正常的,连接操作会在下面的文章中进行配置。
安装成功!!!
(4)配置文件
注意:当前还是未连接状态,这是因为elasticsearch不允许第三方插件连接,所以我们要修改下elasticsearch的安全配置。
解决:在elasticsearch.yml配置文件中添加如下信息,允许跨域访问。http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length,X-User"
Ⅰ、打开配置文件
elasticsearch.yml配置文件的位置:elasticsearch-rtf-master\config\elasticsearch.yml
Ⅱ、在配置文件中加入以下代码
文档全文都注释了,滑到末尾,添加以下代码并保存。
http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length,X-User"
(5)重启服务
重启elasticsearch.bat服务,再打开http://127.0.0.1:9100/,就可以成功连接了。
重启操作步骤:在终端中,输入 Ctrl+C 停止服务运行,再运行 grunt server 启动服务。
注意:
- 若是选择关闭终端后再打开,需要先切换到 elasticsearch-head-master 文件下,再运行 grunt server 。
- 此操作需要保持 elasticsearch.bat 服务的运行,否则无法连接。
总结
学习Elasticsearch需要掌握的内容:
- 掌握Elasticsearch的各种使用,包括document管理,索引管理,搜索,聚合分析,等等。
- 掌握Elasticsearch的各种高级核心知识点,包括乐观锁并发控制,mget+bulk批处理,零停机场景下重建索引,dynamic mapping模板定制,分词器定制,等等。
- 掌握Elasticsearch的各种核心原理,包括分布式架构原理、分布式文档系统原理、分布式搜索引擎原理、内核级原理。
- 掌握基于Java来开发Elasticsearch的简单应用程序,实现包括document增删改查、常见的搜索操作、常见的聚合分析操作。