- 博客(82)
- 资源 (3)
- 收藏
- 关注
原创 奇怪的知识
数据中台是什么?是一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和可实施方法构建的一套持续不断把数据变成资产并服务于业务的机制。http://113.96.62.246:30001/down?name=c04ceca11d9d448eb0d9f6ffb0711f26&token=615ca89bbf0c4a080008c6dce7c3479a&am...
2022-03-11 14:33:27 2058
原创 Scala 语法——self =>
第一种指代thisclass A(name:String){ self=> def printName()={ print(self.name) }}第二种指代this,但是申明类型此时 self不单指代this,而且表示此类的实例依赖于申明的类型简单来说就是变相继承了B的意思trail B { printB()}class A(name:String){ self: B => def printName()={ print(self.name) }.
2021-07-16 16:09:24 433
原创 Spark 中join一定产生shuffle吗?
产生shuffle的原因其根本原因在于数据需要进行迁移才能产出正确的数据join什么时候不需要数据迁移就能得出结果?当 分区数 和 分区器 是一样的时候也就是在本地就能完成相关join的操作所以不需要数据迁移也就可以不产生shuffle结论不一定产生shuffle。...
2021-04-22 17:36:00 876
原创 Kafka 保证分区有序
Kafka能做到全局有序吗?Kafka只能保证分区有序,如果只有一个分区,那也是变向的全局有序Kafka如何保证分区有序通过配置 max.in.flight.requests.per.connection = 1这个配置是 生产者 往 服务度 发送数据的请求数,配置为1,则一次只能发送1个请求,如果失败继续重试,知道成功,才会进行下一个请求的发送,这样就保证了消息的有序性,...
2021-01-20 18:03:47 1591
原创 Kafka 水位详解
什么是水位kafka中用水位来描述,一个分区中的可见数据的offset。大概你需要知道这几点:hw(水位)你可以理解成是一个全局(所有副本最小offset)的offset,针对的是一个分区LEO代表着该副本的所有消息的最大offset,针对的是一个副本,也就是每个副本都有LEO,并且不一样。其中所有副本中最小的LEO就是水位水位为什么要水位?为了保障数据的一致...
2021-01-20 15:37:28 2624
原创 Flink WaterMaker详解
什么是 WaterMakerWaterMaker 水位线在很多地方都有应用,其含义也不尽相同,在Flink中,水位线是用来触发窗口计算的其本质相当于一个flink流中的一个 带时间戳的Event,Flink在处理这个特殊 Event 的时候,会认为该 Event携带的时间戳之前时间的所有数据都已经到了。因此根据这个特性会触发相关窗口的计算逻辑。WaterMaker有什么用主要就...
2020-11-25 18:09:23 1638 1
原创 Flink系列——感性认识
前言可以当做一个初步认识 Flink 的文章,仅此而已!!!!!我们以一个生产口罩的工厂为例来尝试理解一下Flink的整个计算流程工厂的老板 VS JobManager老板都是复制整个工厂的整体把控的,一般不亲自动手,只需要管好 工厂的车间组长 就可以了。JobManager 则是负责整个集群的资源管理与任务管理,当然他不需要亲自管理,一般都是交给 TaskManager。工厂...
2020-07-23 14:29:10 150
原创 SparkSQL技巧——如何识别SQL语句 和 执行一个SQL文件
前言这是一个非常小的技巧,但是应该还是有点用。怎么在SparkSQL中写SQL?如果我们直接使用,那么大概是如下这样:ss.sql("select * from xxxx")这种直接写的方式当然是非常简单,但是如果SQL很复杂的话,那么就不太好控制了,可读性也非常差通过IDEA注入语言特性通过如下方式,我们可以将SQL语言注入SQL的特性image.png...
2020-07-13 19:16:06 4398 9
原创 SparkStreaming On Kafka —— Offset 管理
一、Kafka 消费者如何管理 offset我之前有写一篇kafka Consumer — offset的控制如果你对于这方面的知识还不太清楚,建议你去看一下,毕竟理解了Kafka的消费者,你才能更好的使用SparkStreaming结合Kafka。二、Spark Streaming On Kafka 如何管理 offset1. 自动提交1.1 使用这个没什么好讲...
2020-03-23 10:10:25 194
原创 Redis 事务
原理为了确保连续多个操作的原子性,一个成熟的数据库通常都会有事务支持,Redis 也不例外。Redis 的事务使用非常简单,不同于关系数据库,我们无须理解那么多复杂的事务模型,就可以直接使用。不过也正是因为这种简单性,它的事务模型很不严格,这要求我们不能像使用关系数据库的事务一样来使用 Redis。Redis 事务的基本使用每个事务的操作都有 begin、c...
2020-03-09 16:57:58 119
原创 Redis Pipeline原理
原理大多数同学一直以来对 Redis 管道有一个误解,他们以为这是 Redis 服务器提供的一种特别的技术,有了这种技术就可以加速 Redis 的存取效率。但是实际上 Redis 管道 (Pipeline) 本身并不是 Redis 服务器直接提供的技术,这个技术本质上是由客户端提供的,跟服务器没有什么直接的关系。下面我们对这块做一个深入探究。Redis 的消息交互...
2020-03-09 16:32:02 3093 1
原创 Redis的应用
分布式锁setnx lock:lock1 truelock:lock1:通过 锁的前缀lock,和锁的名字 lock1 组合成keysetnx:如果不存在就设置 lock:lock1 为true,否则就返回失败,这里如果设置成功,则是抢占到锁。这种设置会有一点问题,抢占到锁的程序必须要在处理完任务后释放锁,但是如果这个程序崩溃了,导致没有及时释放锁...
2020-03-06 17:28:33 110
原创 Crontab 设置的时间有时区差
问题描述crontab中设置每天12:00启动任务,结果发现每天20:00才启动。问题分析明显是时区不一致造成的,所以需要从时区设置入手解决方案查看并修改 本地时区查看more /etc/localtime备份:cp /etc/localtime /etc/localtime.bak设置本地时区设置本地时区为 Shanghaicp -pf /usr/...
2020-03-04 10:51:58 5168
原创 排序算法——动图版本
声明:本文来自马士兵教育 请勿转载排序算法1、基本介绍 排序算法比较基础,但是设计到很多计算机科学的想法,如下: 1、比较和非比较的策略 2、迭代和递归的实现 3、分而治之思想 4、最佳、最差、平均情况时间复杂度分析 5、随机算法2、排序算法...
2020-03-04 09:14:30 139
原创 大数据OLAP框架对比
大数据OLAP常用的技术大规模并行处理:可以通过增加机器的方式来扩容处理速度,在相同的时间里处理更多的数据。列式存储:通过按列存储提高单位时间里数据的I/O吞吐率,还能跳过不需要访问的列。索引:利用索引配合查询条件,可以迅速跳过不符合条件的数据块,仅扫描需要扫描的数据内容。压缩:压缩数据然后存储,使得存储的密度更高,在有限的I/O速率下,在单位时间里读...
2020-03-03 11:07:38 3014
原创 HBase之 数据刷写 (Memstore Flush) 详细说明
本文转载自过往记忆(https://www.iteblog.com/)链接: 【HBase 入门之数据刷写(Memstore Flush)详细说明】(https://www.iteblog.com/archives/2497.html)并由本人对文章格式略做调整接触过 HBase 的同学应该对 HBase 写数据的过程比较熟悉(不熟悉也没关系)。HBase 写数据(比如 p...
2020-02-27 11:44:06 3543 2
原创 架构杂记
为什么要重新设计架构部分节点存在隐患,比如数据传输节点 Dumper,已属于无法维护的状态部分节点冗余,存在资源浪费。集群机器不够统一,容易出现一些不可预料的问题集群环境太过老旧,享受不到技术进步带来的优势一些业务分析已经达到瓶颈,无法进一步扩展数据太多,磁盘容量不够维度分析太多,计算量无法支持计算资源紧张等架构分层数据收集不丢数据高可用方...
2020-02-24 10:59:59 163
原创 Redis 持久化方式——RDB
RDBRDB是什么?Redis持久化数据的两种方式之一,另外一种是AOF。Redis会定期保存数据快照至一个rbd文件中,并在启动时自动加载rdb文件,恢复之前保存的数据。RDB 触发时机手动触发可以通过SAVE或者BGSAVE进行RDB备份SAVE直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不...
2020-01-16 11:35:38 167
原创 Spark源码 —— 从 SparkSubmit 到 Driver启动
前言本文主要是以笔记的整理方式写的,仅以分享的方式供你阅读,如有不对的地方欢迎指点错误。读完本文可以学到:当你用 shell 命令执行 spark-submit 之后,到你的代码开始正式运行的一些列知识和细节,恩...粗略的,要看的更细,可以按照流程自己撸源码哈~~~~SparkSubmitSpark-Submit脚本执行后,会执行到org.apache.sp...
2020-01-06 16:25:15 256
原创 Spark系列——从 cartesian 带你看点不一样的 Shuffle
前言这只是一个人随意的一些分享,你大概可以放宽心的当休闲的东西来看,看完你大概也许会对Spark会有一些不一样的想法。正文----一路飙,没有标题,因为是随心写的cartesian算子 - 笛卡尔积cartesian的工作机制大概如下图(该图来自https://www.jianshu.com/p/c62d5d27f4ed)多的应该就不需要说了吧?car...
2019-12-31 18:10:50 549
原创 程序员看过来~~~中文编程了~~~
今天发现了一个比较有意思的东西,看下图:image.png竟然是文言文编程,可以转换为js代码...我就想知道~~~各位大佬觉的文言文好,还是English编程好~~~项目地址:文言文编程 wenyan-lang ...
2019-12-20 09:42:33 199
原创 Spark VS MapReduce 浅谈
计算速度计算的速度是取决于计算机本身的计算能力的。并且目前来看,所有的计算机计算都是基于内存的(如果有不是的,请原谅我的孤陋寡闻...),也就是说 MR 和 Spark 是没有区别的。Shuffle我们都知道,不管是Spark 还是 MR,其理论依据都是 一篇名为 MapReduce 的论文那么对于 Map 和 Reduce 两个阶段,其都是会产生 Shuffle 的...
2019-12-19 15:55:25 379
原创 kafka Consumer — offset的控制
前言在N久之前,曾写过kafka 生产者使用详解,今天补上关于 offset 相关的内容。那么本文主要涉及:Kafka 消费者的两个大版本消费者的基本使用流程重点:offset 的控制消費者版本开源之初使用Scala 语言编写的客户端,我们可以称之为旧消费者客户端(Old Consumer)或 Scala 消费者客户端;第二个是从Kafka 0.9. x...
2019-12-10 17:50:13 394
原创 Apache Spark 3.0 预览版正式发布,多项重大功能发布
原文地址 2019年11月08日 数砖的 Xingbo Jiang 大佬给社区发了一封邮件, 宣布 Apache Spark 3.0 预览版正式发布, 这个版本主要是为了对即将发布的 Apache Spark 3.0 版本进行大规模社区测试。 无论是从 API 还是从功能上来说,这个预览...
2019-12-10 11:40:23 121
原创 Kafka ——如何保证消息不会丢失
前言Kafka 提供了数据高可靠的特性,但是如果使用不当,你可能无法享受到这一特性,今天我们就来看看如何正确的使用Kafka 保证数据的不会丢失吧!生产者的正确的消息发送方式Kafka为生产者生产消息提供了一个 send(msg) 方法,另有一个重载的方法send(msg, callback),send(msg)该方法可以将一条消息发送出去,但是对发送出去的...
2019-11-25 13:59:00 304
原创 Hive 修复分区 MSCK REPAIR TABLE
转载自:润土1030MSCK REPAIR TABLE 命令是做啥的MSCK REPAIR TABLE命令主要是用来:解决通过hdfs dfs -put或者hdfs api写入hive分区表的数据在hive中无法被查询到的问题。我们知道hive有个服务叫metastore,这个服务主要是存储一些元数据信息,比如数据库名,表名或者表的分区等等信息。如果不是通过hive的...
2019-11-07 16:54:48 11875
原创 Hive 多分组函数GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
转载自: lxw的大数据田地前言GROUPING SETS,GROUPING__ID,CUBE,ROLLUP这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时、天、月的UV数。Hive版本为 apache-hive-0.13.1数据准备:2015-03,2015-03-10,cookie12015-03,201...
2019-11-07 16:46:00 483
原创 Spark随笔 —— RDD 与 DataSet
前言本篇文章进对 RDD 和 DataSet 进行对比和总结。当然因为随笔,所以想到哪写到哪...哎~,最近变懒了,都不想动脑子了!!!RDD 和 DataSet 有什么关系?随着 Spark 版本的不断迭代,已经在慢慢弱化 RDD的概念,但是其实作为一个Spark 开发的程序员,RDD却是你绝对绕不过去的一个知识点,而 DataSet 某种意义上来说其实是 RD...
2019-10-24 16:49:33 341
原创 Spark系列——Spark On Yarn 资源申请流程
Spark On Yarn 资源申请流程Client 模式因为是Client模式,所以当我们 Spark-Submit 提交Spark任务的时候,会直接走到我们的main方法,进行Spark Context 的初始化。Spark Context 初始化的时候会生成两个比较重要的对象DAGSchedule 和 TaskSchedule,TaskSchedule 会进行...
2019-10-21 17:21:51 779
原创 Spark总结篇(一)
这是一篇是划水的。。。。随便看看就好!!!!Spark特点以下特点来源官网主页,仅做翻译Speed(快)Apache Spark achieves high performance for both batch and streaming data,实现了在批处理 和 流处理 的高速数据处理,using a state-of-the-art DAG scheduler...
2019-10-17 15:16:55 306
原创 Spark系列——关于 mapPartitions的误区
前言今天 Review 了一下同事的代码,发现其代码中有非常多的 mapPartitions,问其原因,他说性能比 map 更好。我说为什么性能好呢?于是就有了这篇文章网上推崇 mapPartitions 的原因执行次数变少,速度更快按照某些文章的原话来说一次函数调用会处理一个partition所有的数据,而不是一次函数调用处理一条,性能相对来说会高一些。...
2019-09-25 18:21:46 1662 12
原创 Scala 隐式转换简明教程
前言对于 Spark 开发者来说 Scala 终究是个绕不过去的坎,而 对于 Scala ,隐式转换终究也是一个绕不过去的坎。所以本文就以一种尽可能简单的方式带大家来理解一下 Scala 的隐式转换。Scala隐式转换 是什么?隐式转换这里我没有找到具体的定义,这里我们就用大白话来说一下,如果我们想让一台汽车具有挖土机的功能,那么我们需要给这个汽车装上一个挖机...
2019-09-24 11:11:47 171 1
原创 Kafka 为什么快?
前言本文只想从作者本身的认识来谈谈 kafka 为什么会这么快?我们都知道 kafka 是基于磁盘的,但是他的存储和读取速度确是非常的快的。阅读本文前,你可能需要基本了解 kafka 使用 和 架构。为什么快?我们可以从以下几个角度来分析以下:磁盘的读写速度数据检索零拷贝传统的文件读取过程当我们将服务器的磁盘文件 读取 发送到 客户端,传统的过程大概是...
2019-09-19 16:26:19 217
原创 Kafka 关于压缩的一点经验
前言就压缩而言,对于数据储存应该是一个比较大的优化,而 Kafka 自然也是支持这种特性的,但是这里可能会有那么一点坑。我们主要从:何时产生压缩?何时会解压缩?两个方面来说,并针对一些可能出现的坑做一些说明。何时产生压缩生产者为了数据在传输到 Kafka 可以更快,那么在生产者启动压缩自然是很正常的。Broker端Broker 主要是负责储存数据,...
2019-09-19 16:26:09 2042
原创 Kafka 重平衡 全流程解析
前言本文来自 极客时间 Kafka核心技术与实战这段时间有看 极客时间的这个课程,这里仅以分享的角度来做个笔记。那么本文将涉及到以下几个知识点:重平衡是什么?为什么要了解他?发生重平衡的时机Kafka的心跳机制 与 Rebalance消费者组状态切换重平衡全流程解析重平衡是什么?为什么要了解他?重平衡是什么Rebalance(重平衡 )本质上是一种协...
2019-09-19 16:25:47 3457 4
原创 发现一个不错的机器学习博客
前言今天看了下 慕课网的 Python3入门机器学习 课程....然后发现了一个不错的学习博客....这里仅做小小的举手之劳——分享一下慕课网的 Python3入门机器学习 之我见适合新手入门讲解思路清晰教学风格爽快...没有多余的废话...全程都是干货....老师个人实力也比较强...而且难得的是教学功力也相当不错...非常推荐有想...
2019-08-21 12:27:00 146
原创 Python版 IMEI 验证
验证规则1.区分imei的奇数位和偶数位。2.奇数位相加。3.偶数为乘以2,若小于10则直接相加,大于10则对十位数和个位数进行相加。4.奇数位相加之和与第3步逻辑只和相加,获取到一个数字。5.得到的数字与10进行取余,余数若为0,则验证位数字为0,若余数不为0,则验证位为(10-余数)。python 代码这里就不啰嗦了 ,代码如下:def...
2019-08-09 17:13:00 2094
原创 Spark系列 —— 算子详解(二)
前言本文接上一篇 Spark系列 —— 各类算子详解(一)这篇主要来讲讲 Action 算子 以及 Cache 算子。Action 算子Spark 的执行算子,一个 Action算子 会触发一次 job 的生成。这里需要注意的是,Action 算子要么没有返回值,如果有返回值,那么这个值是会被拉取到driver端的,如果数据过大,你就得考...
2019-07-31 11:54:00 153
原创 Spark系列 —— 各类算子详解(一)
前言本文主要是一篇总结性文章,将列举绝大部分的 Spark 算子以及其常用场景Transformation 算子该类算子属于 Spark 转换类算子,不会立即执行,其需要 Action 算子 来触发,才能正在执行。map(func)Return a new distributed dataset formed by passing eac...
2019-07-29 18:29:00 432
原创 程序员数学 —— 二进制
前言常年浪迹与各种高级语言的我们,是否还记得哪些基础中的基础呢?今天就让我们一起来回忆一下计算机的那一串 0101010101 —— 二进制 吧!通过本文,你将了解到以下几点:什么是进制,以及 进制之间 的转换计算机为什么要用二进制了解位运算,以及 逻辑运算 和 算术运算的 区别什么是进制?十进制十进制 是以 0-9 为基础数字系统...
2019-07-23 18:03:00 688
Greedao 数据库升级类
2017-02-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人