- 博客(119)
- 收藏
- 关注
原创 Flink 部分Function的依赖关系
1. Function 接口的实现Function (org.apache.flink.api.common.functions)RichFunction (org.apache.flink.api.common.functions)MapFunction (org.apache.flink.api.common.functions)KeySelector (org.apache.flink.api.java.functions)ReduceFunction (org.apache.flink.
2021-04-05 17:44:38
1017
原创 Flink 流处理中的特殊概念
1. 流处理中的特殊概念Table API和SQL,本质上还是基于关系型表的操作方式;而关系型表、关系代数,以及SQL本身,一般是有界的,更适合批处理的场景。这就导致在进行流处理的过程中,理解会稍微复杂一些,需要引入一些特殊概念。1.1 流处理和关系代数(表,及SQL)的区别可以看到,其实关系代数(主要就是指关系型数据库中的表)和SQL,主要就是针对批处理的,这和流处理有天生的隔阂。1.2 动态表(Dynamic Tables)因为流处理面对的数据,是连续不断的,这和我们熟悉的关系型数据库中保存
2021-04-04 23:20:22
551
原创 IDEA中无法下载jar包,手动下载添加到Maven本地仓库
1. 下载jar包1.1 常用jar包下载地址添加链接描述添加链接描述添加链接描述添加链接描述添加链接描述1.2 下载jar包1)搜索目标jar包2)找到对应的版本并下载3)maven添加jar包命令构建mvn install:install-file -Dfile=“下载后的jar包路径\xxx.jar(到jar包的名称)” -DgroupId=上图中的groupId -DartifactId=上图中的artifactId -Dversion=上图中的version -Dpa
2021-04-01 20:23:51
492
原创 Flink Table API 和 Flink SQL
1. 简单介绍1.1 什么是 Table API 和 Flink SQLFlink本身是批流统一的处理框架,所以Table API和SQL,就是批流统一的上层处理API。目前功能尚未完善,处于活跃的开发阶段。Table API是一套内嵌在Java和Scala语言中的查询API,它允许我们以非常直观的方式,组合来自一些关系运算符的查询(比如select、filter和join)。而对于Flink SQL,就是直接可以在代码中写SQL,来实现一些查询(Query)操作。Flink的SQL支持,基于实现了
2021-03-29 22:32:46
886
原创 Flink状态编程
流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件,并根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出警告。有状态的计算则会基于多个事件输出结果。以下是一些例子。所有类型的窗口。例如,计算过去一小时的平均温度,就是有状态的计算。所有用于复杂事件处理的状态机。例如,若在一分钟内收到两个相差20度以上的温度读数,则发出警告,这是有状态的计算。流与流之间的所有关联操作,以及流与静态表或动态表之间的关联操作,都是有状态的计算。下图展示了无状态流处
2021-03-28 17:16:37
867
原创 Flink ProcessFunction API
Flink提供的转换算子是无法访问事件的时间戳信息和水位线信息的。而这在一些应用场景下,极为重要。例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。基于此,DataStream API提供了一系列的Low-Level转换算子。可以访问时间戳、watermark以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。Process Function用来构建事件驱动的应用以及实现自定义的业务逻辑(使用之前的window函数和转换算子无法实现)。例如,Flink SQL就
2021-03-27 22:50:49
296
原创 Flink转换算子
1. 基本转换操作2.1. mapval streamMap = stream.map { x => x * 2 }2.2 flapMapval streamFlatMap = stream.flatMap{ x => x.split(" ")}2.3. Filterval streamFilter = stream.filter{ x => x == 1}2. 分组操作2.1. KeyByDataStream → KeyedStream
2021-03-27 10:18:01
381
原创 Flink数据源简介
1. 从集合读取数据// 定义样例类,传感器id,时间戳,温度case class SensorReading(id: String, timestamp: Long, temperature: Double)object Sensor { def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment val stream1 = env
2021-03-25 22:36:53
368
转载 Flink入门学习一
1. Flink简介1.1 初识FlinkApache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。1.2 Flink的重要特点参看文章2. 快速上手2.1 搭建maven工程 flink-20212.2 pom文件 <dependencies> <dependency> <groupId>org.a
2021-03-23 22:48:31
299
转载 Hive优化
1. Fetch抓取Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找、字段查找、limit查找等都不走mapreduce
2021-03-23 08:33:09
175
转载 Flink入门学习(二)
1. Time与Window1.1 Time在Flink的流式处理中,会涉及到时间的不同概念,如下图所示:Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入Flink的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是Processing Time。例如,一条
2021-03-18 23:29:04
253
原创 Kafka手动提交offset和幂等性设置(精确一次性消费)
1. 精确一次消费1.2 定义精确一次消费(Exactly-once) 是指消息一定会被处理且只会被处理一次。不多不少就一次处理。如果达不到精确一次消费,可能会达到另外两种情况:至少一次消费(at least once),主要是保证数据不会丢失,但有可能存在数据重复问题。最多一次消费 (at most once),主要是保证数据不会重复,但有可能存在数据丢失问题。如果同时解决了数据丢失和数据重复的问题,那么就实现了精确一次消费的语义了。1.2 问题如何产生数据何时会丢失: 比如实时计算任务
2021-03-10 22:45:54
2058
3
原创 Redis学习
1. Redis简单介绍1.1 Redis是什么Redis是一个开源的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在
2021-03-09 23:31:07
317
原创 SpringBoot启动一个简单的处理请求的服务器
1. 基本结构(1)目录结构:(2)Application对象import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Gmall0105LoggerApplication { public static void main(String[
2021-03-06 09:47:55
304
原创 创建一个SpringBoot模块,IDEA没有识别出来
1. 问题描述使用SpringBoot创建一个模块,IDEA没有识别出来,如下图所示显示的都是灰色:2. 解决方法2.1 选中模块单击右键,选择【Remove Module】2.2 如下图所示找到模块所在目录,选中即可
2021-03-05 22:55:14
2447
3
原创 Linux 常用命令
查看磁盘使用情况df -h查看进程ps : 提供最近进程的快照, 显示当前活跃进程的简要信息。top : 显示linux进程,动态且实时显示系统进程的简要信息; 并提供简单的用户交互。备注:按q键可退出top命令显示界面。常见搭配使用:(1)与grep命令配合查找是否有相应进程存活ps -ef | grep mysql-e:显示全部进程(与-A参数效果相同)-f:按照指定格式显示(2)ps -aux:显示所有包含其他使用者的行程(3) top:显示linux进.
2021-03-03 20:11:56
104
2
原创 SparkContext相关内容
1. 概述SparkContext是Spark主程序的入口。SparkContext用于连接Spark集群、创建RDD、累加器(accumlator)、广播变量(broadcast variables)。一个JVM只能有一个SparkContext。可以看到SparkContext处于DriverProgram核心位置,所有与Cluster、Worker Node交互的操作都需要SparkContext来完成。2. SparkContext相关组件2.1 SparkConfSparkConf为
2021-02-18 21:50:36
356
3
原创 Spark基础
1. Spark 概述1.1 什么是 Spark1、定义Spark是一种基于内存的快速、通用、可扩展的大数据分析引擎。2、历史2009年诞生于加州大学伯克利分校AMPLab,项目采用Scala编写;2010年开源;2013年6月成为Apache孵化项目;2014年2月成为Apache顶级项目。1.2 Spark内置模块Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集(Resilie
2021-02-17 20:38:34
218
6
原创 Scala类的介绍
1. 简单类和无参方法Scala类最简单的形式看上去和Java或C++中很相似:class Counter { private var value = 0 // 必须初始化字段 def incremet() { // 方法默认是公有的 value += 1 } def current() = value}在Scala中,类并不声明为public。Scala源文件可以包含多个类,所有这些类都具有公有可见性。使用该类需要做的就是构造对象并按照通常的
2021-02-10 21:26:22
672
原创 ElasticSearch单机版安装
1. 安装版本CentOS release 6.8 (Final)elasticsearch-6.6.0.tar.gzkibana-6.6.0-linux-x86_64.tar.gz查看SentOS 版本命令:cat /etc/redhat-release2. 解压缩软件包到Linux在这里就不详细说明了。3. 修改配置信息3.1 修改 elasticsearch.yml/home/xh/hadoop/elasticsearch-6.6.0/config/elasticsear
2021-02-08 11:21:59
746
原创 Nginx概念简介
1. 定义Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上,nginx的并发能力确实在同类的网页服务器中变现较好,中国大陆使用nginx网站用户有:百度,京东,新浪网易,淘宝等。既然是反向代理,那什么是正向代理呢?1.1 正向代理正向代理是用户不能直接访问目标服务器而通过访问代理服务器,然后由代理服务器向目标服务器发送请求返回给用户,这样代理服务器代理的是用户的请求。1.2 反向代理用户访问的是一个服务器集群,但用户不需要知道每台
2021-02-05 20:19:48
239
3
原创 Tomcat 输入或不输入端口号访问服务器
1.Tomcat默认端口号是8080此时访问服务器需要加上端口号例如:https://localhost:8080/log?log=jsonjson2.修改Tomcat端口号为8080端口是网络服务器提供www服务的默认端口,如果将端口设置成80后,网址(IP)后面就不用跟端口号了。例如:http://logserver/log?log=jsondddssaa...
2021-02-05 10:58:27
867
原创 以管理员的身份修改hosts文件
一、以管理员身份打开终端二、切盘符至hosts文件所在目录C:\Windows\system32>cd C:\Windows\System32\drivers\etc三、使用notepad打开hosts文件C:\Windows\System32\drivers\etc>notepad hosts四、修改hosts文件并保存文件即可...
2021-02-03 23:06:34
6304
1
原创 SpringBoot添加依赖包时报错Could not transfer artifact XXX from/to central
具体什么原因现在还是不太理解,在网上找找到解决方法:只需在pom文件中加入: <repositories> <repository> <id>maven-ali</id> <url>http://maven.aliyun.com/nexus/content/repositories/central</url> <releases>
2021-02-03 22:18:24
2228
原创 Java面向对象(一)
1 面向对象1.1 类中的成员变量与局部变量类中属性(或成员变量)的声明和使用成员变量 vs 局部变量相同点:1.声明变量的结构:数据类型 变量名=变量值2.先声明,后使用3.都有对应的作用域不同点:1.类中声明的位置不同成员变量:直接在类中声明局部变量:方法的形参,方法的内部,构造器的内部,构造器的形参(数组,类,接口)2.权限修饰符的使用成员变量声明前可以使用权限修饰符,而局部变量不能使用3.针对变量值的说明成员变量可以不手动初始化,系统会自动初始化,而局部变量必
2021-02-03 14:09:04
143
原创 Spark内核解析
1. Spark 内核概述Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制、Spark任务调度机制、Spark内存管理机制、Spark核心功能的运行原理等,熟练掌握Spark内核原理,能够帮助我们更好地完成Spark代码设计,并能够帮助我们准确锁定项目运行过程中出现的问题的症结所在。1.1 Spark核心组件回顾1.1.1 DriverSpark驱动器节点,用于执行Spark任务中的main方法,负责实际代码的执行工作。Driver在Spark作业执行时主要负责:将用
2021-02-02 20:00:37
277
原创 Spark中DStream.foreachRDD()方法的使用
一、简单介绍DStream.foreachRDD()方法实际上是Spark流处理的一个处理及输出RDD的方法。这个方法使我们能够访问底层的DStream对应的RDD进而根据我们需要的逻辑对其进行处理。例如,我们可以通过foreachRDD()方法来访问每一条mini-batch中的数据,然后将它们存入数据库。需要注意的是:DStream.foreachRDD()传给我们的参数是一个RDD[userbatch],而不是单个的user,因此我们需要进一步循环来根据需要处理其中每一个user。我们不能用
2021-02-01 21:30:10
884
原创 updateStateByKey使用详情
一、简单概述简单来说,该算子能够记录流的累计状态。updateStateByKey操作允许我们维护任意状态,同时不断地用新信息更新它。在有新的数据信息进入或更新时,可以让用户保持想要的任何状态。使用这个功能需要完成两步:定义状态: 可以是任意数据类型定义状态更新函数: 用一个函数指定如何使用先前的状态,从输入流中的新值更新状态。对于有状态操作,要不断的把当前和历史的时间切片的RDD累加计算,随着时间的流失,计算的数据规模会变得越来越大;那么要思考的是如果数据量很大的时候,或者对性能的要求极
2021-02-01 11:57:14
1790
原创 IDEA常用快捷键
ctr+I : 自动实现父类或接口的方法ctr+alt+v : 自动命名变量Ctrl+Alt+L : 格式化代码CTRL+Q : 可以看到当前方法的声明alt+enter : 创建方法
2021-01-31 14:33:40
116
原创 IDEA中不能同时启动一个kafka消费者两次
// IDEA弹出'xxx' is not allowed to run in parallel. Would you like to stop the running one?解决方法:12. 允许并行运算
2021-01-17 12:27:38
280
原创 Java基础
1 变量1.1 变量初始化声明一个变量后,必须对变量进行显示初始化 int vactionDays; System.out.println(vactionDays);//Error:(4, 28) java: 可能尚未初始化变量vactionDays变量初始化原则a. 先声明,后赋值 int vactionDays; vactionDays = 1; System.out.println(vactionDays
2021-01-15 23:27:13
383
原创 ClickHouse
第1章 ClickHouse概述1.1 什么是ClickHouseClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。1.2 什么是列式存储参看文章...
2021-01-15 22:34:58
152
原创 Kafka
第1章 Kafka概述1.1定义Kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。1.2 消息队列(Message Queue)1.2.1 传统消息队列的应用场景消息队列主要作用:异步处理、消峰处理、解耦处理1.2.2 消息队列的两种模式(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)消息生产者生产消息发送到Queue中,然后消息消费者从Queue中取出并且消费消息。消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经
2021-01-14 22:49:59
433
原创 python安装第三方库报错
@python1. 安装第三方库是报错pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.解决方法:pip --default-timeout=100 install 库名称 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
2021-01-11 21:11:25
379
原创 Java异常总结
异常概述异常是Java程序在运行过程中出现的错误。常见的异常分类Error:比较严重的问题;Exception:A:编译期问题,不是RuntimeException的异常,Java程序必须显示处理,否则程序就会发生错误,无法通过编译;B:运行期问题(RuntimeException)这种问题出现是代码不够严谨,无需显示处理,也可以和编译时异常一样处理;运行期问题(RuntimeExc...
2021-01-11 21:10:28
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅