初学大数据
1.什么是大数据
所谓大数据,字面含义就是海量的数据,但不仅仅这一点,总结来说,就是在短时间快速的内产生的海量的多种多样的有价值的新数据
关于大数据的技术大概分为三类:
1)分布式存储
2)分布式计算
3)机器学习
2.什么是分布式存储
假设有这么一个场景,有一批PB级的数据需要存储,显然以目前单台服务器的存储能力很难胜任这个任务,这时候就需要分布式存储,有多台服务器来共同完这个任务
存储数据时,如果完整的一段数据在一台服务器上刚好只能存储部分,又该怎么做?
拆分的话,以后如果需要这段数据这又涉及到数据的拼接问题,所以我们在存放数据时就设置存储单元为一段完整的数据,例如一部完整的视频,一台服务器如果不能完整的存放一个数据单元,那就将其全部交给另一台服务器完成。
现在解决了存储的问题,那么还有一个问题,怎么找,如果数据的类型有很多种,而你在某一时刻,需要其中一种类型的数据,这时候该如何查找?
显然遍历的方式效率过低,肯定行不通,那么就需要提前记录该类数据得到位置,为了更加简化我们自身的工作,我们将这个记录的工作交给代理完成,代理可以帮我们记录数据的位置,上传时间和权限等信息,当我们需要时只要通过代理去获取地址,然后直接访问即可
最后存储和访问的问题解决了,就剩下备份了,这个问题就不再深究了
总结来说就能得出HDFS的基本模型
NameNode:
接收客户端请求
管理元数据
管理集群
DataNode:
存储源数据
接收客户端的读请求
另外由于NameNode的元数据存放在内存中,这显然在断电或者重启后会涉及到数据的丢失问题,所以我们需要将数据保存在硬盘上,为了减小NameNode的负载,我们再添加一个NameNode的助手
SeconaryNameNode:持久化内存中的元数据