IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Elasticsearch 使用 -> 正文阅读

[大数据]Elasticsearch 使用

一. Elasticsearch 安装

jdk 版本要求至少 1.8 以上,进入 ES?官网之后使用迅雷下载解压,解压之后就可以使用了,熟悉 ES 解压之后的各个目录;

  • bin:启动文件
  • config:配置文件:log4j2.properties:日志配置文件;jvm.options:java 虚拟机的相关配置;
  • elasticsearch.yml:elasticsearch 的配置文件(默认 9200 端口);
  • lib:相关 jar 包,例如基于 Lucene 的相关 jar 包;
  • modules:功能模块
  • plugins:插件模块,例如 IK 分词器,可以复制到 plugins 目录下就可以使用了;
  • logs:日志;

二. Elasticsearch 启动

进入 ES 解压之后的 bin 目录,双击 elasticsearch.bat 文件或者使用以命令行方式启动elasticsearch.bat 文件,当 ES 正常启动的时候不会显示报错信息,而且会生成 elastic 用户以及密码,配置 kibana 的 token 等信息(我的 elasticsearch 版本是8.2.0):

我们可以在浏览器中使用?ip 地址:9200(例如:https://12.20.20.15:9200)访问或者使用https://127.0.0.1:9200 访问,注意是 https 请求,这个时候会显示不安全的连接此时我们可以点击转到这个连接,转到这个连接之后需要输入 elasticsearch 的用户名和密码,用户名可以输入:elastic,密码输入使用?elasticsearch.bat 文件启动成功之后生成的密码(上图中生成的密码),成功登陆之后我们可以在页面中看到下面的信息:

安装可视化界面:es head 插件,head 插件可以方便看到 es 集群节点、索引和分片信息,安装 head 插件需要依赖 ?nodejs 和 grunt 环境,head 插件下载地址:https://gitee.com/cyberton/elasticsearch-head/repository/archive/master.zip

安装 ES head 插件步骤:1. 安装 nodejs:在官网下载 nodejs? 按照提示进行安装;在 cmd 命令行中使用?node -v 检查是否可以显示 nodejs 版本;2. 进入到 nodejs 安装目录,使用 cmd 命令进入到这个nodejs 安装目录,使用命令:npm install -g grunt?-cli 安装;3. 进入到下载好的 es head 插件目录下,使用命令:npm install(这个命令下载很慢很有可能下载失败);或者是使用 cnpm install (在 cmd 命令行中先使用:npm install -g cnpm --registry=https://registry.npm.taobao.org 命令安装淘宝镜像,这样后面就可以使用 cnpm install 命令快速安装)下载 head 插件需要的各种依赖:

安装好了上面的环境之后进入到 head 插件目录,可以发现多了一个node_modules 文件夹,里面保存的就是各种下载好的依赖:

在 head 目录的 cmd 模式下然后使用命令:npm run start:

在浏览器中访问可以得到下面的页面:?

9100 访问 9200 就是跨域问题,如何解决这个问题呢?把?elasticsearch 关掉,在 elasticsearch 解压目录下编辑?elasticsearch.yml 文件,添加:http.cors.enabled: true 开启跨域;http.cors.allow-origin: "*"(运行所有人访问)可以在 gitee 上找到这个插件的相关使用说明:

http.cors.enabled: true         # 允许跨域访问
http.cors.allow-origin: "*"     # "*"表示所有域名

但是修改完成之后点击连接之后发现还是无法连接,使用快捷键 fn + f12 打开浏览器的开发者模式,查看点击连接发送的请求,发现出现了 401 用户没有权限访问的错误,将 elasticsearch/config 目录下的 elasticsearch.yml 文件中的:xpack.security.enabled: true 修改为 false 才可以使用 head 插件正常访问 http 请求的 9200 端口,如果为 true 在浏览器中会报 401 没有权限的错误(报错的时候连接的是 https 请求),修改为 false 之后在浏览器中需要通过 http 请求来访问 9200 端口,默认这个属性值设置的是 true,官方推荐将其设置为 true 这样使用才比较安全,先将xpack.security.enabled 这个属性修改为 false,后面再看看还有哪些解决方案:

es 中的索引可以看成是数据库;

三. Kibana 的安装

ELK 是 Elasticsearch、Logstash、Kibana 三大开源框架首字母大写简称,市面上也被成为 Elastic Stack,其中 Elasticsearch 是一个基于 Lucene、分布式、通过 Restful 方式进行交互的近实时搜索平台框架;像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用 Elasticsearch 作为底层支持框架,可见 Elasticsearch 提供的搜索能力确实强大,市面上很多时候我们简称 Elasticsearch 为 es。
Logstash 是 ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ) 收集的不同格式数据,经过过滤后支持输出到不同目的(文件/MQ/redis/elasticsearch/kafka等)
Kibana 可以将 elasticsearch 的数据通过友好的页面展示出来,提供实时分析的功能。市面上很多开发只要提到 ELK 能够一致说出它是一个日志分析架构技术栈总称,但实际上 ELK 不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。(收集清晰数据 Logstash --> 搜索,存储 elasticsearch --> 数据展示 Kibana )

Kibana 是一个针对 Elasticsearch 的开源分析及可视化平台,用来搜索、查看交互存储在 Elasticsearch 索引中的数据,使用Kibana 可以通过各种图表进行高级数据分析及展示,Kibana 让海量数据更容易理解,它操作简单,基于浏览器的用户界面可以快速创建仪表板 (dashboard) 实时显示 Elasticsearch 查询动态,设置 Kibana 非常简单,无需编码或者额外的基础架构,几分钟内就可以完成 Kibana 安装并启动 Elasticsearch 索引监测。

1. 进入 Kibana 的解压目录,双击启动?kibana.bat,kibana 默认是 5601 端口;2. 在浏览器中输入http://localhost:5601/?访问测试:

3.? 开发工具:(postman,curl,head,谷歌浏览器插件),这里使用 kibana 进行测试,找到面板中的开发工具,之后我们的命令会写到这个面板:

我们可以显示的 kibana 页面修改为中文,找到 kibana.yml 文件将注释打开并且修改为(kibana 中有一个默认的插件文件夹 x-pack,里面可以找到国际化的相关文件),修改之后重启 kibana 然后在浏览器中访问 kibana 页面:

i18n.locale: "zh-CN"

在浏览器中访问可以观察到 kibana 的中文页面:

四. ES 核心概念理解

elasticsearch 是面向文档,关系型数据库和 elasticsearch 客观的对比:
Relational DB????????????????Elasticsearch
数据库 (database)?????????索引 (indices)
表 (tables)?????????????????????types
行 (rows)? ? ? ? ? ? ? ? ? ? ? ?documents?????
字段 (columns)? ? ? ? ? ? ? fields

elasticsearch (集群) 中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)。

物理设计:

elasticsearch 在后台把每个索引划分成多个分片,每个分片可以在集群中的不同服务器间迁移;(一个人就是一个集群,默认的集群名字就是 elasticsearch),

逻辑设计:

一个索引类型中,包含多个文档,比如说文档1,文档2,当我们索引一篇文档时,可以通过这样的一各顺序找到它:索引-->类型--> 文档,通过这个组合我们就能搜索到某个具体的文档,注意:id 不必是整数,实际上它是个字符串。

文档

之前说 elasticsearch 是面向文档的,那么就意味着索引和搜索数据的最小单位是文档,elasticsearch 中,文档有几个重要属性:
1. 自我包含,一篇文档同时包含字段和对应的值,也就是同时包含key:value;
2. 可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是这么来的;
3. 灵活的结构,文档不依赖预先定义的模式,我们知道关系型数据库中,要提前定义字段才能使用,在 elasticsearch 中,对于字段是非常灵活的,有时候我们可以忽略该字段,或者动态的添加一个新的字段;尽管我们可以随意的新增或者忽略某个字段,但是每个字段的类型非常重要,比如一个年龄字段类型,可以是字符串也可以是整型,因为 elasticsearch 会保存字段和类型之间的映射及其他的设置,这种映射具体到每个映射的每种类型,这也是为什么在 elasticsearch 中,类型有时候也称为映射类型。
?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:15:37  更:2022-05-24 18:19:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:48:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码