- 博客(102)
- 资源 (12)
- 收藏
- 关注
原创 Flink流式处理框架中的Table API和Flink SQL
一、Table API和Flink SQL是什么?1)Flink对批处理和流处理,提供了统一的上层API;2)Table API是一套内嵌在Java和Scala语言中的查询API,它允许以非常直观的方式组合来自一些关系运算符的查询;3)Flink的SQL支持基于实现了SQL标准的Apache Calcite;1、基本程序结构1)Table API和SQL的程序结构,与流式处理的程序结构十分类似2、创建TableEnvironment1)创建表的执行环境,需...
2020-06-20 15:44:52
1106
原创 Flink流式处理框架中的CEP介绍
一、什么是CEP1)复杂事件处理(Complex Event Processing,CEP);2)Flink CEP是在Flink中实现的复杂事件处理(CEP)库;3)CEP允许在无休止的事件流中检测事件模式,让我们有机会掌握数据中重要的部分;4)一个或多个由简单事件构成的事件流通过一定的规则匹配,然后输出用户想得到的数据——满足规则的复杂事件;二、CEP的特点1)目标:从有序的简单事件流中发现一些高阶特征;2)输入:一个或多个由简单事件构成的事件流;3)处理:...
2020-06-18 16:10:43
2323
原创 Flink流式框架的状态一致性
一、状态一致性1)有状态的流处理,内部每个算子任务都可以有自己的状态;2)对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确;3)一条数据不应该丢失,也不应该重复计算;4)在遇到故障时可以恢复状态,恢复以后进行重新计算,结果应该也是完全正确的;1、状态一致性分类(1)AT-MOST-ONCE(最多一次) 》》当任务故障时,最简单的做法就是什么也不干,既不恢复丢失的状态,也不重播丢失的数据,At-most-once语义的含义是最多处理一次事件。..
2020-06-18 10:54:18
530
原创 Flink流式框架的容错机制
一、一致性检查点(checkpoint)1)Flink故障恢复机制的核心,就是应用状态的一致性检查点;2)有状态流应用的一致检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照);这个时间点,应该是所有任务都恰好处理完一个相同的输入数据的时候;二、从检查点恢复状态1)在执行流应用程序期间,Flink会定期保存状态的一致检查点;2)如果发生故障,Flink将会使用最近的检查点来一致恢复应用程序的状态,并重新启动处理流程;1、从检查点恢复状态1)遇到故障.
2020-06-18 09:12:30
232
原创 Flink流式框架的状态管理
一、Flink中的状态1)由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态;2)可以认为状态就是一个本地变量,可以被任务的业务逻辑访问;3)Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑;4)在Flink中,状态始终与特定算子相关联;5)为了使运行时的Flink了解算子的状态,算子需要预先注册其状态;6)总的来说,有两种类型的状态: **** 算子状态(Operator State):...
2020-06-17 21:47:42
427
原创 Flink流式框架中的时间语义和watermark
一、时间(Time)语义1)Event Time:事件创建的时间;2)Ingestion Time:数据进入Flink的时间;3)Processing Time:执行操作算子的本地系统时间,与机器相关;1、哪种时间语义更重要1)不同的时间语义有不同的应用场合;2)我们往往更关心事件时间(Event Time);3)某些应用场合,不应该使用Processing Time4)Event Time可以从日志数据的时间戳(timestamp)中提取 ...
2020-06-17 21:08:38
327
原创 Flink流式计算框架中的窗口函数
一、窗口(window)(1)一般真实的流都是无界的,怎样处理无界的数据?(2)可以把无限的数据流进行切分,得到有限的数据集进行处理——也就是得到有界流;(3)窗口(window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析;二、window类型(1)时间窗口(Time Window):滚动时间窗口,滑动时间窗口,会话窗口;(2)计数窗口(Count Window):滚动计数窗口,滑动计数窗口;1、滚动窗口(Tumb..
2020-06-17 17:02:54
1380
原创 流计算框架Flink的运行架构
一、Flink运行时的组件1、作业管理器(JobManager)1)控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager所控制执行。2)JobManager会先接收到要执行的应用程序,这个应用程序会包括:作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其他资源的JAR包。3)JobManager会把JobGraph转换成一个物理层面的数据流图,这个图被叫做“执行图”(Execution.
2020-06-15 17:10:49
439
原创 流处理框架Flink介绍
一、什么是FlinkApache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams.Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。二、那我们为什么选择Flink呢?1)流数据可以更加真实的反映了我们的生活方式;2)传统的数据架构是基于有限数据集的;.
2020-06-15 15:42:32
726
转载 Hive数据倾斜(调优)解决方案
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如...
2019-10-11 10:20:05
327
转载 MapReduce中的数据倾斜
最近几次被问到关于数据倾斜的问题,这里找了些资料也结合一些自己的理解. 在并行计算中我们总希望分配的每一个task 都能以差不多的粒度来切分并且完成时间相差不大,但是集群中可能硬件不同,应用的类型不同和切分的数据大小不一致总会导致有部分任务极大的拖慢了整个任务的完成时间,硬件不同就不说了,应用的类型不同其中就比如page rank 或者data mining 里面一些计算,它的每条记录...
2019-09-09 16:08:08
301
转载 java值传递与引用传递区别详解
java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题,首先我们必须认识到这个问题一般是相对函数而言的,也就是java中的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法(或函数)的两个专业术语:按值调用(call by value) 按引用调用(call by reference)所谓的按值调用表示方法接收的是调用着提供的值,而按引用调用则表示方法...
2019-08-22 15:01:39
445
转载 Shell中的grep命令详解
简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的...
2019-08-21 16:09:07
1651
原创 Shell中的Sed命令详解
简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。sed...
2019-08-21 15:41:15
985
转载 MapReduce实现倒排索引(Inverted Index)
前言:"倒排索引"是文档检索系统中最常用的数据结构,被广泛地应用于全文搜索引擎。它主要是用来存储某个单词(或词组)在一个文档或一组文档中的存储位置的映射,即提供了一种根据内容来查找文档的方式。由于不是根据文档来确定文档所包含的内容,而是进行相反的操作,因而称为倒排索引(Inverted Index)注意:(1)这里存在两个问题:第一,<key,value>对只能有两个值,在不...
2019-08-13 17:07:08
1427
转载 Spark Streaming中window滑动窗口的应用
Spark Streaming中window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。如官网图例中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过...
2019-07-11 10:27:24
838
转载 Hive中的各种join关系和使用
hive编程是整个数据仓库操作的核心,而各种业务之间的join是hive的核心,所以熟练明白滴掌握hive中的各种join是数据仓库开发工程师必备的技能。hive中的join只支持等值join,也就是说join on中的on里面表之间连接条件只能是=,不能是<,>等符号。此外,on中的等值连接之间只能是and,不能是or. (如果在on 里添加非表之间的条件可以是非等号,下面有演示...
2019-06-21 15:33:53
15938
2
转载 Hive中小表和大表关联(join)的性能分析
经常看到一些Hive优化的建议中说当小表与大表做关联时,把小表写在前面,这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存中,然后大表的每条记录再去内存中检测,最终完成关联查询。这样的原因看似合理,但是仔细推敲,又站不住脚跟。 多小的表算小表?如果所谓的小表在内存中放不下怎么办?我用2个只有几条记录的表做关联查询,这应该算是小表了,在查看reduce的执行日...
2019-06-21 14:28:17
1503
1
转载 Hive中常见的数据倾斜问题的处理
1、什么是数据倾斜? 数据倾斜主要表现在,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条Key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完。2、常见容易出现数据倾斜的...
2019-06-21 11:43:25
9009
转载 Hive日期转换用法
参考网址:https://blog.youkuaiyun.com/lichangzai/article/details/194062151.日期函数UNIX时间戳转日期函数:from_unixtime语法:from_unixtime(bigint unixtime[, stringformat])返回值: string说明: 转化UNIX时间戳(从1970-01-0100:00:00 UTC到指定...
2019-06-18 10:51:49
2661
转载 sklearn.metrics中的评估方法介绍
accuracy_score分类准确率分数是指所有分类正确的百分比。分类准确率这一衡量分类器的标准比较容易理解,但是它不能告诉你响应值的潜在分布,并且它也不能告诉你分类器犯错的类型。形式:sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)normalize:默认值为Tr...
2019-06-05 10:30:34
4027
转载 Hive之序列化与反序列化(SerDe)
序列化与反序列化的作用1,序列化是对象转化为字节序列的过程;2,反序列化是字节码恢复为对象的过程;序列化的作用主要有两个:(1)对象向的持久化;即把对象转换成字节码后保存文件;(2)对象数据的传输;反序列化的主要作用:对<key,value>反序列化成Hive table的每一列的值;Hive可以方便的将数据加载到表中而不需要对数据进行转换,这样在海量数...
2019-05-29 10:33:48
1220
转载 Hive下查看表占用空间大小的方法
一、Hive下查看数据表信息的方法方法1:查看表的字段信息desc table_name;方法2:查看表的字段信息及元数据存储路径desc extended table_name;方法3:查看表的字段信息及元数据存储路径desc formatted table_name;备注:查看表元数据存储路径是,推荐方法3,信息比较清晰。hive> desc parqu...
2019-05-27 17:36:58
7602
转载 Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作
Alter Table 语句Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作它是在Hive中用来修改的表。语法声明接受任意属性,我们希望在一个表中修改以下语法。 ALTER TABLE name RENAME TO new_name ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...]) ...
2019-05-27 17:03:36
2224
转载 Hive外部表和内部表区别以及相互转换
Hive建表语句其中external关键字用来区分内部表和外部表,location指定也可以不指定默认为hive仓库路径内部表内部表默认的路径实在hive默认指定的路径,一般是在hdfs/user/hive/warehouse/database.db/tableA/下,如果删除表会连路径和数据一起删掉外部表相比于内部表外部表建表关键字多了一个external,且后面...
2019-05-27 16:46:59
4583
转载 数据仓库与数据集市的概念区别
1.为什么会出现数据仓库和数据集市? “数据仓库”的概念可以追溯到80 年代中期。从本质上讲,最初数据仓库是想为操作型系统到决策支持环境的数据流提供一种体系结构模型,并尝试解决和这些数据流相关的各种问题。 在缺乏“数据仓库”体系结构的情况下,早期的决策支持环境如图1 所示。企业内部存在许多冗余的、重复建设的决策支持系统(通常是报表系统),这些系统被不同类型的用户使用,数据的抽...
2019-05-27 14:49:08
641
转载 Flink读写系列之-读mysql并写入mysql
在Flink文档中,提供connector读取源数据和把处理结果存储到外部系统中。但是没有提供数据库的connector,如果要读写数据库,官网给出了异步IO(Asynchronous I/O)专门用于访问外部数据,详细可看:https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/operato...
2019-04-29 11:32:10
2975
转载 Hive 时间日期处理总结
获得当前日期的几种用法:1.先来一个比较老的,select unix_timestamp() ;结果如下:2.通过提示可知该用法已经被放弃了建议采用current_timestamp来替代。查结果如下:3.如果当前时间为int类型则需要转义一下比如使用from_unixtime() SELECT from_unixtime(unix_timestamp());...
2019-04-25 16:21:12
7388
转载 Apache Flink-编程指南-概念-编程模型
原文:https://blog.youkuaiyun.com/javajxz008/article/details/83025851数据流编程模型抽象层级 程序和数据流 并行数据流 窗口 事件 状态化计算 为容错的检查点 流之上的批处理 下一步抽象层级Flink为开发流/批处理应用程序提供不能层级的抽象。1》最低级别的抽象简单提供状态化流处理。通过Process Func...
2019-04-22 14:28:08
145
转载 Apache Flink-下载
原文:https://blog.youkuaiyun.com/javajxz008/article/details/83012648下载最新版本(v1.6.1) 二进制 源码 版本信息 验证哈希和签名 Maven依赖 旧版本更新策略 所有文档版本 快照(Nightly Builds)最新稳定版本是1.6.1,hadoop安装不需要使用flink,用户使用flink也不需要...
2019-04-22 11:40:48
1442
转载 Apache Flink-常见问答
原文:https://blog.youkuaiyun.com/javajxz008/article/details/83011164通常以下问题在Flink项目中经常被问到。如果有更多问题,请查询相关文档或在社区中提问。目录:Apache Flink只适用于(准)实时的应用场景吗? 如何一切都是流,为什么Flink中会存在DataStream API和DataSet API? Fli...
2019-04-22 11:34:01
162
转载 Apache Flink-用户场景
原文:https://blog.youkuaiyun.com/javajxz008/article/details/83001946Apache Flink在需要运行各种类型的应用程序方面是个不错的选择,因为其具有丰富的特征集。Flink的特征包含了处理流和批处理,复杂的状态管理,事件时间处理语义和对状态的"正好一次"一致性保证。而且,Flink可以部署在不同的资源管理器之上,如YARN,Apach...
2019-04-22 11:19:46
161
转载 Apache Flink-什么是Apache Flink?
原文:https://blog.youkuaiyun.com/javajxz008/article/details/82986682Apache Flink是一个用于在有界和无界数据之上进行状态计算的分布式处理引擎和框架。其被设计出可以运行在所有常见的集群环境中,在任何规模之上进行内存计算。 下面,让我了解一下Flink架构的一些重要特性。处理有界和无界数据 任何类型数据的都...
2019-04-22 10:55:28
185
转载 linux系统用户下的crontab任务不执行问题处理
原文:http://www.itdaan.com/blog/2013/12/25/622b7ed1fbe69646452bbb56276d3036.html需求:需要每一天对数据库做一个备份,oracle数据库,linux系统。备份命令采用最简单的导出\导入。首先确认服务器是否开启任务计划服务,只有root用户才能对crond服务进行开启和关闭[root@enfo124 ~]# s...
2019-04-16 10:37:05
2019
转载 linux crontab定时执行shell脚本
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:crontab -e 编辑周期任务30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smbcrontab命令说明: crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具...
2019-04-15 15:53:51
3036
转载 Linux中用shell获取昨天、明天或多天前的日期
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年# 获取昨天date -d 'yesterday' # 或 date -d 'last day'# 获取明天date -d 'tomorrow' # 或 date -d 'next day'# 获取上个月date -d 'last month'# 获取下个月date -d 'nex...
2019-04-15 15:51:17
737
原创 二叉树面试知识点
二叉树的数据结构: class TreeNode{ int val; //左孩子 TreeNode left; //右孩子 TreeNode right; } 二叉树的题目普遍可以用递归和迭代的方式求解 1、求二叉树的最大深度 int maxDepth(TreeNode node) ...
2019-04-04 21:14:09
233
原创 MapReduce程序中在reduce端进行join
合并两个表的数据:代码如下所示:RJoin 类实现map函数和reduce函数,并进行数据的整合处理 package com.jym.hadoop.mr.rjoin; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java....
2019-03-25 16:53:37
320
原创 解决MapReduce中出现的Reduce端数据倾斜的问题
数据倾斜的问题其实就是map端输出的数据分发到reduce端不均匀,使得在reduce端有的reducer处理的数据量过大,有的reducer处理的数据量过少,造成数据倾斜于一方。解决方法是在map端进行——》map side join操作代码如下: package com.jym.hadoop.mr.mapsidejoin; import java.io.Buf...
2019-03-25 15:16:13
854
原创 MapReduce实现倒排索引
分为两步进行第一步: package com.jym.hadoop.mr.inverindex; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoo...
2019-03-25 10:54:46
3081
Flume对接Spark Streaming的相关jar包
2018-12-20
Flume_1.6.0——Spark Streaming_2.1XXX
2018-12-20
scala-compiler-2.10.5.jar
2018-12-20
mysql-5.5.48-linux2.6-x86_64.tar.gz
2018-05-12
libaio-0.3.107-10.el6.x86_64.rar
2018-05-10
MySQL-server-and-client-5.5.48-1.linux2.6.x86_64.rar
2018-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人