分布式存储和分布式计算的结合

再介绍了之前的hadoop以及spark的相关组件之后,就像一辆汽车一样,只有将所有的组件进行组装之后他才可以正常的上路,在公路上疾驶,今天我们就将之前的组件进行一个简单的安装

首先是油箱--分布式存储

在当今社会,数据量越来越大,就像女孩子看电视剧一样,我把你喜欢的电视剧、电影等等的视频资源全给你,一共10PB,只有一次的存储机会,那我们应该怎么存储呢?赵本山说过把一只大象存入冰箱一共需要三不,打开冰箱,放入大象,关闭冰箱,同样的,存数据也分为这么三个步骤,打开电脑,数据存磁盘,关闭电脑,但是存在一个问题,真的可以把大象放入到冰箱中吗?相对于10PB的影视资料来说,现在的个人设备是很难完成这个任务的,但是女孩子又舍不得这些帅哥怎么办,那么女生就会找几个自己的好闺蜜,把这10PB的电视剧按照类型进行分类,然后每个闺蜜的电脑上放几部,然后存放所有的数据,这就是分布式的思维,我们将大文件切割成一个个的小文件,然后部署多台服务器,每台服务器上存储一点,也就完成了数据的存储

数据存储完了之后,如果有一天想看电视剧了,可是不知道那个闺蜜的电脑上存储着我要看的电影,只能每个人的打电话去问他那里有什么电影,浪费时间跟精力,等找到之后也就没有想看的心情了,那怎么办呢?那我就可以找一个人,记录一下哪一部电视剧放在谁那里,这就是管理员,它会存储元数据(小文件的位置,大数据切割了多少个小文件),那管理员为了更好的管理就提出了两个方案,一个是直接找管理员要数据,二就是找管理员要地址,自己通过地址去取数据,大家想了一下,发现找管理员要数据,还要等管理员去相应的地址拿数据回来,浪费时间(经过两次磁盘IO,效率很低),第二种方案我拿到地址之后可以直接去那个闺蜜哪里拿数据,节约了时间,提高了效率,这也就是Hadoop中的HDFS

HDFS特点:1、分块存储 就可以多进程多线程的处理数据

  1. 禁掉一些功能,防止HDFS占用过多资源,比如默认块的大小128M,在成功存储之后不能在进行修改
  2. 对外暴漏出数据的位置
  3. 数据的冗余,使得数据更加的安全 数据会进行相应的备份

 

有了一个性能优越的油箱提供强劲的能源支撑之后,我们也要有一个完美的发动机去提供动力---分布式批处理远离概览

当我们将海量的数据存储到我的数据库了之后,我们会对数据进行一个相应的处理,从这些数据中获得我们需要的信息,然后制定我们自己的计划,去进行自己的任务的规划,就像存储的时候,当我将这10PB级别的数据存储到我各个闺蜜的电脑上之后,我要选择性的找一些自己喜欢的帅哥美女出现的镜头,那么我找的时候自己在慢慢的找可以吗?肯定不可以,会消耗我太多的时间了,当然了,为了看美女我也没什么太大的办法,那应该怎么办呢?这就是分布式批处理的概念了,那批处理就是对一批数据进行处理

举一个例子讲解一下:比方说从前有三座山,山上没有庙,但是有三种不同的树,山下没有愚公,但是有三家不同的工厂,我们的三个工人要去砍树有两种不同的方法,要么工人去山上,要么把山搬到工人家里去,处于人性化的考虑还是选择工人去山上吧,这就是我们大数据的计算原则:计算向数据移动,计算就是工人,数据就是树。工人开始砍树,砍完树之后要把树运到山下的公司进行制作,但是有个问题,一棵树在制作的时候会产生废角料,这些废料在运输的过程就是我们的所谓的垃圾,他局势产生不必要的资源占用,增加成本,那我们是不是可以在源头就进行相应的整理呢?我们的工人在把树木砍倒之后为了多赚点钱,就地把树木加工成一个个的零部件,然后把零部件进行运输,但是过了一段时间之后,工厂主还不满足,他觉得我们都已经加工成组建了,他为了一次多运输几个节约运输成本,让我们啊零部件的一部分进行组装,组装成半成品和零部件然后进行运输,这也就是我们分布式计算的原理,在源头的时候就把数据进行相应的梳理、分类,然后传输到他们该去的节点。而因为每个山头上的树木是种类都有的,我们再发送到各个工厂的时候会进行一次重新分发和聚类,而这些分发和聚类就是shuffle的过程,shuffle会存在数据的网络传输以及重新洗牌的过程。

程序来源于生活,就像砍树,我们在计算机程序方面,也会遇到相应的问题,例如计算如何发送到节点,计算的不均衡,网络传输的问题,这些问题不就是也会在砍树的时候遇见的问题吗,但是,现在砍树有一个完整的解决体系一样,我们也有一个自己的计算框架,这就是MapReduce、Spark等技术。

为了更好的提供动力来源,由涡轮发动机和普通发动机两种概念,而涡轮发动机就是我们的分布式流式处理

大家肯定有过出游的经历,那我们是怎么选择的呢,坐公交还是自己开车,其实在大数据中也有相应的公交车和开车,公交车就算是我们的批处理,他会积攒一批人然后在一起出发,而开车就是我们的流式处理,自己坐上车嘀嘀一声就出发了,可以去自己想去的地方,我想大家可能会说了,那现在不是还有滴滴嘛,这就是在流式处理之中的差别了,我们自己开车就是实时的流式处理,而滴滴就是一个微批的流式处理,他跟批处理的区别在于等待时间的一个区别,微批处理的时间间隔几乎是可以进行忽略的,他积攒一小点时间的数据量然后进行处理

那么现在有这么两类出行方式了,那么人们出游会选择哪一种方式呢,那肯定是分布式流失处理啊,自己开车出去玩可以没有时间的限制和地域的限制,在现在的公司也是这样的,公司为了能够及时的掌握数据信息,采用分分布式流式处理的延迟更低,可以更好地及时掌握价值,对未来进行调控和检测

就像现在车已经普及了一样,我们也有了现成的框架,这就是我们之后要介绍的SparkStreaming、Storm以及Flink

若想更好的进行交流可添加我们的qq群859121793

微信公众号:刚哥人工智能1000集进行交流

你可能感兴趣的:(火花,HADOOP)