MapReduce

为什么我说 ETL 是 SQL 人重启辉煌之光的必经之路

风流意气都作罢 提交于 2020-08-19 19:03:35
点击蓝色“ 有关SQL ”关注我哟 加个“ 星标 ”,天天与10000人一起快乐成长 很多朋友会觉得写 CRUD 很无聊,翻来覆去就那么点花样。接触不到新鲜的技术,感觉自己要被这个时代淘汰了。于是怨天尤人,连基本的 SQL 都写不好了。 这可能是眼界与见识的问题。SQL 在行业内还是相当重要的,当然你说 CRUD 那点东西玩几个月就会了,没有新奇感。从技术角度来看,是这样,我承认。但换成业务角度来说,这又不是一回事了。这要细讲,我可以讲上三天三夜,所以留到以后的文章再说。 在 OLTP 系统中,CRUD 能做的事情,越来越少了。大部分都由前端框架封装好了。搞c#的同学有 Entity Framework, Java 系的同学有 Spring 全家桶。这些框架可以说,基本把 CRUD 同学的职位给抢掉了 2/3, 剩下纯搞 CRUD 的同学就偷着乐吧,也没几天了,想吃啥想喝啥,别委屈了自己。 真正能让 SQL 人凭手艺,还在 CRUD 行当里吃香的,喝辣的,技术上取决于你掌握了多少种数据库,SQL写得多快,要不然就是要享受福报了。 好在上帝关闭一扇窗的同时,他又打开了一道门。这道门便是 数据仓库 。 数据和银行的存款是一样的,越积越多,多得我们得千方百计思考该怎么用它。我们刚开始入行的时候,接触的数据库应用,十有八九都是业务系统,比如订单系统,生产系统和人事系统。这是早就很多

大数据技术栈——Hadoop概述

最后都变了- 提交于 2020-08-19 17:33:19
大数据技术栈——Hadoop概述 1 引例 2 MapReduce 3 HDFS 4 Hadoop 5 HBase 5.1 逻辑模型 5.2 物理模型 5.3 Region服务器 6 Hive 7 Pig 8 ZooKeeper 8.1 ZooKeeper的特性 8.2 ZooKeeper的设计目标 1 引例 Hadoop是专为离线和大规模数据分析而设计的,上图Hadoop整体技术框架描述。(为了方便学习,会先介绍Map Reduce与HDFS) 2 MapReduce MapReduce是Google提出的大规模并行计算解决方案,应用于大规模廉价集群上的大数据并行处理(Map Reduce1.0运行模型如下)。 MapReduce以key/value的分布式存储系统为基础,采用“分而治之”的思想,是一种并行编程模型,将计算阶段分为两个阶段:Map阶段(分)和Reduce阶段(治)。 原理:利用一个输入(key,value)对的集合产生一个输出的(key,value)对的集合。 map阶段 :被分配了map任务的worker程序读入数据片段,解析出(key,value)对,传给用户定义的Map函数,Map函数生出中间对,缓存在内存中。 Reduce阶段 :该阶段由Reduce函数把Map阶段具有相同key值的中间结果收集到相同Reduce结点进行合并处理,并将结果写入本地磁盘

Spark:shuffle原理

孤者浪人 提交于 2020-08-19 16:22:37
shuffle 和 stage shuffle 是划分 DAG 中 stage 的标识,同时影响 Spark 执行速度的关键步骤.   RDD 的 Transformation 函数中,又分为窄依赖(narrow dependency)和宽依赖(wide dependency)的操作.窄依赖跟宽依赖的区别是是否发生 shuffle(洗牌) 操作.宽依赖会发生 shuffle 操作. 窄依赖是子 RDD的各个分片(partition)不依赖于其他分片,能够独立计算得到结果,宽依赖指子 RDD 的各个分片会依赖于父RDD 的多个分片,所以会造成父 RDD 的各个分片在集群中重新分片, 看如下两个示例:   第一个 Map 操作将 RDD 里的各个元素进行映射, RDD 的各个数据元素之间不存在依赖,可以在集群的各个内存中独立计算,也就是并行化,第二个 groupby 之后的 Map 操作,为了计算相同 key 下的元素个数,需要把相同 key 的元素聚集到同一个 partition 下,所以造成了数据在内存中的重新分布,即 shuffle 操作.shuffle 操作是 spark 中最耗时的操作,应尽量避免不必要的 shuffle.   宽依赖主要有两个过程: shuffle write 和 shuffle fetch. 类似 Hadoop 的 Map 和 Reduce 阶段

被称为“Google 最大黑科技”,开发谷歌大脑,这位 AI 掌门人到底有多牛?

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-19 01:07:31
作者 | 年素清 责编 | 王晓曼 出品 | 程序人生(ID:coder_life) 在很多人眼中,杰夫·迪恩(Jeff Dean)就是谷歌技术的代名词,谷歌今天的强大离不开他的付出,他是MapReduce、BigTable、Spanner、TensorFlow 等谷歌众多知名软件的重要贡献者,这些成果不仅奠定了他在谷歌的地位,也为他在业界赢得了无数的崇拜者。 高中为父亲写软件 迪恩于 1968 年 7 月出生在美国夏威夷,他的父亲是一位热带病学研究员,母亲则是一名通晓六种语言的医学人类学家,良好的家境往往意味着良好的教育环境。 读小学时,迪恩和父亲共同对一台 IMSAI 8080 计算机进行编程探索,他们将升级程序焊接在机器上,并深入研究了这台设备的构造和运行原理。 因为父亲的职业缘故,他们不得不经常搬家。十三岁时候的迪恩提前结束了自己八年级的学业,随父母一同来到索马里西部的某难民营。 迪恩在读高中时,曾为父亲和其同事们编写了一款叫做“Epi Info”的程序,用于收集病理相关的数据,后来这款软件成为流行病专家们在野外工作的标配工具,推出了十几种语言的版本,用户数量达十几万。 1990年,迪恩以最优等的成绩从明尼苏达大学计算机与经济学系取得学士学位。 之后进入华盛顿大学,攻读计算机科学博士学位。 在此期间,他曾为世界卫生组织的爱滋病全球方案开发软件,在HIV传播的统计建模

mongodb的聚合操作

会有一股神秘感。 提交于 2020-08-18 14:27:02
1. 什么是聚合 聚合是MongoDB的高级查询语言,它允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果,有点类似sql语句中的 count(*)。 在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce。Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复杂的聚合逻辑。MongoDB不允许Pipeline的单个聚合操作占用过多的系统内存。 2. mongodb的聚合语法 >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 3. mongodb的聚合示例 集合中的数据如下: { _id: ObjectId(7df78ad8902c) title: 'MongoDB Overview', description: 'MongoDB is no sql database', by_user: 'runoob.com', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }, { _id:

云函数 SCF 与对象存储实现 WordCount 算法

妖精的绣舞 提交于 2020-08-18 13:13:17
本文将尝试通过 MapReduce 模型实现一个简单的 WordCount 算法,区别于传统使用 Hadoop 等大数据框架,本文使用云函数 SCF 与对象存储 COS 来实现。 MapReduce 在维基百科中的解释如下: MapReduce 是 Google 提出的一个软件架构,用于大规模数据集(大于 1TB)的并行运算。概念「Map(映射)」和「Reduce(归纳)」,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。 通过这段描述,我们知道,MapReduce 是面向大数据并行处理的计算模型、框架和平台,在传统学习中,通常会在 Hadoop 等分布式框架下进行 MapReduce 相关工作,随着云计算的逐渐发展,各个云厂商也都先后推出了在线的 MapReduce 业务。 理论基础 在开始之前,我们根据 MapReduce 的要求,先绘制一个简单的流程图: 在这个结构中,我们需要 2 个云函数分别作 Mapper 和 Reducer;以及 3 个对象存储的存储桶,分别作为输入的存储桶、中间临时缓存存储桶和结果存储桶。在实例前,由于我们的函数即将部署在广州区,因此在广州区建立 3 个存储桶: 对象存储1 ap-guangzhou srcmr 对象存储2 ap-guangzhou middlestagebucket 对象存储3 ap-guangzhou

逼自己玩命学了6个多月,吃透这14个大数据知识点!分享给你,让你斩获大厂offer!!

巧了我就是萌 提交于 2020-08-18 13:02:24
大数据生态体系蓬勃发展,分布式技术组件越来越丰富,Hadoop,Spark,Flink等快速涌现,让海量数据的解决方案越来越完善,这些分布式技术组件都是架构在大批量廉价商用服务器之上提供高性能,高可用,可扩展的服务的分布式集群。 那么他们如何设计,底层是如何实现的呢? 我们在遇见类似的需求时, 是否也能研制一套海量数据处理技术 呢? 当然能!这套 hadoop 课程视频, 对Hadoop底层源码剖析,三天带你手写一个hadoop框架,原价 1998 元,现在 限时免费送 ! 资料目录 1. 手写RPC实现 (1)海量数据的存储及计算方案探索分析 (2)单线程的通用存储和计算方案设计和实现 (3)多线程的通用存储和计算方案设计和实现 (4)多进程的通用存储和计算方案设计 (5)手写RPC实现 2. 手写HDFS框架 (1)手写分布式文件系统功能实现: 整体架构实现 (2)手写分布式文件系统功能实现: 上传文件实现 (3)手写分布式文件系统功能实现: 下载文件实现 (4)手写分布式文件系统功能实现: 元数据管理实现 3. 手写MapReduce (1)手写分布式计算框架功能实现: 整体架构实现Job设计 (2)手写分布式计算框架功能实现: 通用数据读取组件InputFormat和Mapper组件实现 (3)手写分布式计算框架功能实现: