
大数据技术
文章平均质量分 68
天才少年137
这个作者很懒,什么都没留下…
展开
-
Flink——Table_API和Flink_SQL
简单案例应用pom文件:<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.10.1</version></dependency><dependency> <groupId>org.apache.fli.原创 2021-11-29 19:48:26 · 271 阅读 · 0 评论 -
Flink——状态管理
状态分类:算子状态(Operatior State);键控状态(Keyed State);状态后端(StateBackends)什么是状态1:由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态 2:可以认为状态就是一个本地变量,可以被任务的业务逻辑访问 3:Flink 会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑算子状态(Operator State) 1:算子状态的作用范围限定为算子任务,由同一并.原创 2021-11-26 15:55:40 · 1076 阅读 · 0 评论 -
Flink的时间语义和Watermark
事件处理会经过几个特殊时间:Event Time:事件创建的时间 Ingestion Time:数据进入Flink的时间 Processing Time:执行操作算子的本地系统时间,与机器相关原创 2021-11-20 21:47:25 · 1200 阅读 · 0 评论 -
Flink——窗口(window)
一:窗口(window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析window类型:时间窗口(Time Window) ➢ 滚动时间窗口(Tumbling Windows):将数据依据固定的窗口长度对数据进行切分时间对齐,窗口长度固定,没有重叠➢ 滑动时间窗口 (Sliding Windows):滑动窗口是固定窗口的更广义的一种形式,滑动窗口由固定的窗口长度和滑动间隔组成。窗口长度固定,可以有重叠➢ 会话窗口(Session Win原创 2021-11-18 21:27:01 · 1341 阅读 · 0 评论 -
Flink流处理——Sink
1:Kafkapackage com.atguigu.sink;import com.atguigu.bean.SensorReading;import org.apache.flink.api.common.serialization.SimpleStringSchema;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.datastream.D原创 2021-11-12 19:25:30 · 2409 阅读 · 0 评论 -
Flink流处理——Transform分组聚合
1:map,flatMap,Filterpackage com.atguigu.transfrom;import org.apache.flink.api.common.functions.FilterFunction;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.fl原创 2021-11-10 22:01:31 · 2565 阅读 · 0 评论 -
Flink流处理——Source
一:流处理创建一个执行环境,表示当前执行程序的上下文。 如果程序是独立调用的,则 此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法 返回此集群的执行环境,也就是说,getExecutionEnvironment 会根据查询运行的方 式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvi...原创 2021-11-10 20:26:50 · 296 阅读 · 0 评论 -
Flink运行架构分析
运行时组件作业管理器(JobManager) 1:控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行。 2:JobManager 会先接收到要执行的应用程序,这个应用程序会包括:作业图 (JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类,库和其它资源的jar包。 3:JobManager 会把JobGraph转换成一个物理层面的数据流...原创 2021-11-09 23:26:31 · 627 阅读 · 0 评论 -
通用配置文件读取
package com.yrl.common.constant;import java.util.Enumeration;import java.util.HashMap;import java.util.Map;import java.util.ResourceBundle;public class ConfigConstant { private static Map<String,String> valueMap = new HashMap<>(); .原创 2021-10-27 22:28:51 · 90 阅读 · 0 评论 -
大数据电信客服项目一——数据生成
源码,资料自取:链接:https://pan.baidu.com/s/1jWcfux9vONLio5LboLSxSQ提取码:6666说明:数据生成采用面向接口方法,支持个人扩展,代码有注解说明可自行观看生成数据的格式:主叫 被叫 通话时间 通话时长 ...原创 2021-10-27 16:58:07 · 784 阅读 · 0 评论 -
Kafka拦截器
对于 producer 而言,interceptor 使得用户在消息发送前以及 producer 回调逻辑前有机会 对消息做一些定制化需求,比如修改消息等。同时,producer 允许用户指定多个 interceptor 按序作用于同一条消息从而形成一个拦截链(interceptor chain)。Intercetpor 的实现接口是 org.apache.kafka.clients.producer.ProducerInterceptor,其定义的方法包括: (1)conf...原创 2021-10-26 18:02:31 · 609 阅读 · 0 评论 -
Kafka的offset提交管理
一:自动提交//开启offset自动提交properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,"false");缺点:先提交offset后消费,提交完offset后没有消费就挂机后,可能造成丢失数据二:手动提交手动提交 offset 的方法有两种:分别是 commitSync(同步提交)和 commitAsync(异步 提交)。两者的相同点是,都会将本次 poll 的一批数据最高的偏移量提交;不同点是, c...原创 2021-10-26 17:35:32 · 3715 阅读 · 2 评论 -
Kafka消费者深层讲解
一:消费方式consumer 采用 pull(拉)模式从 broker 中读取数据。 push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。 它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pull 模式则可以根据 consumer 的消费能力以适 当的速率消费消息。 pull 模式不足之处是,如果 kafka 没有数据,消费...原创 2021-10-25 22:23:00 · 396 阅读 · 0 评论 -
Kafka生产者深层讲解
一:分区策略1.1:分区的原因 (1)方便在集群中扩展,每个 Partition 可以通过调整以适应它所在的机器,而一个 topic 又可以有多个 Partition 组成,因此整个集群就可以适应任意大小的数据了; (2)可以提高并发,因为可以以 Partition 为单位读写了。1.2:分区原则我们需要将 producer 发送的数据封装成一个 ProducerRecord 对象(1)指明 partition 的情况下,直接将...原创 2021-10-23 22:11:50 · 90 阅读 · 0 评论 -
Kafka工作流程和文件储存
工作流程常用命令:先启动zookeeper和kfka# 创建topic[atguigu@hadoop112 kafka_2.11-0.11.0.0]$ bin/kafka-topics.sh --create --zookeeper hadoop112:2181 --replication-factor 3 --partitions 2 --topic first# 开启生产者[atguigu@hadoop112 kafka_2.11-0.11.0.0]$ bin/kafka-conso原创 2021-10-22 23:31:48 · 184 阅读 · 0 评论 -
Flume进阶二——自定义Interceptor
一:自定义Interceptor在实际的开发中,一台服务器产生的日志类型可能有很多种,不同类型的日志可能需要 发送到不同的分析系统。此时会用到 Flume 拓扑结构中的 Multiplexing 结构,Multiplexing 的原理是,根据 event 中 Header 的某个 key 的值,将不同的 event 发送到不同的 Channel中,所以我们需要自定义一个 Interceptor,为不同类型的 event 的 Header 中的 key 赋予不同的值1.1 案例: ...原创 2021-10-21 14:20:12 · 531 阅读 · 0 评论 -
Flume进阶一
目录一:flume事务二:flume agent内部原理三:复制和多路复用3.1:案例四:故障转移4.1: 案例五:负载均衡六:聚合6.1:案例一:flume事务二:flume agent内部原理重要组件: 1)ChannelSelector ChannelSelector 的作用就是选出 Event 将要被发往哪个 Channel。其共有两种类型, 分别是 Replicating(复制)和 Multiplexing(多路复...原创 2021-10-19 16:27:17 · 165 阅读 · 0 评论 -
Flume基础
1.Flume 定义 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。 2.Flume的基础架构Flume 架构中的组件: 2.1 Agent Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。 Agent 主要有 3 个部分组成,Source、Channel、Sink。 2.2 Source Source 是负责接收...原创 2021-10-14 21:53:41 · 1461 阅读 · 1 评论 -
基于Centos7的Flume安装
目录一:Flume的安装二:Flume案例一:Flume的安装1)将 apache-flume-1.7.0-bin.tar.gz 上传到 linux 的/opt/software 目录下 2)解压 apache-flume-1.7.0-bin.tar.gz 到/opt/module/目录下 3)修改 apache-flume-1.7.0-bin 的名称为 flume 4)将 flume/conf 下的 flume-env.sh.template 文件修改为 flume-env原创 2021-10-13 22:38:02 · 1568 阅读 · 2 评论 -
基于centos7的Hive安装
二:mysql的安装 2.1:centos7默认安装的是mariadb,需要先卸载mariadb,先查看是否安装mariadbrpm -qa | grep mariadb如果找到,则拷贝结果,使用下面命令删除,如删除mariadb-libs-5.5.35-3.el7.x86_64rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64 2.2查找以前是否安装有mysql卸载,使用下面命令:...原创 2021-10-11 19:59:50 · 123 阅读 · 0 评论 -
基于Centos7的Hadoop2.7应用一
草稿原创 2021-10-11 12:59:32 · 128 阅读 · 0 评论