数据框架
文章平均质量分 76
介绍大数据开发的各类框架及实现原理
晓阳的数据小站
欢迎大家关注微信公众号:晓阳的数据小站,一同探索大数据的技巧~
展开
-
技术人的进阶之路:如何想清楚技术主管的职责
很多同学在向更高一级进阶的时候,往往会遇到很多困惑,最常见的,就是自己的技术能力,是不等于管理能力的,自己能做好事情,不代表团队能做好事情。除去职责本身的变化外,我们还需要从全新的视角,来看待自己做的事情,本文便从“看清楚”这件事情出发,来讲解技术主管的职责。|0x00 技术团队的构成我们首先讲一下,技术团队的职责是什么?通常而言,一线技术团队是以工程师为主要团队成员,辅助以测试、产品、项目经理等其他岗位的支持,目标是交付满足干系人需求的产品或者系统,而干系人一般指代我们所称呼的业务方。技术团队通常需原创 2021-06-29 21:02:53 · 382 阅读 · 0 评论 -
分布式技术提纲
0x00为什么要学习分布式技术在软件工程领域中,我们一直非常喜欢谈论各种加工问题,比如“高并发、高可用、高可靠”,或者是“容器化、微服务、异地多活”,相关的技术细节、框架选型,像一张网一样,让人眼花缭乱。但,“万事万物都有自己的规律”,分布式技术是有纲领可以遵循的,掌握好这个纲领,可以在我们遇到问题时,从容的做出应对。我很喜欢《阴符经》的一句话:“贤者守时,不肖者守命”,当我们在PK方案、晋升答辩的关键时刻,有系统的知识体系为自己撑腰,能够争取来更大的机会。0x01分布式技...原创 2021-04-15 14:34:58 · 124 阅读 · 0 评论 -
碎碎念念聊中台
|0x00 中台诞生的初衷日常工作中,我们最常听到的抱怨就是:“人不够…” 而解决资源不足的方法,最简单暴力的,就是增加人力,靠堆人力来解决问题。我们要承认,大多数情况下,增加人力确实能解决资源不足的问题,但组织的协作效率、研发效能,却并没有因此而得到改善。随着时间推移,代码成本增加,维护原有的代码又需要增加人力,从而陷入到一种无休无止的境地,直到业务停掉。《人月神话》中,作者花费了比较大的篇幅来阐述项目延期的最主要原因,是:“缺乏合理的进度安排”,而“向进度落后的项目追加人力,只会使进度更加落后”。因原创 2021-04-09 09:05:17 · 307 阅读 · 2 评论 -
开源组件系列(13):交互式计算引擎
概述产生背景 在开源大数据领域,交互式引擎并不是从一开始就出现的。起初,大数据领域数据处理引擎以MapReduce为主,但MapReduce引擎采用了批处理的理念,数据处理能力低效:IO密集型:Map阶段中间结果写磁盘,Reduce阶段写HDFS,多个MapReduce作业之间通过共享存储系统HDFS交换数据。任务调度和启动开销大,大量任务需要分布式调度到各个节点上,且每个任务需启动一...原创 2020-04-16 12:42:53 · 1284 阅读 · 0 评论 -
开源组件系列(12):DAG计算引擎Spark
(一)概述Spark是在MapReduce的基础上产生的,借鉴了大量MapReduce实践经验,并引入多种新型设计思想和优化策略。我们首先看一下MapReduce的局限和Spark在此基础上做出的改进。MapReduce的缺陷:1.仅支持Map和Reduce两种操作:由于MapReduce提供的编程结果比较低层次,因而实现一些常用的功能,如排序、分组等,需要编写大量的代码。...原创 2020-04-09 19:18:46 · 2505 阅读 · 1 评论 -
开源组件系列(11):批处理引擎MapReduce
(一)MapReduce设计目标 MapReduce诞生于搜索领域,主要解决搜索引擎面临的海量数据处理扩展性差的问题,很大程度上借鉴了Google开源的论文思想,包括了简化编程接口、提高系统容错性等特征。如果我们总计一下MapReduce的设计目标,主要有以下几个:简化编程接口:传统的分布式程序设计非常复杂,用户需要关注的细节非常多,例如数据分片、传输、通信等问题...原创 2020-04-03 10:57:37 · 1299 阅读 · 0 评论 -
开源组件系列(10):集群化服务资源管理系统(Mesos)
目录(一)Mesos基本架构(二)Mesos资源分配策略(三)Mesos与YARN的对比Mesos最早是UC Berkeley的一个研究项目,用以解决编程模型和计算框架多样化环境下,不同框架之间的资源隔离和共享问题。尽管它的直接设计动机与YARN有所不同,但它的架构和实现策略与YARN类似,得到了一定范围内的认可,例如Twitter就在使用。(一)Mesos基本架构Meso...原创 2020-03-20 17:48:33 · 980 阅读 · 0 评论 -
开源组件系列(9):资源管理与调度系统(YARN)
目录(一)概述(二)YARN基本架构(三)YARN高可用性(四)YARN工作流程(五)YARN资源调度器(六)YARN的具体调度场景(七)YARN资源隔离(八)YARN生态系统(九)资源管理系统架构演化(一)概述YARN作为一个通用的资源管理系统,目标是将短期作业和长期服务混合部署到一个集群中,并为它们提供统一的资源管理和调度功能。YARN是大数据...原创 2020-03-09 22:45:13 · 1425 阅读 · 0 评论 -
开源组件系列(8):分布式结构化存储(Zookeeper)
(一)分布式协调服务的意义分布式协调服务在分布式应用中是不可缺少的,通过引入类似于文件系统的层级命名空间,并在此基础上提供一套简单易懂的规范语言,能够帮助用户轻易的实现诸如Leader选举、分布式锁及分布式队列等功能。Zookeeper已经广泛的应用在开源系统中,包括HDFS、Yarn、HBase等组件中。接下来通过Leader选举和负载均衡为例,说明分布式协调服务存在的意义和基本...原创 2020-03-06 09:41:46 · 765 阅读 · 0 评论 -
开源组件系列(7):分布式结构化存储(HBase)
目录(一)概述(二)HBase数据模型(三)HBase基本架构(四)HBase内部原理(五)HBase访问方式(一)概述长期以来,传统的关系型数据库(Mysql)等因为其易懂的关系模型、高效的查询引擎和易用的查询语言而被广泛应用,但在一些互联网应用场景中,数据量的膨胀非常快,基于关系型数据库的方案很难满足系统扩展的需求。同时,引入了分布式文件系统HDFS之后...原创 2020-03-01 20:05:31 · 784 阅读 · 0 评论 -
开源组件系列(6):分布式文件系统(HDFS)
(一)概述在海量数据的业务场景中,我们每天采集的数据通常是GB级别的,系统所存储的数据通常是TB级别的,甚至是PB级别。为了应为数据存储的管理和扩展问题,大数据集群通常采用横向扩展的方式来满足数据增长的需求,即以网络互连的节点为单位扩大存储容量。为了构建横向扩展的分布式文件系统,通常需要解决如下几个问题:1.数据能备份:由于横向扩展的集群节点通常采用廉价的服务器,因而出现故障的几率较...原创 2020-02-26 21:24:48 · 1471 阅读 · 0 评论 -
开源组件系列(5):数据的序列化(Thrift、Protobuf、Avro)
(一)数据序列化的意义当我们需要将采集的日志存入文件或者是传输到下一个系统时,需要将数据对象转化为字节流格式,也就是数据的序列化过程。通常情况下,搭建一套数据仓库系统,会经历如下四个阶段:1.没有序列化方案:该方案将数据定义为字符串格式,并以文本的形式保存,如果存在多条数据,则采用分隔符来分隔,例如“{|[”等。当增加字段时,通过在文本的最后增加新行的方式来进行,修改及解析比较繁琐,...原创 2020-02-24 21:15:22 · 766 阅读 · 0 评论 -
开源组件系列(4):分布式消息队列(Kafka)
目录(一)消息队列概述(二)Kafka基本架构(三)Kafka组件介绍(四)Kafka关键技术点(五)Kafka示例任务(一)消息队列概述不论是系统产生的数据日志,还是对应的数据系统,从来都不是单一的对应关系,而是多种数据日志对应多套数据系统的复杂关联。假设我们将采集的数据日志直接传输到目标数据系统中,一旦因为业务扩展而产生的新的数据系统建设需求,那么依赖关系势必变得非...原创 2020-02-23 17:15:41 · 530 阅读 · 0 评论 -
开源组件系列(3):非关系型数据导入(Flume)
(一)非关系型数据采集概述在日常的数据仓库建设过程中,通常会采集各类型的业务日志,包括广告日志、搜索日志、展现日志、点击日志等。当业务达到一定规模时,日志记录系统会产生大量的日志,而如何将这些日志高效及时的收集起来,并存储到Hadoop上,是非关系型数据导入组件设计的动机。总的来说,需要考虑以下四方面的问题:1.数据来源多:基本上各种类型的业务都会产生日志,这些日志很难保持相同的结构,产生...原创 2020-02-21 14:22:58 · 430 阅读 · 0 评论 -
开源组件系列(2):关系型数据导入(Sqoop与Canal)
(一)概述关系型数据库是我们程序员日常开发中最常用的工具,通过Mysql、Oracle等软件,将我们要处理的数据存储在关系型数据库中。为了能够在Hadoop上分析这些关系型数据库,我们需要通一些设定好的框架,将关系型数据库中的【结构化】数据存储到HDFS上,以便采用MapReduce和Spark做进一步的运算处理。为了便于后续数据可视化工作,我们将数据计算出来后,通常会再倒回到关系型数据...原创 2020-02-19 09:43:40 · 2485 阅读 · 0 评论 -
开源组件系列(1):大数据技术框架
目录(一)通用框架概述(二)数据收集层(三)数据存储层(四)资源管理与服务协调层(五)计算引擎层(六)数据分析层(七)数据可视化层(一)通用框架概述自底向上,与OSI类似,通用框架下的大数据体系有七层:数据源、数据收集层、数据存储层、资源管理与服务协调层、计算引擎层、数据分析层及数据可视化层。图示如下:(二)数据收集层数据收集...原创 2020-02-17 15:56:32 · 1019 阅读 · 0 评论 -
Flink系列(3):以布隆过滤器为例,从零基础开始理解并实现实时数据去重问题
目录(一)Hash(二)BitMap(三)BitSet(四)BloomFilter(五)Flink(一)Hash哈希表是一种基本的数据结构,其思想是利用Hash函数来支持快速的【插入和搜索】,这是哈希表的第一个重要概念。本文从哈希表开始说起,是为数据去重问题提供最原始的思路。该模块不涉及任何复杂算法,或者是Java中的实现方法,仅从最简单的角度进行讲解,便于初学者快速理...原创 2020-02-14 10:52:43 · 1552 阅读 · 0 评论 -
Flink系列(2):从零搭建Flink环境及WordCount示例
(一)搭建前的环境配置本文从零开始搭建并熟悉Flink的开发方式,故所有环境以Windows单机为主,开发语言采用Java,最后涉及一些集群环境的配置方式。在搭建Flink本地单机环境前,首先确保电脑上Java及Maven环境已搭建,笔者使用的Java版本为1.8.0_241;maven版本为3.6.3;Flink版本为1.9.2。随后,从Flink官网下载对应的Flink安装包,下载...原创 2020-02-10 16:30:33 · 580 阅读 · 0 评论 -
Flink系列(1):Flink的基础理论
目录Flink的介绍Flink的优点Flink与Spark有何区别Flink的前置学习之一:抽象层级Flink的前置学习之二:数据流的运行过程Flink的前置学习之三:如何并行处理数据Flink的四大核心原理之一:窗口(Window)Flink的四大核心原理之二:时间(Time)Flink的四大核心原理之三:状态(State)Flink的四大核心原理之四:检...原创 2020-02-06 17:12:46 · 520 阅读 · 0 评论 -
Drill系列(1):Dremel的原理
Google在推出了三大论文之后,并没有停止震撼世界的步伐,例如在Dremel中,借助精巧的数学模型,可以在3秒中分析1PB数据,便是又一大创新。让我们来看一下Dremel的魅力:Dremel号称能够3秒分析1PB数据,如果在一个PB级别的数据集上面,将任务缩短到秒级,无疑需要大量的并发,假设磁盘的顺序读速度在100MB/S上下,那么在1S内处理1TB数据,意味着至少需要有1万个磁盘的同时并...转载 2020-02-06 07:30:07 · 2276 阅读 · 0 评论