自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

esun的博客

小白的成长之路

  • 博客(42)
  • 收藏
  • 关注

原创 谁能讲清楚Spark之Spark系统架构

Spark与Hadoop MapReduce的结构类似,Spark也采用Master-Worker结构。如果一个Spark集群由4个节点组成,即1个Master节点和3个Worker节点,那么在部署Standalone版本后,Spark部署的系统架构图如图2.1所示。简单来说,Master节点负责管理应用和任务,Worker节点负责执行任务。

2023-08-12 17:54:19 679

原创 Hadoop生态之hive

其本质是将 SQL 转换为 MapReduce/Spark 的任务进行运算,底层由 HDFS 来提供数据的存储,说白了 hive 可以理解为一个将 SQL 转换为 MapReduce/Spark 的任务的工具。

2023-09-04 21:14:39 752

原创 谁能讲清楚Spark之生产性能调优

1 HashAggregate 运算符表示数据聚合,一般 HashAggregate 是成对出现,第一个HashAggregate 是将执行节点本地的数据进行局部聚合,另一个 HashAggregate 是将各个分区的数据进一步进行聚合计算。5 formatted 以分隔的方式输出,它会输出更易读的物理执行计划,并展示每个节点的详细信息。在实际的生产环境中,提交spark任务时,使用spark-submit shell脚本,在里面调整对应的参数。如:select name, id…

2023-08-20 16:43:14 149

原创 谁能讲清楚Spark之checkpoint与数据缓存的区别

数据缓存是为了读写速度快,因此主要使用内存,偶尔使用磁盘作为存储空间。的用法、存储与读取过程确实很相似,但也有不少区别,下面总结说明一下。数据缓存适用于会被多次读取、占用空间不是非常大的RDD。数据缓存的目的是加速计算,即加速后续运行的job。是为了能够可靠读写,因此主要使用分布式文件系统作为存储空间。运行失败后能够快速恢复,也就是说加速当前需要重新运行的job。,如关联的数据过多、计算链过长、被多次重复使用等。的lineage没有影响,这样如果缓存后的。的时延影响,会额外启动专门的。

2023-08-15 16:47:37 103

原创 数仓建模之维度建模

其中粒度是非常重要的,粒度用于确定事实表的行表示什么,建议从关注原子级别的粒度数据开始设计,因为原子粒度能够承受无法预估的用户查询,而且原子数据可以以各种可能的方式进行上卷,而一旦选择了高粒度,则无法满足用户下钻细节的需求。事实是整个维度建模的核心,其中雪花模型或者星型模型都是基于一张事实表通过外健关联维表进行扩展,生成一份能够支撑可预知查询需求的模型宽表,而且最后的查询也是落在事实表中进行。

2023-08-14 20:45:20 133

原创 谁能讲清楚Spark之与MapReduce的对比

我们已经知道Spark是如何设计和实现数据处理流程的,这里我们 再深入思考一下,为什么Spark能够替代MapReduce成为主流的大数据处理框架呢?对比MapReduce,Spark究竟有哪些优势?

2023-08-13 10:59:48 735

原创 谁能讲清楚Spark之Spark逻辑处理流程

本次主要介绍Spark是如何将应用程序转化为逻辑处理流程的,包括RDD数据模型概念、数据操作概念,以及数据依赖关系的建立规则等。

2023-08-13 10:48:28 214

原创 谁能讲清楚Spark之小白入门

以上是大数据中对此类框架的概述,不同处理框架的内部的逻辑可以说核心思想类似,又不尽相同。请期待下一篇《谁能讲清楚Spark之Spark系统架构》

2023-07-28 10:52:05 180

原创 数仓搭建第四步——主题域划分

那么数仓产生的方法论就是将具体问题步骤化,类别化,层次化。这其中就涵盖了主题域的划分,划分主题域有利于区分数据在某一种类别或渠道的不同,让整个数仓架构清晰化,便于后期对数据的利用与开发。

2022-11-01 21:32:59 799 1

原创 数仓搭建第三步——建立规范

数仓搭建第三步——建立规范

2022-10-26 17:04:08 501

原创 数仓搭建第二步——根据第一步招揽相关人员

数仓搭建第二步——根据第一步招揽相关人员

2022-10-26 11:59:51 147

原创 从零搭建数仓第一步——明确数仓用途与目的

从零搭建数仓第一步——明确数仓用途与目的

2022-10-26 11:57:48 357

原创 数仓0-1搭建过程

1 明确数仓用途与目的2 根据第一步招揽相关人员3 建立相关规范包括但不限于表名字段、sql、安全、测试、报警、依赖、建模等规范4 根据第一步与公司业务划分主题5 明确数仓层级6 根据公司现状选择相关工具包括但不限于数据同步工具、数据处理工具、数据存储工具等

2022-09-09 10:09:15 627

转载 Hadoop深入理解之Yarn

本文参考http://jira.mumway.com/browse/DATA-136?filter=-1一 介绍YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。二 优缺点 1.优点:与其他用户程序完全解耦,YARN 上可以运行各种类型的分布式运算程序。 资源管理和作业控制分离,减小JobTracker压...

2021-07-02 15:46:10 424

原创 Hadoop深入理解之MapReduce

一 定义及由来MapReduce是一种计算模型也可以说是一种分布式运算程序的编程框架,它可以将大型数据处理任务分解成很多单个的、可以在服务器集群中并行执行的任务,而这些任务的计算结果可以合并在一起来计算最终的结果。简而言之,Hadoop Mapreduce是一个易于编程并且能在大型集群(上千节点)快速地并行得处理大量数据的软件框架,以可靠,容错的方式部署在商用机器上。MPI等并行计算方法缺少统一的计算框架支持,程序员需要考虑数据存储、划分、分发、结果收集、错误恢复等诸多细...

2021-07-01 18:23:19 355

原创 Hadoop深入理解之HDFS

一 HDFS介绍HDFS(Hadoop Distributed File System)分布式文件储存系统,用于存储文件,通过目录树定位文件,适合一次性写入,多次读出且不支持修改操作也不适用于删除操作所以适合用来做过程性数据,历史数据存储以供数据分析等。所谓分布式既可以将文件存储到不同服务器上。二 HDFS优缺点 优点:1.高容错,数据自动保存多个副本,某一个副本丢失后可以自动恢复。 2.大规模数据处理,能够处理数据规模达到GB、T...

2021-06-29 16:09:26 96

原创 Hadoop深入理解之优势及组成

一 优势Hadoop作为大数据概念中重要的分布式框架其优势总结出来大概有四点:1.高可靠 Hadoop底层维护了多个数据副本,这样使得其本身某个节点出现故障无论是计算还是储存都不会导致数据丢失。2.高扩展 分布式架构,在集群上分配任务数据,随时可以扩展几百上千个节点。3.高效率 MapReduce在计算过程中是并行处理的,大大加快了数据处理的速度。4.高容错 对自身失败的任务可实现自动重新分配。二 组成 ...

2021-06-28 18:03:19 520

原创 知识树整理——持续更新

看了叶子叶来的文章(https://yezonggang.blog.csdn.net/article/details/112402500)受益颇多,决定也搞一下自己的知识树将自己所学到的,理解的知识变成体系,对自己的成长能有所帮助,共勉。

2021-06-23 17:24:08 202

原创 Git的使用

Git简介:Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或小或大的项目。便于同一项目组成员管理开发项目,使其能够随时随地的上传下载更改或更新的代码。Git与SVN的区别:1、Git是分布式的,SVN不是,这是Git与其他非分布式的版本控制系统最核心的区别。2、Git把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的原信息隐藏在一个类似.svn,.c...

2021-06-12 15:17:21 145

原创 多线程与多进程

为什么实现多任务:效率高,不卡顿实现多任务的方式 1、多进程模式:启动多个进程,每个进程虽然只有一个线程,但是多个进程可以一起执行多个任务 2、多线程模式:启动一个进程,在一个进程的内部启动多个线程,这样多个线程也可以一起执行多个任务 3、多进程+多线程:启动多个进程,每个进程再启动多个线程 4、协程 5、多进程+协程什么是进程:进程(Pro...

2021-06-12 15:12:11 1619

原创 订单系统的设计与研发

第一讲 订单的架构,设计思路作者目前有了一些订单系统相关的研发经验,把相关的设计思路和个人的想法记录下来以便查阅,如有雷同纯属巧合,如有bug欢迎提出!订单系统或者订单模块(是有区别的,系统是独立的,模块是系统内部的一部分,当你的系统架构达到了一定程度就会面临到拆分,这个以后会提到)的设计首先要根据现有的业务逻辑出发,提起订单就会想到商品、赠品、折扣、物流、支付、售后等等问题。但这些只是市面上的常见的订单业务,有很多我们看不见的或者不常见的业务比如说58同城的订单,或者货拉拉的订单这种比较看重下单后

2021-06-12 15:09:04 237

原创 大数据001——数仓搭建相关

hive建表语句CREATE EXTERNAL TABLE db.table_name(field typeCOMMENT '描述')

2021-06-12 14:44:44 305 4

原创 python 时间处理合集

import datetimefrom datetime import timedeltanow = datetime.datetime.now()# 今天today = nowprint('--- today = {}'.format(today))# 昨天yesterday = now - timedelta(days=1)print('--- yesterday = {}'.format(yesterday))# 明天tomorrow = now + timed...

2021-03-25 16:04:32 103

原创 浅谈MQ

MQ?what?MQ被程序员叫做消息中间件,字面意思用来处理处于两方中间消息的一个工具,异步RPC(远程过程调用)。yes/no优点:以高并发、高流量系统为出发点,如果数据量并不大使用MQ反而带来后期维护的困难等问题。降低系统耦合度 消息可靠传递 可以广播传递消息 达到流量削峰缺点:系统可用性降低 系统复杂度提高 数据一致性降低MQ组成Brocke...

2019-10-02 17:09:43 161

原创 JDK与JRE的区别

JDK=JRE+开发工具集(例如javac编译工具等)JRE=JVM+java SE标准类库 1.JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。SE(JavaSE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。EE(JavaEE),enterprise editi...

2018-10-08 20:21:11 160

原创 python环境搭建与配置

首先了解一下什么是环境首先python是一种脚本语言,他的开发环境是用来编译运行python源程序的。要想编译运行python的源程序,前提你先要在你的机器上安装python,然后通过python的解释器你就能编译运行python程序。安装python后,会有一个python的命令行工具,python.exe。也可以用windows下面自带的集成IDE.什么是环境变量环境变量是在操作系统...

2018-09-18 09:04:58 514

原创 Linux vi编辑器的一些操作

vivim是vi的升级版刚进入vi编辑器的页面---一般模式编辑模式---插入模式末行模式--命令行模式1.进入插入模式    i:在当前光标的位置插入    I:在当前行第一个非空的位置插入    a:在光标的下一个位置输入    A:在行尾插入内容    o:在光标所在位置的下一行插入空行    O:在光标所在位置的上一行插入空行    s:删除光标所在位置并进入插入...

2018-08-23 17:36:56 134

原创 Python 面向对象之多态

多态:一种事物在不同时刻体现的不同形态,一个变量将来可以是不同的类型不同的子类对象调用相同的父类方法,产生不同的执行结果,多态可以增加代码的灵活度以继承和重写父类方法为前提,是调用方法的技巧,不会影响到类的内部设计...

2018-08-11 11:03:24 167

原创 Python 面向对象之继承

继承是指一个对象直接使用另一对象的属性和方法(子承父业),一般是类与类之间的。面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的作用有:减少代码量、是多态的前提。坏处是:高耦合...

2018-08-11 10:36:20 161

原创 Python 面向对象之封装

封装:封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。 封装的意义:封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。良好的封装能够减少耦合。可以对成员进行更精确的控制。1. 保护数据成员...

2018-08-11 09:49:17 271

原创 python 面向对象

面向对象其实是一种程序设计的思想,它不是一种具体的结构或事物。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木...

2018-08-11 09:30:19 89

原创 python 函数

函数:1.函数概述函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。2.函数的定义你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。任何...

2018-08-01 09:22:33 124

原创 python列表、元组与字典

列表:1.列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。2.列表的数据项不需要具有相同的类型3.创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下list1 = ['Google', 'Runoob', 1997, 2000]list2 = [1, 2, 3, 4, 5 ]list3 = ["a", "b", "c", "d"]...

2018-08-01 09:19:18 424

原创 基础数据结构1

Number数字数据类型Python 数字数据类型用于存储数值。数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。12  34   1000浮点型(flo...

2018-07-27 19:20:19 95

原创 随机函数random小游戏——猜大小

 """猜数游戏"""i = 1count = random.choice(range(101))#print(count)num = float(input("请输入你猜的数:"))while num != count: while num > 100: num = float(input("不在范围内请重新输入:")) ..

2018-07-27 15:19:37 2553

原创 随机函数random小游戏——抽奖

"""抽奖系统"""print("欢迎来到会员抽奖系统")userName = input("请输入用户名:")password = input("请输入密码:")num = [random.randint(1000,10000)for _ in range(10)]#随机生成十个整数,变成一个数组#print(num)while True: while use

2018-07-27 15:17:36 1340

原创 while与for循环

while循环语法:while 条件:    循环体结果为true循环为false结束for循环:用来遍历列表range(a,b):生成a到b-1的数嵌套循环外层循环一次里面循环一遍...

2018-07-26 21:16:29 159

原创 运算符与条件控制语句

条件控制语句返回true或falsenum=100if num<=90: #条件结果为true    print("你好")else:       #条件结果为false    print("大家好")week = input("请输入日期")if必须写,elif和else可选  if和else只有一个,elif可多个注意:1、每个条件后面要使用冒号 :,表示接下来是满足条...

2018-07-26 21:15:41 139

原创 python——变量与常量

变量:容器,装的是可变的量变量的作用:存储数据到内存为什么要用变量:存储数据方便后面引用Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。Num=10在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边赋值可以为具...

2018-07-26 21:14:53 198

原创 python优缺点

Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。优点:易学、开源、可移植性、解释性、面向对象、可扩展性、可嵌入性缺点:运行速度慢,强制缩进,单行语句...

2018-07-26 21:14:01 261

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除