大数据时代,大家都在从数据中淘金。庞大的数据量隐藏着一些重要的信息,这些需要被挖掘,来辅助企业制定决策。
庞大的数据量如何转化为有价值的信息呢?
参考hadoop的设计, 使用分布式文件系统hdfs来存储超大规模的数据集,使用分布式计算框架来处理数据。
其中hdfs的设计 是一次写入,多次读取。
hdfs是如何存储大数据集的呢?
思想是 将大数据集 分布的存储在整个集群上。 通过一个主节点namenode来管理。 我们都知道,对数据的存储肯定是要落实的一件事情。
那么hdfs存储的数据的是什么呢? 又存储到哪里了呢?
存储的数据是 大数据集被分成的一个个相等的block,每个block通过网络copy到指定的节点。每个节点上可以存储适量的block。
那么一个block该往哪里存储呢? 这个是由namenode指定,并记录的。
namenode 就是负责管理这些存储信息,并搭建一个逻辑目录树的角色。 你存储需要跟namenode打招呼,下载也需要与namenode打交道。对于hdfs上的文件,只有namenode知道它们分布在那些节点上,也只有namenode知道节点上那些linux磁盘下的一个个block块是什么。
mapreduce将应用程式分发到每一个节点上,使用map处理对应的数据,并通过网络将map的结果汇总到reduce。
那么mapreduce的输入是什么?输出又是什么?