小飞象小飞象飞吖飞No.6

我们今天从分三步来讲Spark究竟是什么玩意。

首先从Hadoop开始,Apache Hadoop是一整个大项目群,今天我不全部讲,我就挑最重要的三点来讲。一是HDFS,一是MapReduce。

HDFS是什么玩意呢,就是一个基于分区的多机架分布式存储方案。怎么来理解这个设计,就比如你家有一串钥匙,里面有现金一百亿。然后说什么钥匙就让我来保管,要是钥匙全丢了房子就会爆炸,丢一把没事反正还要加上指纹识别才能开锁。卧槽!!!卧槽!!!我这种马大哈什么时候就把你家钥匙全丢了这样。我只好自己留一把钥匙,给我妈咪留一把钥匙,然后给远在美国的好基友留一把钥匙。这样我就能保证钥匙肯定不会丢了,难不成把地球炸了不成?HDFS就是这样,基于分区,把大文件切成小文件,每个小文件都自己留一份,同机架的留一份,不同机架的留一份,保存的时候要保存三份才算成功,这样就很好解决了数据丢失问题。

MapReduce又是个什么玩意呢?就是一个大任务切分小任务,小任务聚合出结果的东西。怎么来看这个东西呢。比如有一天哈,有一个土豪甩一百万在我脸上,跟我说我不管我就要喝混合果汁,要一百种水果各100g然后榨汁,给你五分钟,我不管我就要喝。立刻!!马上!!我了个乖乖,我又不是八爪鱼,我哪能干得了这活,要不起要不起。机智的小蕉,咦,有钱赚,脑袋亮。我先找200个人,两个人一组切一种水果,然后再两两一起榨汁,最后倒在一个大盆子不就完成了吗?哎呀呀,土豪很快喝到了果汁,但是只给了我九十九万,我特么。。。。敲鸡开心!!!!!!敲黑板敲黑板,MapReduce就是基于map切分和reduce聚合的将大任务切分成小任务然后分布式执行的技术。

好,那么问题来了,Hadoop要真真这么好,估计也就没你Spark什么事了。Hadoop有什么缺陷呢?缺陷就是Hadoop的所有计算都将中间结果放到HDFS中,也就是磁盘中,这效率就很慢了,执行起来一个任务几个小时那还是蛮正常的。这才有了Spark嘛,Spark是一门基于内存进行MapReduce计算的一门大数据技术,跟Hadoop的有什么差别呢?没什么差别,就是把中间结果从分布式硬盘中放到分布式内存中而已。那么,可以做什么事情呢?

可以浪啊!!!这么快的速度你还不浪!!!时间就是金钱,这妥妥就是生钱机器啊!!!一一得一,二三十八,三七八十三,可以赚八十三亿!!!

啪!好好说话。

好咯,Spark可以做报表,可以做biao    biao。可以使用SparkSQL进行访问Hive库,然后把结果文件生成到HDFS中。你问我Hive是什么??就是踩在HDFS上的一个分布式关系型数据库呗。还能做什么?可以做实时流式计算。就是使用SparkSteaming进行流式计算。嗯就是去麦当当吃八分堡,点餐了以后就乖乖排队等餐的生产者消费者模式就对了。还能搞机器学习喔,使用Spark MLLib进行数据挖掘,就是什么线性回归K均值聚类逻辑回归支持向量机听起来很高端其实也就那么回事。可以做图计算,使用Spark GraphX进行图计算。嗯哈图遍历直通图PageRank。

最后的最后,说说Spark核心中的核心->RDD(Reilient Distributed DataSets)弹性分布式数据集。

敲黑板。核心概念,跟我读:不可变,可追溯,一切皆RDD。

在Spark中一切的基础都是RDD,文件是个RDD,中间过程是个RDD,数据库数据是个RDD,而且是不可变的,而且有个parents可以知道RDD怎么来的。数据集好理解,弹性分布式怎么理解呢,RDD没有大小限制,可以在内存和硬盘切换,失败可以回溯,失败可以重跑,所以是弹性的。分布式嘛就是分布在多台机器上也就这样,但是RDD有那么好得到吗。噗,怎么可能。RDD只能创建和转换而来。创建嘛就不说了,就是从文件中来嘛。转换呢就是从其他RDD转换而来。可以分两种算子,叫transform和action。我告诉你RDD很懒得!!RDD在transform的时候呢,是不进行计算的,只是定义了RDD的依赖,只有在action的时候才实际去计算。

好了我要去吊打小朋友了,就酱。

0?wx_fmt=jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值