大数据
文章平均质量分 86
源码头
稀有源码资源提供者
展开
-
从0开始学大数据16-ZooKeeper是如何保证数据一致性的?
你可能还记得,我们在讲HDFS和HBase架构分析时都提到了ZooKeeper。在分布式系统里的多台服务器要对数据状态达成一致,其实是一件很有难度和挑战的事情,因为服务器集群环境的软硬件故障随时会发生,多台服务器对一个数据的记录保持一致,需要一些技巧和设计。这也就是我们今天要讨论的分布式系统一致性与ZooKeeper的架构。在讲分布式系统一致性前,我们先回顾一下HDFS。HDFS为了保证整个集群的高可用,需要部署两台NameNode服务器,一台作为主服务器,一台作为从服务器。原创 2023-05-20 10:21:31 · 653 阅读 · 0 评论 -
从0开始学大数据15-流式计算的代表:Storm、Flink、SparkStreaming
我前面介绍的大数据技术主要是处理、计算存储介质上的大规模数据,这类计算也叫大数据批处理计算。顾名思义,数据是以批为单位进行计算,比如一天的访问日志、历史上所有的订单数据等。这些数据通常通过HDFS存储在磁盘上,使用MapReduce或者Spark这样的批处理大数据计算框架进行计算,一般完成一次计算需要花费几分钟到几小时的时间。此外,还有一种大数据技术,针对实时产生的大规模数据进行即时计算处理,我们比较熟悉的有摄像头采集的实时视频数据、淘宝实时产生的订单数据等。原创 2023-05-20 10:18:40 · 859 阅读 · 0 评论 -
从0开始学大数据14-BigTable的开源实现:HBase
我们知道,Google发表GFS、MapReduce、BigTable三篇论文,号称“三驾马车”,开启了大数据的时代。那和这“三驾马车”对应的有哪些开源产品呢?我们前面已经讲过了GFS对应的Hadoop分布式文件系统HDFS,以及MapReduce对应的Hadoop分布式计算框架MapReduce,今天我们就来领略一下BigTable对应的NoSQL系统HBase,看看它是如何大规模处理海量数据的。原创 2023-05-20 10:17:54 · 584 阅读 · 0 评论 -
从0开始学大数据13-同样的本质,为何Spark可以更高效?
上一期我们讨论了Spark的编程模型,这期我们聊聊Spark的架构原理。和MapReduce一样,。但是和MapReduce僵化的Map与Reduce分阶段计算相比,Spark的计算框架更加富有弹性和灵活性,进而有更好的运行性能。原创 2023-05-20 10:16:13 · 310 阅读 · 0 评论 -
从0开始学大数据12-我们并没有觉得MapReduce速度慢,直到Spark出现
Hadoop MapReduce虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意。于是UC Berkeley的AMP Lab推出的Spark应运而生,Spark拥有更快的执行速度和更友好的编程接口,在推出后短短两年就迅速抢占MapReduce的市场份额,成为主流的大数据计算框架。读到这里请你先停一下,请给这段看似“没毛病”的引子找找问题。原创 2023-05-20 10:13:09 · 92 阅读 · 0 评论 -
从0开始学大数据11-Hive是如何让MapReduce实现SQL操作的?
前面我们讲过,MapReduce的出现大大简化了大数据编程的难度,使得大数据计算不再是高不可攀的技术圣殿,普通工程师也能使用MapReduce开发大数据程序。但是对于经常需要进行大数据计算的人,比如从事研究商业智能(BI)的数据分析师来说,他们通常使用SQL进行大数据分析和统计,MapReduce编程还是有一定的门槛。而且如果每次统计和分析都开发相应的MapReduce程序,成本也确实太高了。那么有没有更简单的办法,可以直接将SQL运行在大数据平台上呢?原创 2023-05-20 10:11:56 · 453 阅读 · 0 评论 -
从0开始学大数据10-模块答疑:我们能从Hadoop学到什么?
2个小时还上不了手,我也会放一放。最后,我在今天的文章里贴了陈晨、虎虎、您的好友William、lyshrine、不求、Panmax、wmg、西贝木土的留言,我认为是比较精彩很有深度的,也把它们分享给你,希望其他同学的思考也能对你有所启发,也欢迎你给我留言与我一起讨论。还有的时候,你学一样新技术却苦苦不能入门,可能仅仅就是因为你看的文章、书籍本身写得糟糕,或者作者写法跟你的思维方式不对路而已,并不代表这个技术有多难,更不代表你的能力有问题,如果换个方式、换个时间、换篇文章重新再看,可能就豁然开朗了。原创 2023-05-20 10:10:46 · 133 阅读 · 0 评论 -
从0开始学大数据09-为什么我们管Yarn叫作资源调度框架?
所谓高层模块和低层模块的划分,简单说来就是在调用链上,处于前面的是高层,后面的是低层。我们以典型的Java Web应用举例,用户请求在到达服务器以后,最先处理用户请求的是Java Web容器,比如Tomcat、Jetty这些,通过监听80端口,把HTTP二进制流封装成Request对象;然后是Spring MVC框架,把Request对象里的用户参数提取出来,根据请求的URL分发给相应的Model对象处理;再然后就是我们的应用程序,负责处理用户请求,具体来看,还会分成服务层、数据持久层等。原创 2023-05-20 10:07:33 · 99 阅读 · 0 评论 -
从0开始学大数据08-MapReduce如何让数据完成一次旅行?
上一期我们聊到MapReduce编程模型将大数据计算过程切分为Map和Reduce两个阶段,先复习一下,在Map阶段为每个数据块分配一个Map计算任务,然后将所有map输出的Key进行合并,相同的Key及其对应的Value发送给同一个Reduce任务去处理。通过这两个阶段,工程师只需要遵循MapReduce编程模型就可以开发出复杂的大数据计算程序。那么这个程序是如何在分布式集群中运行起来的呢?MapReduce程序又是如何找到相应的数据并进行计算的呢?答案就是需要MapReduce计算框架来完成。原创 2023-05-19 08:04:52 · 122 阅读 · 0 评论 -
从0开始学大数据07-为什么说MapReduce既是编程模型又是计算框架?
在Hadoop问世之前,其实已经有了分布式计算,只是那个时候的分布式计算都是专用的系统,只能专门处理某一类计算,比如进行大规模数据的排序。很显然,这样的系统无法复用到其他的大数据计算场景,每一种应用都需要开发与维护专门的系统。而Hadoop MapReduce的出现,使得大数据计算通用编程成为可能。我们只要遵循MapReduce编程模型编写业务处理逻辑代码,就可以运行在Hadoop分布式集群上,无需关心分布式计算是如何完成的。原创 2023-05-19 08:04:40 · 127 阅读 · 0 评论 -
从0开始学大数据06-新技术层出不穷,HDFS依然是存储的王者
我们知道,Google大数据“三驾马车”的第一驾是GFS(Google 文件系统),而Hadoop的第一个产品是HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性。如果我们将大数据计算比作烹饪,那么数据就是食材,而Hadoop分布式文件系统HDFS就是烧菜的那口大锅。厨师来来往往,食材进进出出,各种菜肴层出不穷,而不变的则是那口大锅。大数据也是如此,这些年来,各种计算框架、各种算法、各种应用场景不断推陈出新,让人眼花缭乱,但是大数据存储的王者依然是HDFS。原创 2023-05-19 08:02:07 · 128 阅读 · 0 评论 -
从0开始学大数据05-从RAID看垂直伸缩到水平伸缩的演化
经过前面的预习和上一期我们聊的,大数据技术主要是要解决大规模数据的计算处理问题,但是我们要想对数据进行计算,首先要解决的其实是大规模数据的存储问题。我这里有一个直观又现实的问题想问你:如果一个文件的大小超过了一张磁盘的大小,你该如何存储?我的答案是,单机时代,主要的解决方案是RAID;分布式时代,主要解决方案是分布式文件系统。其实不论是在单机时代还是分布式时代,大规模数据存储都需要解决几个核心问题,这些问题都是什么呢?总结一下,主要有以下三个方面。。原创 2023-05-19 08:01:44 · 126 阅读 · 0 评论 -
从0开始学大数据04-移动计算比移动数据更划算
大数据技术和传统的软件开发技术在架构思路上有很大不同,大数据技术更为关注数据,所以相关的架构设计也围绕数据展开,如何存储、计算、传输大规模的数据是要考虑的核心要素。传统的软件计算处理模型,都是“输入 -> 计算 -> 输出”模型。也就是说,一个程序给它传入一些数据也好,它自己从某个地方读取一些数据也好,总是先有一些输入数据,然后对这些数据进行计算处理,最后得到输出结果。但是在互联网大数据时代,需要计算处理的数据量急速膨胀。一来是因为互联网用户数远远超过传统企业的用户,相应产生了更大量的数据;原创 2023-05-19 07:59:18 · 175 阅读 · 0 评论 -
从0开始学大数据03-大数据应用领域:数据驱动一切
大数据出现的时间只有十几年,被人们广泛接受并应用只有几年的时间,但就是这短短几年的时间,大数据呈现出爆炸式增长的态势。在各个领域,大数据的身影几乎无处不在。今天我们通过一些大数据典型的应用场景分析,一起来看看大数据到底能做些什么,我们学大数据究竟有什么用,应该关注大数据的哪些方面。原创 2023-05-19 07:59:48 · 120 阅读 · 0 评论 -
从0开始学大数据02-大数据应用发展史:从搜索引擎到人工智能
上一期我们聊了大数据技术的发展历程,事实上,我们对大数据技术的使用同样也经历了一个发展过程。从最开始的Google在搜索引擎中开始使用大数据技术,到现在无处不在的各种人工智能应用,伴随着大数据技术的发展,大数据应用也从曲高和寡走到了今天的遍地开花。Google从最开始发表大数据划时代论文的时候,也许自己也没有想到,自己开启了一个大数据的新时代。今天大数据和人工智能的种种成就,离不开全球数百万大数据从业者的努力,这其中也包括你和我。原创 2023-05-19 07:58:58 · 143 阅读 · 0 评论 -
从0开始学大数据01-大数据技术发展史:大数据的前世今生
在正式落地谈技术之前,我先花一些篇幅给你讲讲大数据技术的发展史,因为这对于你理解技术来说至关重要。从我的角度而言,不管是学习某门技术,还是讨论某个事情,最好的方式一定不是一头扎到具体细节里,而是应该从时空的角度先了解它的来龙去脉,以及它为什么会演进成为现在的状态。当你深刻理解了这些前因后果之后,再去看现状,就会明朗很多,也能更直接地看到现状背后的本质。说实话,这对于我们理解技术、学习技术而言,同等重要。原创 2023-05-19 07:58:12 · 333 阅读 · 0 评论 -
Sqoop一些常用命令及参数
可以快速的使用SQL语句对关系型数据库进行操作,经常用于在import数据之前,了解一下SQL语句是否正确,数据是否正常,并可以将结果显示在控制台。记录了Sqoop job的元数据信息,如果不启动该服务,那么默认job元数据的存储目录为~/.sqoop,可在sqoop-site.xml中修改。将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中,如果导入的是Hive,那么当Hive中没有对应表时,则自动创建。首先来我们来介绍一下公用的参数,所谓公用参数,就是大多数命令都支持的参数。原创 2023-04-16 07:17:24 · 576 阅读 · 0 评论 -
HDFS shell常用命令整理
① 从本地上传到HDFS。②从HDFS下载到本地。原创 2023-04-16 07:16:15 · 78 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之项目知识点补充
在离线的数仓中,flume1 -> kafka -> flume2时,kafka会给数据加时间戳。而且这是时间戳默认为系统时间,数据写到hdfs时, 按照headers中的timestamp时间戳,进入到某一个文件夹中。原创 2023-04-16 07:13:52 · 173 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之电商数仓系统(二)
-- 1. 用户 a、统计流量相关的需求:使用设备id,如统计活跃用户 b、统计业务相关的指标,使用用户id,如统计下单数量--2. 新增用户 a、如果一个用户首次打开某APP,那这个用户定义为新增用户; b、卸载再安装的设备,不会被算作一次新增。 c、新增用户包括日新增用户、周新增用户、月新增用户。-- 3. 活跃用户 a、打开应用的用户即为活跃用户,不考虑用户的使用情况。 b、每天一台设备打开多次会被计为一个活跃用户-- 4. 周活跃用户 a、某原创 2023-04-16 07:13:12 · 337 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之电商数仓系统(一)
数据仓库和数据库的区别 1. 数据仓库: a、数据量特别的大,TB-PB级别 b、会保留历史数据 c、一般使用OLAP分析,(on-line analytical processing) 联机分析处理(聚合操作) ,多维分析 d、会有重复的数据 2. 数据库: a、数据量:GB-TB b、不保留历史数据 c、一般使用O原创 2023-04-16 07:12:11 · 1077 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Hive自定义函数
【代码】50万年薪大数据大佬学习总结之Hive自定义函数。原创 2023-04-16 07:10:46 · 47 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之HBase
- 1. Phoenix是什么?可以理解是HBase的开源 SQL 皮肤,可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据和查询HBase数据。-- 2. Phoenix中创建的表存储在HBase中。原创 2023-04-16 07:10:07 · 165 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Git
在idea中找到setting , 搜索git, 找到路径, 并关联github账号勾掉.idea。原创 2023-04-30 09:04:26 · 91 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Spark内核
- 1. application是在一个nodemanager中container中,并且在这个container中创建了一个driver线程 -- 2. 在一个nodemanager中,可以创建多个container,在每个container中,会创建ExecutorBackend对象,在这个对象中,会创建一个executor对象,在这个对象中一个线程池,一个线程用来处理driver发来的一个task,至于能同时执行多少个task,和executor中的core数量有关。原创 2023-04-15 08:37:30 · 122 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之SparkStreaming
-1. Dstream:DStream的操作和RDD类似,Transformations(转换)和Output Operations(输出) a、Transformations(转换):类似RDD的转换算子,还有一些比较特殊的原语:updateStateByKey() 、transform() 以及各种Window相关的原语b、Output Operations(输出):类似RDD的行动算子 --2.转换分为: a、无状态转换:计算结果完成以后,不会保存数据。原创 2023-04-15 08:36:20 · 100 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之SparkSQL
商品M | 40000 | 北京63.0%,太原10%,其他27.0% || 商品J | 92000 | 大连28%,辽宁17.0%,其他 55.0% |(img-oERNCO8W-1681518677461)]暂时先讲第一种,就是从数据源中创建,另外两种后续章节讨论。63.0%,太原10%,其他27.0% |原创 2023-04-15 08:33:43 · 139 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Spark之WordCount
【代码】50万年薪大数据大佬学习总结之Spark之WordCount。原创 2023-04-15 08:31:10 · 62 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Spark实战项目——电商指标统计
- 总结: 在写累加器的时候出现如下情况: 1. 在进行累加器处理时,使用了map算子,错误,应该使用foreach就行,挨个遍历数据 2. 更新 add 方法时,数据累加出现错误,最后执行结果为 0 ,发现是bean . clickCount + = 1 写成了 bean . clickCount + 1 3. 进行数据累加时,发现通不过,原来的是封装的HotCagetoryBean,属性均是val类型,不可变,需改为var类型。原创 2023-04-15 08:29:42 · 436 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Spark编程2
-1. 当前现状 一个Executor有多个core,所以可以同时执行多个task,当Driver需要传递一个数据量很大的对象时,由于每一个task中都含有这么一个变量,这样一来,数据在executor中就存在多份。--2. 导致问题: 1. 在Executor数据冗余 2. Executor内存可能溢出 3. 如果存在shuffle阶段,数据传输效率将会非常低。为了解决出现这种性能的问题,可以将数据独立出来,在executor的内存中只保留一份,防止shuffle操作。原创 2023-04-15 08:26:58 · 65 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Spark架构及编程
双Value:表示是两个RDD之间进行操作,类似sacla中集合的并集(union)、交集(intersect)、差集(diff)、拉链(zip)如下是执行器的参数,有执行器的个数、每个执行器的内存大小、每个执行器虚拟的CPU 的核数。阶段的个数 = shuffle依赖的数量 + 1。原创 2023-04-15 08:26:13 · 429 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Spark环境的安装
- 1. 什么是本地模式 不需要其他任何节点资源就可以在本地执行Spark代码的环境 . 我们之前在IDEA中运行的环境我们称之为开发环境,和本地环境还是不一样-- 什么是独立运行模式 1. standalone,表示资源调度器和任务调度均是使用Sqark自身的集群来运行。a、资源调度:master(Spark的调度者) , worker(Spark节点) b、任务调度:driver(驱动器) ,exerutor(执行器)原创 2023-04-15 08:25:35 · 136 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Scala总结终结篇
8.14 集合的一些运算8.14.1 并集 union8.14.2 交集 intersect8.14.3 差集 diff8.14.4 拉链 zip8.14.5 数据关联索引8.14.6 滑动 sliding8.15 reduce8.15.1 reduce8.15.2 reduceLeft8.15.3 reduceRight8.15.4 总结reduce、reduceLeft、reduceRight方法形参(均是一个函数,函数的形参如下原创 2023-04-15 08:24:43 · 71 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Scala总结下篇
可变数组,在scala.collection.mutable包下,当对数组进行操作时,数据可变,在一定数据数量的范围内,地址保持不变。Array是不可变集合,是在scala.collection.immutable包下。原创 2023-04-15 08:21:52 · 93 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Scala总结中篇
1. Scala中没有接口的概念 , 也就没有interface关键字。2. Scala可以将 "多个类中相同的特征" 从类里剥离出来,形成特殊的语法结构,称之为“特质” 3. 如果一个类,符合这个特征,那么就可以将这个特征(特质)混入到类中。原创 2023-04-14 12:15:58 · 106 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Scala总结上篇
什么是函数式编程?将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的功能按照指定的步骤,解决问题。函数和方法的区别-- 基本说明 1. 方法是java中的概念,函数是scala中的概念;2. scala是完全面向对象编程的语言,所以函数也是对象;3. 一般情况下,直接在类中封装的功能称为方法,其他地方均称为函数;4. 函数可以声明在任何地方。-- 使用上的差异: 1. 函数可以嵌套声明,但是方法不行;原创 2023-04-14 12:15:10 · 114 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Kafka总结
Kafka是一个分布式的基于模式的处理领域。订阅式模式:一对多的关系,一个生产者,数据存储在消息队列中,多个消费者均可从这个消息对列中获取数据,原创 2023-04-14 12:14:18 · 140 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之zookeeper总结
- 理解1) Apache一个分布式项目;2)是一个基于观察者模式设计的分布服务管理框架,负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦数据发生变化,则zookeeper通知观察者。-- zookeeper = 文件系统 + 通知机制。原创 2023-04-14 12:12:21 · 70 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Flume练习题
需求:使用Flume监听一个端口,收集该端口数据,并打印到控制台。原创 2023-04-14 12:11:32 · 80 阅读 · 0 评论 -
50万年薪大数据大佬学习总结之Flume
1) arvo: 用于Flume agent 之间的数据源传递 2) netcat: 用于监听端口 3)exec: 用于执行linux中的操作指令 4) spooldir: 用于监视文件或目录 5) taildir: 用于监视文件或目录,同时支持追加的监听 总结 ,3/4/5三种方式,最常用的是5,适合用于监听多个实时追加的文件,并且能够实现断点续传。原创 2023-04-14 12:08:15 · 85 阅读 · 0 评论