![](https://img-blog.csdnimg.cn/20190730140546345.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
大数据
文章平均质量分 85
分享关于大数据相关的知识,以及数据挖掘,机器学习算法,scala语言程序设计相关内容。
zzzzMing
这个作者很懒,什么都没留下…
展开
-
kafka 异步双活方案 mirror maker2 深度解析
mirror maker2背景通常情况下,我们都是使用一套kafka集群处理业务。但有些情况需要使用另一套kafka集群来进行数据同步和备份。在kafka早先版本的时候,kafka针对这种场景就有推出一个叫mirror maker的工具(mirror maker1,以下mm1即代表mirror maker1),用来同步两个kafka集群的数据。最开始版本的mirror maker本质上就是一个消费者 + 生产者的程序。但它有诸多诸多不足,包括目标集群的Topic使用默认配置创建,但通常需要手动rep原创 2021-01-12 21:01:06 · 2273 阅读 · 0 评论 -
什么,kafka能够从follower副本读数据了 —kafka新功能介绍
最近看了kafka2.4新版本的一些功能特性,不得不说,在kafka2.0以后,kafka自身就比较少推出一些新的feature了,基本都是一些修修补补的东西。倒是kafka connect和kafka stream相关的开发工作做的比较多。可能kafka的野心也不局限于要当一个中间件,而是要实现一个流处理系统的生态了。这次要介绍的是我觉得比较有意思的两个特性,一个是kafka支持从follower副本读取数据,当然这个功能并不是为了提供读取性能,后面再详细介绍。另一个则是新推出的sticky parti原创 2020-12-02 20:32:19 · 960 阅读 · 0 评论 -
Hive使用Calcite CBO优化流程及SQL优化实战
文章目录Hive SQL执行流程Hive debug简单介绍Hive SQL执行流程Hive 使用Calcite优化Hive Calcite优化流程Hive Calcite使用细则Hive向Calcite提供元数据上一篇主要对Calcite的背景,技术特点,SQL的RBO和CBO等做了一个初步的介绍。深入浅出Calcite与SQL CBO(Cost-Based Optimizer)优化这一篇会从Hive入手,介绍Hive如何使用Calcite来优化自己的SQL,主要从源码的角度进行介绍。文末附有一篇其他原创 2020-09-22 19:32:40 · 1258 阅读 · 0 评论 -
docker,容器,编排,和基于容器的系统设计模式
文章目录从容器说起背景docker实现原理编排之争基于容器的分布式系统设计之道单节点协作模式Sidecar pattern(边车模式)Ambassador pattern(外交官模式)Adapter pattern(适配器模式)多节点协作模式都2020年了,容器,或者说docker容器这个概念,从事互联网行业的开发者应该都不会感到陌生。无论大厂还是小厂的应用部署现在都首选docker容器。但是docker虽好,却并非万能。docker本身,其实仅仅是提供了一种沙盒的机制,对不同应用进行隔离。镜像是它出彩原创 2020-08-10 20:50:17 · 473 阅读 · 0 评论 -
kylin streaming原理介绍与特点浅析
文章目录前言kylin streaming设计和原理架构介绍streaming coordinatorstreaming receiver clusterkylin streaming数据构建流程kylin streaming查询流程kylin streaming实现细节kylin streaming segment存储实现重平衡/重分配故障恢复kylin streaming优化总结前言最近搭了Kylin Streaming并初步测试了下,觉得这个东西虽然有些限制,但还是蛮好用的,所以系统写篇文章总结下原创 2020-07-27 21:19:50 · 337 阅读 · 0 评论 -
大数据相关资料论文小结
前言不知不觉,2020年已经过去一半了,最近突然反应过来自己也看了不少文献资料了,就想着把看过的文献和觉得比较好的书籍做一个总结,基本都是大数据分布式领域的,回顾自己学识的同时,也给想从事或这个领域的小伙伴一些参考 ????。最后顺便把接下来要看的东西列个列表,也会将自己学习的心得和经验分享出来,有需要的童鞋可以参考参考。另外有些文献看完我会进行整理和输出,这部分链接我一并附在文献的介绍后面,后面看的书或是文献也会保持这种习惯,如果觉得有兴趣欢迎各位大佬交流,顺便也可以点波关注~~论文总结MapRe原创 2020-07-16 19:32:57 · 2320 阅读 · 0 评论 -
AnalyticDB实现和特点浅析
文章目录AnalyticDB介绍与背景AnalyticDB详细解析架构设计数据分区读写分离和读写流程其他特性介绍混合(列-行)存储引擎索引小结本篇主要是根据AnalyticDB的论文,来讨论AnalyticDB出现的背景,各个模块的设计,一些特性的解析。可能还会在一些点上还会穿插一些与当前业界开源实现的比对,希望能够有一个更加深入的探讨。OK,那我们开始吧。AnalyticDB介绍与背景要说AnalyticDB,那起码得知道它是干什么的。这里直接贴下百度百科的介绍:AnalyticDB是阿里云自主原创 2020-07-01 20:08:16 · 4683 阅读 · 3 评论 -
Spark SQL源码解析(五)SparkPlan准备和执行阶段
Spark SQL原理解析前言:Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述Spark SQL源码解析(二)Antlr4解析Sql并生成树Spark SQL源码解析(三)Analysis阶段分析Spark SQL源码解析(四)Optimization和Physical Planning阶段解析SparkPlan准备阶段介绍前面经过千辛万苦,终于生成可实际执行的SparkPlan(即PhysicalPlan)。但在真正执行前,还需要做一些准备工作,包括在必要的地方插入一些原创 2020-05-27 18:44:36 · 568 阅读 · 0 评论 -
Spark SQL源码解析(四)Optimization和Physical Planning阶段解析
Spark SQL原理解析前言:Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述Spark SQL源码解析(二)Antlr4解析Sql并生成树Spark SQL源码解析(三)Analysis阶段分析前面已经介绍了SQL parse,将一条SQL语句使用antlr4解析成语法树并使用访问者模式生成Unresolved LogicalPlan,然后是Analysis阶段将Unresolved LogicalPlan转换成Resolved LogicalPlan。这一篇我们介绍Opt原创 2020-05-14 08:05:18 · 322 阅读 · 0 评论 -
Spark SQL源码解析(二)Antlr4解析Sql并生成树
Spark SQL原理解析前言:Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述这一次要开始真正介绍Spark解析SQL的流程,首先是从Sql Parse阶段开始,简单点说,这个阶段就是使用Antlr4,将一条Sql语句解析成语法树。可能有童鞋没接触过antlr4这个内容,推荐看看《antlr4权威指南》前四章,看完起码知道antlr4能干嘛。我这里就不多介绍了。这篇...原创 2020-04-23 20:02:57 · 2511 阅读 · 1 评论 -
Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述
Spark SQL模块,主要就是处理跟SQL解析相关的一些内容,说得更通俗点就是怎么把一个SQL语句解析成Dataframe或者说RDD的任务。以Spark 2.4.3为例,Spark SQL这个大模块分为三个子模块,如下图所示其中Catalyst可以说是Spark内部专门用来解析SQL的一个框架,在Hive中类似的框架是Calcite(将SQL解析成MapReduce任务)。Catalyst...原创 2020-04-21 20:51:41 · 335 阅读 · 1 评论 -
详细解析kafka之 kafka消费者组与重平衡机制
消费组组(Consumer group)可以说是kafka很有亮点的一个设计。传统的消息引擎处理模型主要有两种,队列模型,和发布-订阅模型。队列模型:早期消息处理引擎就是按照队列模型设计的,所谓队列模型,跟队列数据结构类似,生产者产生消息,就是入队,消费者接收消息就是出队,并删除队列中数据,消息只能被消费一次。但这种模型有一个问题,那就是只能由一个消费者消费,无法直接让多个消费者消费数据。基于...原创 2020-04-08 21:35:22 · 1692 阅读 · 0 评论 -
kafka实现无消息丢失与精确一次语义(exactly once)处理
在很多的流处理框架的介绍中,都会说kafka是一个可靠的数据源,并且推荐使用Kafka当作数据源来进行使用。这是因为与其他消息引擎系统相比,kafka提供了可靠的数据保存及备份机制。并且通过消费者位移这一概念,可以让消费者在因某些原因宕机而重启后,可以轻易得回到宕机前的位置。但其实kafka的可靠性也只能说是相对的,在整条数据链条中,总有可以让数据出现丢失的情况,今天就来讨论如何避免kafka数...原创 2020-03-16 18:12:56 · 539 阅读 · 0 评论 -
分布式系统一致性问题与Raft算法(下)
上一篇讲述了什么是分布式一致性问题,以及它难在哪里,liveness和satefy问题,和FLP impossibility定理。有兴趣的童鞋可以看看分布式系统一致性问题与Raft算法(上)。这一节主要介绍raft算法是如何解决分布式系统中一致性问题的。说起raft大家可能比较陌生,但zookeeper应该都比较熟悉了,zookeeper的ZAB协议可以说和raft算法是非常相似的。再PS:本...原创 2020-03-04 20:25:27 · 329 阅读 · 0 评论 -
通俗地说决策树算法(二)实例解析
前情提要:通俗地说决策树算法(一)基础概念介绍一. 概述上一节,我们介绍了决策树的一些基本概念,包括树的基本知识以及信息熵的相关内容,那么这次,我们就通过一个例子,来具体展示决策树的工作原理,以及信息熵在其中承担的角色。有一点得先说一下,决策树在优化过程中,有3个经典的算法,分别是ID3,C4.5,和CART。后面的算法都是基于前面算法的一些不足进行改进的,我们这次就先讲ID3算法,后面会...原创 2019-07-30 09:44:29 · 637 阅读 · 0 评论 -
通俗地说决策树算法(一)基础概念介绍
决策树算是比较常见的数据挖掘算法了,最近也想写点算法的东西,就先写个决策树吧。一. 什么是决策树决策树是什么,我们来“决策树”这个词进行分词,那么就会是决策/树。大家不妨思考一下,重点是决策还是树呢?其实啊,决策树的关键点在树上。我们平时写代码的那一串一串的If Else其实就是决策树的思想了。看下面的图是不是觉得很熟悉呢?当然决策树算法比这复杂那么一丢丢,所以在说决策树之前,我们需要先...原创 2019-07-30 09:44:02 · 367 阅读 · 0 评论 -
深入浅出KNN算法(二) 实践篇
姊妹篇:深入浅出KNN算法(一) 原理介绍上次介绍了KNN的基本原理,以及KNN的几个窍门,这次就来用sklearn实践一下KNN算法。一.SkelarnKNN参数概述要使用sklearnKNN算法进行分类,我们需要先了解sklearnKNN算法的一些基本参数,那么这节就先介绍这些内容吧。def KNeighborsClassifier(n_neighbors = 5, ...原创 2019-04-10 18:19:17 · 559 阅读 · 0 评论 -
深入浅出KNN算法(一) 介绍篇
一.KNN算法概述KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一,注意KNN算法是有监督学习中的分类算法,它看起来和另一个机器学习算法Kmeans有点像(Kmeans是无监督学习算法),但却是有本质区别的。那么什么是KNN算法呢,接下来我们就来介绍介绍吧。二.KNN算法介绍KNN的全称是K Nearest Neighbors,意思是K个最近的邻居,从这个名字我们就能看出...原创 2019-04-03 18:59:33 · 1091 阅读 · 0 评论 -
贝叶斯分类算法实例 --根据姓名推测男女
一.从贝叶斯公式开始贝叶斯分类其实是利用用贝叶斯公式,算出每种情况下发生的概率,再取概率较大的一个分类作为结果。我们先来看看贝叶斯公式:P(A|B) = P(B|A) P(A) / P(B)其中P(A|B)是指在事件B发生的情况下事件A发生的概率。在贝叶斯定理中,每个名词都有约定俗成的名称:P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。P(A)是...原创 2018-11-29 20:22:20 · 2455 阅读 · 1 评论 -
python Kmeans算法解析
一. 概述首先需要先介绍一下无监督学习,所谓无监督学习,就是训练样本中的标记信息是位置的,目标是通过对无标记训练样本的学习来揭示数据的内在性质以及规律。通俗得说,就是根据数据的一些内在性质,找出其内在的规律。而这一类算法,应用最为广泛的就是“聚类”。聚类算法可以对数据进行数据归约,即在尽可能保证数据完整的前提下,减少数据的量级,以便后续处理。也可以对聚类数据结果直接应用或分析。而Kmeans...原创 2018-11-05 21:52:00 · 2528 阅读 · 1 评论 -
Spark RPC 框架源码分析(三)Spark 心跳机制分析
一. Spark 心跳概述前面两节中介绍了 Spark RPC 的基本知识,以及深入剖析了 Spark RPC 中一些源码的实现流程。具体可以看这里:Spark RPC 框架源码分析(二)运行时序Spark RPC 框架源码分析(一)简述这一节我们来看看一个 Spark RPC 中的运用实例 – Spark 的心跳机制。这次主要还是从代码的角度来看。我们首先要知道 Spark 的...原创 2019-01-17 20:42:47 · 610 阅读 · 2 评论 -
Spark RPC 框架源码分析(二)运行时序
前情提要:Spark RPC 框架源码分析(一)简述一. Spark RPC 概述概述上一篇我们已经说明了 Spark RPC 框架的一个简单例子,以及一些基本概念的说明。这一篇我们主要讲述其运行时序,从而揭露 Spark RPC 框架的运行原理。我们将分为两部分,分别从服务端和客户端来看。所用 spark 版本:spark 2.1.0二. Spark RPC 服务端我们以上一篇 ...原创 2019-01-14 21:37:20 · 383 阅读 · 0 评论 -
Spark 的“血液” --Spark RPC(一)简述
一. Spark rpc概述首先说明RPC,引用百度百科:RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。Spark RPC可以说 是 Spark 分布式集群的基础,若是将 Spark 类比为一个人的话,Spark R...原创 2019-01-09 20:56:32 · 305 阅读 · 0 评论 -
Spark 读取 Hbase 优化 --手动划分 region 提高并行数
一. Hbase 的 region我们先简单介绍下 Hbase 的 架构和 region :从物理集群的角度看,Hbase 集群中,由一个 Hmaster 管理多个 HRegionServer,其中每个 HRegionServer 都对应一台物理机器,一台 HRegionServer 服务器上又可以有多个 Hregion(以下简称 region)。要读取一个数据的时候,首先要先找到存放这个数...原创 2018-12-15 11:32:06 · 613 阅读 · 0 评论 -
Spark SQL,如何将 DataFrame 转为 json 格式
今天主要介绍一下如何将 Spark dataframe 的数据转成 json 数据。用到的是 scala 提供的 json 处理的 api。用过 Spark SQL 应该知道,Spark dataframe 本身有提供一个 api 可以供我们将数据转成一个 JsonArray,我们可以在 spark-shell 里头举个栗子来看一下。import org.apache.spark.sql.Sp...原创 2018-12-06 20:09:23 · 1441 阅读 · 2 评论 -
从分治算法到 MapReduce
从分治算法说起要说 MapReduce 就不得不说分治算法,而分治算法其实说白了,就是四个字 分而治之 。其实就是将一个复杂的问题分解成多组相同或类似的子问题,对这些子问题再分,然后再分。直到最后的子问题可以简单得求解。要具体介绍分治算法,那就不得不说一个很经典的排序算法 – 归并排序。这里不说它的具体算法代码,只说明它的主要思想。而归并排序的思想正是分治思想。归并排序采用递归的方式,每次都...原创 2018-11-23 18:31:22 · 357 阅读 · 0 评论 -
Spark DataFrame 的 groupBy vs groupByKey
在使用 Spark SQL 的过程中,经常会用到 groupBy 这个函数进行一些统计工作。但是会发现除了 groupBy 外,还有一个 groupByKey(**注意RDD 也有一个 groupByKey,而这里的 groupByKey 是 DataFrame 的 **) 。这个 groupByKey 引起了我的好奇,那我们就到源码里面一探究竟吧。所用 spark 版本:spark 2.1.0...原创 2018-11-04 16:29:16 · 7758 阅读 · 0 评论 -
spark RDD,reduceByKey vs groupByKey
Spark 中有两个类似的api,分别是 reduceByKey 和 groupByKey 。这两个的功能类似,但底层实现却有些不同,那么为什么要这样设计呢?我们来从源码的角度分析一下。先看两者的调用顺序(都是使用默认的Partitioner,即defaultPartitioner)所用 spark 版本:spark 2.1.0先看reduceByKeyStep1 def redu...原创 2018-10-28 21:57:44 · 161 阅读 · 0 评论 -
Scala函数式编程指南(一) 函数式思想介绍
为什么我们需要学习函数式编程?或者说函数式编程有什么优势?这个系列中我会用 scala 给你讲述函数式编程中的优势,以及一些函数式的哲学。不懂 scala 也没关系,scala 和 java 是类似的,在每篇的开头我也会先说明这节中用到的 scala 语法。为什么函数式编程这几年火起来如 Python 一样,函数式编程(FP,即Functional Programming)也是近几年才逐渐为人...原创 2019-07-30 09:42:50 · 198 阅读 · 0 评论 -
C,java,Python,这些名字背后的江湖!
还记得高中的时候,有一次我们计算机老师问我们班要不要去参加市里面的C语言比赛,当时还小的我对编程世界压根就一片空白。那时候我就想啊,为什么是C语言,那么A语言,B语言或者是D语言又是什么呢?后来就到了大学,学习了计算机知识后才知道C语言是什么东西。但是,你有没有过一瞬间感到奇怪,为什么它就叫做C语言,Java就叫java而不是叫J语言?今天我就带大家了解一下编程语言名字背后的故事吧~Java...原创 2019-03-18 20:37:24 · 318 阅读 · 0 评论 -
大数据存储的进化史 --从 RAID 到 Hdfs
我们都知道现在大数据存储用的基本都是 Hdfs ,但在 Hadoop 诞生之前,我们都是如何存储大量数据的呢?这次我们不聊技术架构什么的,而是从技术演化的角度来看看 Hadoop Hdfs。我们先来思考两个问题。在 Hdfs 出现以前,计算机是通过什么手段来存储“大数据” 的呢?为什么会有 Hadoop Hdfs 出现呢?在 Hdfs 出现以前,计算机是通过什么手段来存储“大数据”要...原创 2018-12-18 21:41:25 · 246 阅读 · 1 评论 -
Actor并发编程模型浅析
一.Actor模型介绍在单核 CPU 发展已经达到一个瓶颈的今天,要增加硬件的速度更多的是增加 CPU 核的数目。而针对这种情况,要使我们的程序运行效率提高,那么也应该从并发方面入手。传统的多线程方法又极其容易出现 Bug 而难以维护,不过别担心,今天将要介绍另一种并发的模式能一定程度解决这些问题,那就是 Actor 模型。Actor 模型其实就是定义一组规则,这些规则规定了一组系统中各个模块...原创 2018-11-16 20:43:39 · 244 阅读 · 0 评论 -
聊聊 scala 的模式匹配
一. scala 模式匹配(pattern matching)pattern matching 可以说是 scala 中十分强大的一个语言特性,当然这不是 scala 独有的,但这不妨碍它成为 scala 的语言的一大利器。scala 的 pattern matching 是类似这样的,e match { case Pattern1 => do Something case ...原创 2018-11-15 10:43:04 · 178 阅读 · 0 评论 -
hadoop,spark,Zookeeper,,, 这些名字都是怎么来的呢?
Apache首先我们要明白,Apache 是一个 http 服务器,而我们熟悉的另一种说法"Apache Hadoop"中的 Apache 则指的是 Apache 软件基金会。"Apache"是 Apache 软件基金会中的一个项目。关于其名字,流传最广的解释是(也是最显而易见的):这个名字来自于一个事实:当Apache在1995年初开发的时候,它是由当时最流行的HTTP服务器NCSA HTT...原创 2018-10-16 21:33:14 · 173 阅读 · 0 评论