自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大数据进阶之路

大数据 | Hadoop | Flink

  • 博客(151)
  • 收藏
  • 关注

原创 Flink中的多流转换

在Flink的使用过程中,经常可能会遇到将一个流的数据拆分成多个流,此时就需要将一个DataStream拆分成独立的两个或多个DataStream,一般情况下可能需要根据一些条件将不同的数据过滤出来写入不同的流。在1.13版本中,使用处理函数(process function)的侧输出流(side output)将一个流进行拆分。处理函数本身可以认为是一个转换算子,它的输出类型比较单一,处理之后得到的仍然是一个DataStream。但是侧输出流并不受此限制,可以任意自定义输出数据,看起来就像从主流分叉出来的

2022-07-12 15:39:35 926 1

原创 Flink中的Time和Window

Flink中的时间语义分为两种,分别是处理时间(Process Time)和事件时间(Event Time)。处理时间是指执行处理操作的机器的系统时间,在流式数据计算中,处理时间是最简单的时间语义,不需要各个节点之间进行协调同步,也不需要考虑数据在流中的位置。事件时间是指每个事件在对应的设备上发生的时间,也就是数据生成时间,数据一旦生成,这个时间就确定了,这个时间作为一个属性嵌入到数据中,其实也就是这叫数据记录的时间戳。由于在事件时间语义下,先产生的数据先处理,这就要求我们要保证数据到达的顺序,但真实情况下

2022-07-11 14:53:09 812

原创 Flink日志文件配置

因为在正常的情况下,Flink的流数据是非常大的,有时候会使用print()打印数据自己查看,有时候为了查找问题会开启debug日志,就会导致日志文件非常大,通过Web UI查看对应的日志文件是会非常卡,所以首先将日志文件按照大小滚动生成文件,我们在查看时不会因为某个文件非常大导致Web UI界面卡,没法查看。2.2 设置日志写入Kafka集群针对按照日志文件大小滚动生成文件的方式,可能因为某个错误的问题,需要看好多个日志文件,所以可以把日志文件通过KafkaAppender写入到kafka中,然后通过

2022-06-16 21:52:07 5681 5

转载 可直接拿来用的kafka+prometheus+grafana监控告警配置

可直接拿来用的kafka+prometheus+grafana监控告警配置

2022-06-15 22:51:35 3195

原创 使用Prometheus+Grafana打造Flink监控页面

将pushgateway解压到指定目录后,直接运行pushgateway即可启动pushgateway2. 安装node_exporter将node_exporter解压到指定目录后,直接运行node_exporter即可启动node_exporter3. 安装Prometheus解压Prometheus到安装目录,并修改目录下的配置文件:启动Prometheus服务启动之后在web页面上可以看到pushgateway、node_exporter以及prometheus的运行情况,地址启动Gr

2022-06-15 14:26:58 1115

转载 Maven多模块工程打包指定模块工程

Maven多模块工程打包指定模块工程执行如下命令: mvn clean package -pl  指定模块工程名 -am   参数说明: -am --also-make 同时构建所列模块的依赖模块;-amd -also-make-dependents 同时构建依赖于所列模块的模块;-pl --projects <arg> 构建制定的模块,模块间用逗号分隔;-rf...

2022-04-21 16:07:11 3137

原创 Flink运行环境

Flink运行环境Flink运行环境_Local1. 启动Local环境进入解压缩后的路径,执行如下命令bin/start-cluster.sh启动成功后,可以输入网址进行Web UI监控页面访问http://虚拟机地址:80812. 命令行提交应用bin/flink run \-m hadoop01:8081 \-d \-c com.yankee.day01.Flink03_WordCount_UnBounded_Scala wordcount.jar注意:启

2022-04-19 12:00:00 1008

原创 Flink中Window的介绍和使用

Flink中Window的介绍和使用Flink中的窗口大致分为两类,分别是Keyed Windows和Non-Keyed Windows,接下来我们从其简单应用方面看看Window都包含哪些内容,基本的用法等。1. 按照使用场景分类Keyed Windows:跟在KeyedStream后使用stream .keyBy(...) <- keyed versus non-keyed windows .window(...)

2022-04-18 16:03:28 808

原创 Flink中Trigger的介绍及使用

Flink中Trigger的介绍及使用Flink中的Trigger用来确认一个窗口是否应该出发结果的计算,每个windowAssigner都有一个默认的Trigger,先来看看Trigger的定义及其API。1. Trigger的定义@PublicEvolvingpublic abstract class Trigger<T, W extends Window> implements Serializable { private static final long serial

2022-04-18 09:30:51 3479 2

原创 Flink中DataStream常用算子

Flink Stream常用算子其实对于所有的计算框架都是一样的,都分为以下四部分:Flink中提供的一些Source、Transform算子以及Sink如下:1. EnvironmentFlink Job提交执行计算时,首先需要简历和Flink框架的联系,所以只有获取处理的环境,才能将task调度到不同的taskManager执行。// 批处理环境ExecutionEnvironment benv = ExecutionEnvironment.getExecutionEnvironment

2022-03-29 14:49:52 2096

原创 Scala入门

Scala入门Scala语言是一门多范式(多范式是指:面向对象、面向过程、范型和函数式四种程序设计方法)的编程语言,平滑的集成了面向对象和函数式语言的特性。Scala语言被Martin Odersky在2001年开始设计。特点和Java一样,运行在JVM上可以直接使用Java的类库Scala语言非常的简洁(简洁不是简单)高效同时支持面向对象和面向函数式编程阅读资料尚硅谷Scala视频(主要)Scala官网基础语法速查手册Scala官网文档大佬的笔记1. 环境配置Sc

2022-03-28 17:22:03 1345

转载 shell脚本中if判断‘-a‘~‘-z‘的含义

shell脚本if判断变量介绍 变量含义[ -a FILE ]如果 FILE 存在则为真[ -b FILE ]如果 FILE 存在且是一个块特殊文件则为真[ -c FILE ]如果 FILE 存在且是一个字特殊文件则为真[ -e FILE如果 FILE 存在则为真[ -f FILE...

2022-03-21 09:23:42 400

原创 Flink的运行架构

Flink的运行架构1. 运行架构1. Client严格意义上说,Client不是运行和程序执行的一部分,而是用于准备dataflow并将其发送给JobManager。之后,Client可以断开连接与JobManager的连接(分离模式-detached mode),也可以继续保持与JobManager的连接(附加模式-attached mode)。客户端可以作为触发执行Java或Scala代码的一部分运行,也可以在命令行进程bin/flink run ...中运行。2. JobManager

2022-03-11 15:39:17 3177

原创 Zookeeper常见的面试题

Zookeeper常见的面试题1. 什么是Zookeeper?谈谈你对Zookeeper的认识?Zookeeper是一个分布式的,开放源代码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。2. Zookeeper的核心功能?Zookeeper提供了三个核心功能:文件系统、通知机制和集群管理机制。1. 文件系统Zookeeper存储数据的结构,类似于一个文件系统。每个节点称之为znode,买个znode都是类似于K-V的

2022-02-25 22:40:14 6296

原创 Hadoop集群搭建之Hive on Spark

Hadoop集群搭建之Hive on Spark用到的各个组件的版本组件版本hadoop3.3.1hive3.1.2spark2.4.6scala2.12.101. 准备工作# 下载spark的源码wget https://downloads.apache.org/spark/spark-2.4.6/spark-2.4.6.tgz2. 编译spark源码# 解压源码到目录下tar -zvxf spark-2.4.6.tgz &&am

2021-12-05 14:59:37 1947

原创 自制CDH6.3版本ElasticSearch安装包

自制CDH6.3版本ElasticSearch安装包1. 下载cm_extCloudera提供的cm_ext工具,对生成的csd和parcel进行检验mkdir -p ~/github/clouderacd ~/github/cloudera# clone cm_extgit clone https://github.com/cloudera/cm_ext.git# 打包cd cm_extmvn package -Dmaven.test.skip=trueTips:build_pa

2021-11-30 17:46:54 403

原创 CDH6.3.2集群部署

CDH6.3.2集群部署在阿里云上部署CDH6.3.2集群,本人使用四台机器,自己部署是可以选择自行规划节点角色。1. 基础配置1. 角色规划节点节点主要角色备注cdh1cdh2cdh3cdh42. 修改hostname(所有节点)hostnamectl set-hostname cdh1hostnamectl set-hostname cdh2hostnamectl set-hostname cdh3hostnamectl se

2021-11-29 20:53:13 971

原创 自制CDH6.3版本Flink安装包

自制CDH6.3版本Flink安装包1. 下载flink-parcel工具git clone https://github.com/pkeropen/flink-parcel.git2. 修改flink版本配置#FLINK 下载地址FLINK_URL=https://archive.apache.org/dist/flink/flink-1.13.3/flink-1.13.3-bin-scala_2.12.tgz#flink版本号FLINK_VERSION=1.13.3#扩展版本号E

2021-11-29 20:51:55 428

原创 源码阅读-Record

源码阅读-RecordKafka消息格式相关的代码位于clients工程下的/java/org/apache/kafka/common/record包下。类之间的关系图如下所示:1. DefaultRecord(默认消息)类中的消息格式定义(org.apache.kafka.common.record.DefaultRecord):字段说明sizeInBytes消息总长度字段attributes消息属性字段offset位移增量timestamp时

2021-11-16 15:33:26 1516

原创 Kafka的日志存储

Kafka的日志存储kafka的消息是以topic为单位进行归类的,各个topic之间互相独立,互不影响。每个主题可以分成一个或者多个分区。每个分区各自存在一个记录消息数据的日志文件。图中,order-topic主题共有3个分区,每个分区存在一个以topic-partition命名的目录,目录下的文件结构如下表:文件类别作用.index消息的物理地址的偏移量索引文件.timeindex映射时间戳和相对offset的时间戳索引文件.log日志文件(消息存储文件)

2021-11-12 13:50:25 2229

原创 源码阅读-LogSegment

Kafka源码阅读-LogSegment日志段代码解析地址位于core工程下的/scala/log/LogSegment.scala。该文件中定义了以下三个scala对象:1. LogSegment类定义log:消息的日志文件lazyOffsetIndex:偏移量索引文件lazyTimeIndex:时间戳索引文件txnIndex:事务索引文件baseOffset:每个日志文件的其实偏移量baseOffset,磁盘中存储文件的命名采用的就是baseOffsetindexInterval

2021-11-12 13:49:33 1052

原创 离线安装软件

离线安装软件由于服务器没有连接公网,没有yum源,所以需要下载对应软件的离线安装包进行安装。1. 安装包准备找一个可以连接公网的设备,最好和服务器系统版本一致。安装yum-utils和createrepo软件。yum install -y yum-utils createrepo使用yum搜索需要离线安装的软件yum search git如果yum源中存在,可以使用以下命令进行打包下载# /target表示要保存的目录repotrack git -p /target下载完成后,进入

2021-07-23 10:45:29 879

原创 Flink运行环境_Yarn

Flink运行环境_Yarn独立部署(Standalone)模式是由Flink框架本身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是由于Flink主要是计算框架,而不是资源调度框架,所以本身资源调度并不是它的强项。把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会申请容器从Yarn的NodeManager上面,Flink会创建JobManager和TaskManager在这些容器上面,Flink会

2021-06-07 16:02:15 720

原创 Flink运行环境_Standalone

Flink运行环境_Standalone只使用Flink自身节点运行的集群模式,也就是我们所谓的(Standalone)模式,也叫做独立集群模式。1. Flink独立集群部署1. 解压缩文件将flink-1.12.2文件上传到指定目录并解压。2. 修改配置文件进入解压缩的路径的conf目录,修改flink-conf.yamljobmanager.rpc.address: hadoop01修改works文件,添加work节点hadoop01hadoop02hadoop03

2021-06-07 16:01:38 336

原创 Flink运行环境_Local

Flink运行环境_Local1. 启动Local环境进入解压缩后的路径,执行如下命令bin/start-cluster.sh启动成功后,可以输入网址进行Web UI监控页面访问http://虚拟机地址:80812. 命令行提交应用bin/flink run \-m hadoop01:8081 \-d \-c com.yankee.day01.Flink03_WordCount_UnBounded_Scala wordcount.jar注意:启动之前需要先启动ha

2021-06-07 16:01:01 242

原创 Flink中如何判断需要几个slot以及任务链的划分

Flink中如何判断需要几个slot以及任务链的划分1. 设置全局的并发object Flink01_WordCount_Chain_Scala { def main(args: Array[String]): Unit = { // 1.创建执行环境 val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment // 设置并行度 env.setPara

2021-06-04 14:57:25 1812

原创 Spark的运行环境_Yarn

Spark的运行环境_Yarn独立部署(Standalone)模式由Spark自身提供计算资源,无需其它框架提供资源。这种方式降低了和其它第三方资源框架的耦合性,独立性非常强。但是由于Spark本身是计算框架,所以本身提供的资源调度并不是它的强项。1. 解压缩文件将spark-2.4.6.tgz文件上传到CentOS并解压缩,放置在指定位置。2. 修改配置文件修改hadoop配置文件/opt/app/hadoop-2.7.7/etc/hadoop/yarn-site.xml,并分发 <

2021-06-03 10:05:51 140

原创 Spark的运行环境_Standalone

Spark的运行环境_Standalone只使用Spark自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式。Spark的Standalone模式体现了经典的master-slave模式。1. 解压缩文件将spark-2.4.6文件上传到CetnOS并解压在指定位置2. 修改配置文件进入解压缩后的路径的conf目录,修改slaves.template文件名为slavesmv slaves.template slaves修改salves文件,添加work节点

2021-06-03 10:05:18 154

原创 Spark的运行环境_Local

Spark的运行环境_LocalSpark作为一个数据处理框架和计算引擎,被设计在所有常见的集群环境中运行,在国内工作中主流的环境为Yarn。1. Local模式所谓的Local模式,就是不需要其他任何节点资源就可以在本地执行Spark代码的环境,一般用于教学、调试、演示等。1. 启动Local环境进入解压缩后的路径,执行如下命令bin/spark-shell启动成功后,可以输入网址进行Web UI监控页面访问http://虚拟机地址:40402. 命令行工具在

2021-06-03 10:04:45 380 2

原创 Spark核心编程_累加器和广播变量

Spark核心编程_累加器和广播变量1. 累加器累加器用来把Executor端变量信息聚合到Driver端。在Driver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行merge。1. 系统累加器// TODO 业务逻辑val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4), 2)// Spark默认就提供了简单数据聚合的累加器val sumAcc: LongA

2021-06-02 09:21:52 146

原创 Spark核心编程_RDD

Spark核心编程_RDD1. RDD创建从集合(内存)中创建RDD从集合中创建RDD,Spark主要提供了两个方法:parallelize和makeRDDval sparkConf = new SparkConf().setMaster("local[*]").setAppName(this.getClass.getSimpleName.filter(!_.equals('$')))val sparkContext = new SparkContext(sparkConf)val rdd1

2021-06-02 09:21:03 194

原创 Spark核心编程

Spark核心编程Spark计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景。三大数据结构分别是:RDD:弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读变量1. RDD1. 什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的原宿可并行计算的集合。弹性存储的弹性:内存与磁盘的自动

2021-06-02 09:20:11 184 1

原创 ClickHouse集群配置

ClickHouse集群配置(基于ClickHouse版本21.4.6.55)1. ClickHouse集群(3分片2副本配置)<?xml version="1.0"?><yandex> <remote_servers> <shards3_replications2> <shard> <internal_replication>true</internal_replication> &lt

2021-05-17 10:33:59 1267

原创 Flink常见的面试题

Flink常见的面试题1. Flink-On-Yarn的两种架构问题:Flink-On-Yarn常见的提交模式有哪些,分别有什么优缺点?解答:flink在yarn模式下运行,有两种任务提交模式,资源消耗各不相同。1. yarn-sessionyarn-session这种方式需要先启动集群,然后在提交作业,接着会向yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个就任务就无法提交,只能等到yarn中其中一个作业完成后,释放了资源,那下一个作业才会正常提交,这种方式资源被限制在sessi

2021-04-26 16:04:25 2038

原创 Spark Streaming概述

Spark Streaming概述1. Spark StreamingSpark Streaming用于流式数据的处理。但是Spark Streaming本质上是准实时的,微批次的数据处理框架。Spark Streaming使用离散化流(discretized stream)作为抽象表示,叫做DStream。DStream是随着时间推移而收到的数据的序列。DStream就是对RDD在实时数据处理场景的一种封装。2. Spark Streaming的特点易用容错易整合到Spark体系3.

2021-04-04 18:11:15 358 4

原创 SparkSQL核心编程

SparkSQL核心编程1. 构建SparkSQL环境在老的版本中,SparkSQL提供了两种SQL查询起始点:一个SQLContext,用于Spark自己提供的SQL查询;一个HiveContext,用于连接Hive的查询。SparkSession是Spark最新的SQL查询起始点,实际上是SQLContext和HiveContext的组合。SparkSession内部封装了SparkContext,所以计算实际上由SparkContext完成的。当我们使用Spark-shell的时候,spark框

2021-04-01 22:25:39 171

原创 Spark的运行架构

Spark的运行架构1. 运行架构Spark框架的核心是一个计算引擎,整天来说,它使用了标准的master-slave的结构。图形中的Driver表示master,负责管理整个集群中的作业任务调度。图形中的Executor则是salve,负责实际执行任务。2. 核心组件1. DriverSpark驱动器节点,用于执行Spark任务中的main方法,负责实际代码的执行工作。Driver在Spark作业执行时主要负责:将用户程序转化为作业(job)在Executor之间调度任务(task)根

2021-03-28 16:13:07 1603

原创 Spark简介

Spark简介1. 什么是SparkSpark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎2. Spark和Hadoop- Hadoop - Hadoop是由Java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架 - 作为Hadoop分布式文件系统,HDFS处于Hadoop生态圈的最底层,存储着所有的数据,支持着Hadoop的所有服务。它的理论基础源于Google的《TheGoogleFileSystem》这篇论文,是GFS的开源实现 - MapRedu

2021-03-28 16:12:26 116

原创 SparkSQL概述

SparkSQL概述1. SparkSQL是什么SparkSQL是Spark用于结构化数据(structured data)处理的Spark模块。2. SparkSQL的发展数据兼容方面:SparkSQL不但兼容Hive,还可以从RDD、parquet文件、JSON文件中获取数据,未来版甚至支持获取RDBMS数据以及cassandra等NOSQL数据性能优化方面:出来才去In-Memory Columnar Storage、byte-code generation等优化技术外、将会引进Cost

2021-03-28 16:10:16 685

原创 Elasticsearch的Search API

Elasticsearch的Search API1. API类型- URI Search:在URL中使用查询参数- Request Body Search:使用Elasticsearch提供的,基于JSON格式的更加完备的Query Domain Specific Language(DSL)2. API查询范围语法范围/_search集群上所有的索引/index1/_searchindex1/index1,index2/_searchindex1和index

2021-01-17 10:45:37 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除