day02_ElasticSearch基础和SeaTunnel

news2025/1/21 4:27:52

文章目录

  • day02_ElasticSearch基础和SeaTunnel
  • 一、ElasticSearch基本介绍(了解)
    • 1、Elasticsearch应用方向
    • 2、ElasticSearch特点
    • 3、发展历史
  • 二、安装ElasticSearch(操作)
    • 1、安装ElasticSearch
    • 2、插件安装
      • 2.1 浏览器安装可视化插件
      • 2.2 PyCharm安装Elasticsearch插件
  • 三、ElasticSearch的使用(熟悉)
    • 1、RESTful API
    • 2、猎聘网职位搜索案例
    • 3、ElasticSearch SQL
    • 4、PySpark操作ElasticSearch数据(掌握)
      • 4.1 PySpark读取ES数据
      • 4.2 PySpark数据写入ES
      • 4.3 读取和写入完整代码
  • 四、SeaTunnel介绍(了解)
    • 1、概述
    • 2、SeaTunnel特点
    • 3、流程
    • 4、Connector介绍
  • 五、SeaTunnel使用(熟悉)
    • 1、基本概念
    • 2、官方示例
    • 3、MySQL数据到Hive
  • 六、SeaTunnel Web使用(了解)
    • 1、启动SeaTunnel Web
    • 2、SeaTunnel Web使用
      • 2.1 **创建数据源**
      • 2.2 **创建测试数据**
      • 2.3 **创建同步任务**
      • 2.4 **运行任务**
  • Spark集成ES.py
  • 七、课后作业
    • 1、ElasticSearch的Restful API的使用,实现数据、索引的增删改查操作
    • 2、使用SeaTunnel实现将数据从Hive导出到MySQL、MySQL数据导入到ElasticSearch

day02_ElasticSearch基础和SeaTunnel

一、ElasticSearch基本介绍(了解)

Elaticsearch,简称为es, es是一个基于apache开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

1. 简单来说 Elasticsearch 是一个开源的分布式搜索引擎,专门用于快速存储、搜索和分析大量数据,就像是一个“超级智能的图书馆管理员”,能帮你从海量数据中迅速找到需要的信息。

2. 具体 Elasticsearch 是基于 Apache Lucene 构建的,支持全文检索结构化搜索数据分析。它的核心特点包括:

  • 分布式架构:数据可以分布在多个节点上,支持水平扩展,处理PB级数据
  • 实时性:数据几乎可以实时被检索和分析。
  • 灵活性:支持多种数据类型,如文本、数字、地理位置等。
  • 强大的查询能力:支持复杂的查询语句,包括全文搜索、模糊搜索、聚合分析等。

3. 实际生产场景

  • 电商平台中,用于实现商品的全文搜索推荐功能,帮助用户快速找到所需商品。
  • 日志分析中,用于收集和检索服务器日志,帮助运维人员快速定位问题。
  • 大数据分析中,用于实时分析用户行为数据,生成可视化报表

4. 总之 Elasticsearch 是一个功能强大的分布式搜索引擎,适用于需要快速检索和分析海量数据的场景,是大数据领域搜索引擎技术中的重要工具。

1、Elasticsearch应用方向

  • 1- 信息检索
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 企业内部系统搜索
    在这里插入图片描述

  • 数据分析引擎

    • Elasticsearch 聚合可以对数十亿行日志数据进行聚合分析,探索数据的趋势和规律

2、ElasticSearch特点

  • 1- 海量数据存储和处理
大型分布式集群(数百台规模服务器)
处理PB级数据
小公司也可以进行单机部署
  • 2- 开箱即用
简单易用, 操作非常简单
快速部署生产环境
  • 3- 作为传统数据库的补充
传统关系型数据库不擅长全文检索(MySQL自带的全文索引,与ES性能差距非常大)
传统关系型数据库无法支持搜索排名、海量数据存储、分析等功能
Elasticsearch可以作为传统关系数据库的补充,提供RDBMS无法提供的功能

3、发展历史

在这里插入图片描述

  • 2004年,发布第一个版本名为Compass的搜索引擎,创建搜索引擎的目的主要是为了搜索食谱
  • 2010年,发布第二个版本更名为Elasticsearch,基于Apache Lucene开发并开源
  • 2012年,创办Elasticsearch公司
  • 2015年,Elasticsearch公司更名为Elastic,是专门从事与Elasticsearch相关的商业服务,并衍生了Logstash和Kibana两个项目,填补了在数据采集、数据可视化的空白。于是,ELK就诞生了
  • 2015年,Elastic公司将开源项目Packetbeat整合到Elasticsearch技术栈中,并更名为Beats,它专门用于数据采集的轻量级组件,可以将网络日志、度量、审计等各种数据作为不同的源头发送到Logstash或者Elasticsearch
  • ELK不再包括Elastic公司所有的开源项目,ELK开始更名为Elastic Stack,将来还有更多的软件加入其中,包括数据采集、清洗、传输、存储、检索、分析、可视化等
  • 2018年,Elastic公司在纽交所挂牌上市
    在这里插入图片描述

二、安装ElasticSearch(操作)

1、安装ElasticSearch

项目提供的服务器已经完成安装工作, 如需手动安装可参考课件安装篇, 需要注意的是ES不支持root用户安装, 必须使用普通用户

问题: 解决单节点告警问题

由于当前ES为单节点, 在构建一个新的索引库的时候, 依然会产生多个分片和副本的情况(默认), 但是只有一个节点, 多余的副本就无法放置, ES会变为告警状态(黄色)。修改副本数量为1即可

curl -XPUT http://192.168.88.166:9200/_settings?pretty -d '{ "index": { "number_of_replicas": 0 } }' -H "Content-Type: application/json"

2、插件安装

2.1 浏览器安装可视化插件

启动ElasticSearh服务
1- 切换用户
su es

2- 进入目录
cd /home/es/elasticsearch-7.10.2/bin

3- 启动
elasticsearch -d

4- 验证
jps

在地址位置: 输入 http://up01:9200 点击连接即可看到以下内容
在这里插入图片描述

2.2 PyCharm安装Elasticsearch插件

  • 进入配置页面

  • 安装插件:搜索 ElasticSearch Query。千万不要安装错
    在这里插入图片描述

  • 配置连接
    在这里插入图片描述

在这里插入图片描述

三、ElasticSearch的使用(熟悉)

1、RESTful API

1. 简单来说 RESTful API 是一种基于 HTTP 协议的网络接口设计风格,就像是一个“标准化的对话规则”,让客户端和服务器能够高效、清晰地交换数据。

2. 具体 RESTful API 是遵循 REST(Representational State Transfer,表述性状态转移)原则设计的接口。它的核心特点包括:

  • 资源导向:将数据或服务抽象为资源,每个资源通过唯一的 URL 标识。
  • HTTP 方法:使用标准的 HTTP 方法(如 GETPOSTPUTDELETE)来操作资源。
  • 无状态性:每次请求都包含所有必要信息,服务器不会保存客户端的状态。
  • 统一接口:接口设计简洁一致,易于理解和使用。

3. 实际生产场景

  • Web 应用中,用于前后端分离架构,前端通过 RESTful API 与后端交互数据。
  • 移动应用中,用于客户端与服务器之间的数据通信,如获取用户信息、提交订单等。
  • 微服务架构中,用于不同服务之间的通信,实现服务解耦和灵活扩展。

4. 总之 RESTful API 是一种简洁、高效的接口设计风格,广泛应用于现代 Web 和移动开发中,是构建分布式系统前后端分离应用的重要工具。

先看REST是什么意思,英文Representational state transfer 表述性状态转移 其实就是对 资源 的表述性状态转移。
简单的说:RESTful是一种架构的规范与约束、原则,就是用URI表示资源,用HTTP方法(GET, POST, PUT, DELETE)表征对这些资源的操作

如:http://localhost:9200/test/a.txt表示资源,Get或Post对资源进行操作,当采用RestFul API向ES发送数据的时候,ES返回响应的是数据格式Json,包括在请求体中发送Json格式的字符串发给服务器,所以ES的数据发送和返回都是Json数据格式的。

例如 ES的发送请求:
put /test-index/_doc/1
{
    "name": "张三",
    "age": 18
}

RESTful API 要求前端以一种预定义的语法格式发送请求,那么服务端就只需要定义一个统一的响应接口

2、猎聘网职位搜索案例

Elasticsearch与数据库的类比:

关系型数据库(比如Mysql) 非关系型数据库(Elasticsearch)
数据库 Database
表 Table 索引 Index
数据行 Row 文档 Document
数据列 Column 字段 Field
约束 Schema 映射 Mapping

ES的字段数据类型:

  • es的类型
    • 基本数据类型
      • text | keywords => string
        • text是可以进行分词字符串类型
        • keywords不能进行分词字符串类型
      • long
      • float
      • date
      • binary
    • 地址位置相关的类型
      • geo_point、geo_shape
    • 分词器
      • 分词器是针对一段文本,进行词的拆分方式
    • 分词类型
      • standard analyse : 英文分词器,标准分词器
      • IK analyse:一种中文分词器
      • JieBa:另外一种分词器
  • 完整数据类型:
    • https://www.elastic.co/guide/en/elasticsearch/reference/7.10/mapping-types.html

在这里插入图片描述
在这里插入图片描述

3、ElasticSearch SQL

ES SQL特点

  • 本地集成
    • Elasticsearch SQL是专门为Elasticsearch构建的。每个SQL查询都根据底层存储对相关节点有效执行。
  • 没有额外的要求
    • 不依赖其他的硬件、进程、运行时库,Elasticsearch SQL可以直接运行在Elasticsearch集群上
  • 轻量且高效
    • 像SQL那样简洁、高效地完成查询

ES-SQL语法

  • 目前支持单表查询
SELECT select_expr [, ...]
[ FROM table_name ]
[ WHERE condition ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition]
[ ORDER BY expression [ ASC | DESC ] [, ...] ]
[ LIMIT [ count ] ]
[ PIVOT ( aggregation_expr FOR column IN ( value [ [ AS ] alias ] [, ...] ) ) ]
  • es cli的官方指导文档:
    • https://www.elastic.co/guide/en/elasticsearch/reference/7.10/sql-cli.html
      • https://www.elastic.co/guide/en/elasticsearch/reference/7.10/sql-cli.html
        • https://www.elastic.co/guide/en/elasticsearch/reference/7.10/sql-syntax-show-tables.html
  • es sql简单操作
    • es-sql不适合做表关联查询
    • es-sql开源版支持的功能有限
    • 官方网站:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/sql-syntax-select.html
  • es只适合单表,大宽表存储,类似于hbase、mongo
    在这里插入图片描述
上面错误的原因: ES目前不支持多表查询。

4、PySpark操作ElasticSearch数据(掌握)

集成官网链接:https://www.elastic.co/guide/en/elasticsearch/hadoop/7.10/spark.html

集成相关参数介绍:https://www.elastic.co/guide/en/elasticsearch/hadoop/7.10/configuration.html

4.1 PySpark读取ES数据

核心参数及其配置:

1- format: org.elasticsearch.spark.sql或者es
2- options
	2.1- es.nodes: ES集群连接信息,例如up01:9200
	2.2- es.resource: 操作的索引名称,例如my_index
	2.3- es.read.field.exclude: 不读那些字段 (适用于: 不读较少字段的情况),例如'gender,job'  
	2.4- es.read.field.include: 只读那些字段 (适用于: 读较少字段的情况),例如'id, birthday' 
	2.5- es.mapping.date.rich: 在读取ES中date类型下的数据时候, 读取到Spark后, Spark会转换为timestamp类型, 但是实际需要还是日期的字符串类型, 此时将此参数设置false, 不允许其自动转换类型, 强制将date类型转换为字符串
  
3- load()

4.2 PySpark数据写入ES

核心参数及其配置:

1- format: org.elasticsearch.spark.sql或者es
2- mode
	2.1- append: 追加,当数据已经存在,往已存在的数据后面追加内容
	2.2- overwrite: 覆盖,当数据已经存在,先将旧数据全部清空,再添加新数据
	2.3- ignore

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2279641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI 大爆发时代,音视频未来路在何方?

AI 大模型突然大火了 回顾2024年,计算机领域最大的变革应该就是大模型进一步火爆了。回顾下大模型的发展历程: 萌芽期:(1950-2005) 1956年:计算机专家约翰麦卡锡首次提出“人工智能”概念,标志…

OpenEuler学习笔记(三):为什么要搞OpenEuler?

为什么要搞OpenEuler? 技术自主可控需求 在信息技术领域,操作系统是关键的基础软件。过去,很多关键技术被国外厂商掌控,存在技术“卡脖子”的风险。OpenEuler的出现可以为国内提供一个自主可控的操作系统选择。例如,在…

linux下的NFS和FTP部署

目录 NFS应用场景架构通信原理部署权限认证Kerberos5其他认证方式 命令serverclient查看测试系统重启后自动挂载 NFS 共享 高可用实现 FTP对比一些ftp服务器1. **vsftpd (Very Secure FTP Daemon)**2. **ProFTPD (Professional FTP Daemon)**3. **Pure-FTPd**4. **WU-FTPD (Was…

STM32-keil安装时遇到的一些问题以及解决方案

前言: 本人项目需要使用到STM32,故需配置keil 5,在配置时遇到了以下问题,并找到相应的解决方案,希望能够为遇到相同问题的道友提供一些解决思路 1、提示缺少(missing)version 5编译器 step1:找…

mfc操作json示例

首先下载cJSON,加入项目; 构建工程,如果出现, fatal error C1010: unexpected end of file while looking for precompiled head 在cJSON.c文件的头部加入#include "stdafx.h"; 看情况,可能是加到.h或者是.cpp文件的头部,它如果有包含头文件, #include &…

AI可信论坛亮点:合合信息分享视觉内容安全技术前沿

前言 在当今科技迅猛发展的时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活与工作方式。作为AI领域的重要盛会,CSIG青年科学家会议AI可信论坛汇聚了众多青年科学家与业界精英,共同探讨AI技术的最新进展、挑…

调试Hadoop源代码

个人博客地址:调试Hadoop源代码 | 一张假钞的真实世界 Hadoop版本 Hadoop 2.7.3 调试模式下启动Hadoop NameNode 在${HADOOP_HOME}/etc/hadoop/hadoop-env.sh中设置NameNode启动的JVM参数,如下: export HADOOP_NAMENODE_OPTS"-Xdeb…

Ability Kit-程序框架服务(类似Android Activity)

文章目录 Ability Kit(程序框架服务)简介Stage模型开发概述Stage模型应用组件应用/组件级配置UIAbility组件概述概述声明配置 生命周期概述生命周期状态说明Create状态WindowStageCreate**和**WindowStageDestroy状态WindowStageWillDestroy状态Foregrou…

鸿蒙安装HAP时提示“code:9568344 error: install parse profile prop check error” 问题现象

在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。 解决措施 该问题可能是由于应用使用了应用特权,但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特权管控白名…

哈尔滨有双线服务器租用吗?

哈尔滨有双线服务器租用吗?双线服务器是一种针对哈尔滨特有的网络环境优化的服务器解决方案,它能够同时支持中国电信和中国联通或移动其中两家主要ISP(互联网服务提供商)的连接。 由于中国南方地区多采用电信网络,而北…

三天急速通关Java基础知识:Day1 基本语法

三天急速通关JAVA基础知识:Day1 基本语法 0 文章说明1 关键字 Keywords2 注释 Comments2.1 单行注释2.2 多行注释2.3 文档注释 3 数据类型 Data Types3.1 基本数据类型3.2 引用数据类型 4 变量与常量 Variables and Constant5 运算符 Operators6 字符串 String7 输入…

JVM 面试八股文

目录 1. 前言 2. JVM 简介 3. JVM 内存划分 3.1 为什么要进行内存划分 3.2 内存划分的核心区域 3.2.1 核心区域一: 程序计数器 3.2.2 核心区域二: 元数据区 3.2.3 核心区域三: 栈 3.2.4 核心区域四: 堆 4. JVM 类加载机制 4.1 类加载的步骤 4.1.1 步骤一: 加载 4…

《AI赋能中国制造2025:智能变革,制造未来》

引言:开启智能制造新时代 在全球制造业格局深度调整的当下,科技变革与产业转型的浪潮汹涌澎湃。2015 年,我国重磅推出《中国制造 2025》这一宏伟战略,它如同一座灯塔,为中国制造业驶向高端化、智能化、绿色化的彼岸指明…

Observability:最大化可观察性 AI 助手体验的 5 大提示(prompts)

作者:来自 Elastic Zoia_AUBRY 在过去三年担任客户工程师期间,我遇到了数百名客户,他们最常问的问题之一是:“我的数据在 Elastic 中;我该如何利用它获得最大优势?”。 如果这适用于你,那么本…

Mysql常见问题处理集锦

Mysql常见问题处理集锦 root用户密码忘记,重置的操作(windows上的操作)MySQL报错:ERROR 1118 (42000): Row size too large. 或者 Row size too large (> 8126).场景:报错原因解决办法 详解行大小限制示例:内容来源于网…

【前端】用OSS增强Hexo的搜索功能

文章目录 前言配置 _config.fluid.yml云端实时更新 local-search.xml解决 OSS.Bucket 的跨域问题 前言 原文地址:https://blog.dwj601.cn/FrontEnd/Hexo/hexo-enhance-local-search-with-oss/ 考虑到某著名云服务商提供的云服务器在两年的 99 计划后续费价格高达四…

ROS2 与机器人视觉入门教程(ROS2 OpenCV)

系列文章目录 前言 由于现有的ROS2与计算机视觉(特别是机器人视觉)教程较少,因此根据以往所学与积累的经验,对ROS2与机器人视觉相关理论与代码进行分析说明。 本文简要介绍了机器人视觉。首先介绍 ROS2 中图像发布者和订阅者的基…

02内存结构篇(D1_自动内存管理)

目录 一、内存管理 1. C/C程序员 2. Java程序员 二、运行时数据区 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. Java堆 5. 方法区 运行时常量池 三、Hotspot运行时数据区 四、分配JVM内存空间 分配堆的大小 分配方法区的大小 分配线程空间的大小 一、内存管…

C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程

通过本课程的学习,你可以掌握C#编程的重点,享受编程的乐趣。 在本课程之前,你无需具备任何C#的基础知识,只要能操作电脑即可。 不过,希望你的数学不是体育老师教的。好的程序是数理化的实现与模拟。没有较好的数学基础…

BGP边界网关协议(Border Gateway Protocol)路由引入、路由反射器

一、路由引入背景 BGP协议本身不发现路由,因此需要将其他协议路由(如IGP路由等)引入到BGP路由表中,从而将这些路由在AS之内和AS之间传播。 BGP协议支持通过以下两种方式引入路由: Import方式:按协议类型将…