随着智能化、万物互联时代的快速发展,数据量开始暴增,一方面我们需要开始思考如何高效可靠地存储海量的数据,另一方面我们还需要对这些数据进行分析处理,以获得更多有价值的信息。这时期我们就需要用到Hadoop了。 Hadoop是Apache软件基金会下一个开源分布式计算平台,以hdfs(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是资源调度框架,能够细粒度的管理和调度任务,还能够支持其他的计算框架,比如spark)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。hdfs的高容错性、高伸缩性、高效性等优点让用户可以将Hadoop部署在低廉的硬件上,形成分布式系统。 Hadoop生态除了基础Hadoop,发展到今天Hadoop已经拥有非常完善和庞大的开源生态圈:HDFS提供文件存储,YARN提供资源管理,在此基础上,进行各种处理,包括mapreduce、Tez、Sprak、Storm等等,以满足不同要求的数据使用场景。 HDFS架构HDFS架构图 HDFS采用了主从结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成,其中NameNode作为主服务器管理文件系统的命名空间和客户端对文件的访问操作,而DataNode则负责管理存储的数据。HDFS底层数据被切割成了多个Block,而这些Block又被复制后存储在不同的DataNode上,以达到容错容灾的目的。 MapReduceMapReduce是谷歌公司的核心计算模型,它将运行于在规模集群上的复杂并行计算过程高度地抽象为两个函数过程:Map和Reduce("Map(映射)"和"Reduce(归约)")。map函数以 key/value 对作为输入,产生另外一系列 key/value 对作为中间输出写入本地 磁盘。MapReduce 框架会自动将这些中间数据按照 key 值进行聚集,且 key 值相同的数据被统一交给 reduce函数处理。reduce函数则以 key 及对应的 value 列表作为输入,经合并 key 相同的 value 值后,产 生另外一系列 key/value 对作为最终输出写入HDFS。 Hive与Hbase的区别在Hadoop基本生态中,有两个组件得说说他们的区别,它们就是hive和hbase。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。HBase是Hadoop的数据库,一个分布式、可扩展、大数据的存储。
|
|
来自: 昵称66099312 > 《待分类》