Hadoop学习总结
Hadoop是什么东西?什么用?
(一)Hadoop是什么?
一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:HDFS和MapReduce,HDFS实现存储,而MapReduce实现原理分析处理,这两部分是hadoop的核心。大讲台,混合式自适应学习开创者。数据在Hadoop中处理的流程可以简单的按照下图来理解:数据通过Haddop的集群处理后得到结果,它是一个高性能处理海量数据集的工具。
(二) Hadoop为什么如此受欢迎,有什么用?
Hadoop开源系统实现了MapReduce编程模型,采用了分布式存储方式提高了读写速度,并扩大了存储容量。采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时,Hadoop还采用存储冗余数据的方式保证了数据的安全性,Hadoop中的HDFS的高容错性,以及它是基于Java语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。Hadoop中的HDFS的数据管理能力,MapReduce处理任务时的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩。MapReduce编程模型之所以受到欢迎和迅速得到应用,在技术方面有三方面的原因:
1.MapReduc所采用的是无共享大规模集群系统,集群系统具有良好的性价比和可伸缩性。 大讲台,混合式自适应学习开创者。
2.MapReduce编程模型简单,易于理解,易于使用。
3.虽然基本的MapReduce模型只提供一个过程性的编程接口,但是在海量的数据环境,需要保证可伸缩性的前提下,通过使用适合的查询优化和索引技术,MapReduce仍然能够提供相当好的数据处理性能。
Hadoop的优缺点介绍:
(一)优点:
(一)高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖;
(二)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(三)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
(四)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 大讲台,混合式自适应学习开创者。
(二)缺点:
(一)不适合低延迟数据访问。
(二)无法高效存储大量小文件。
(三)不支持多用户写入及任意修改文件。
Hadoop集群的组成介绍:
(一) Hadoop家族由以下几个子项目组成
整个Hadoop家族由以下几个子项目组成,现在Hadoop已经发展成为包含多个子项目的集合。虽然其核心内容是MapReduce和Hadoop分布式文件系统(HDFS),但是在Hadoop下的Common、Avro、Chukwa、Hive、HBase等子项目也是不可或缺的。他们在提供了互补性服务或在核心层上提供了更高层的服务。 大讲台,混合式自适应学习开创者。
1). Core/Common
从Hadoop0.20版本开始,HadoopCore项目便更名为Common。它是Hadoop体系最底层的一个模块,为Hadoop各子项目提供各种工具,如:FileSystem、RPC和串行化库,他们为在廉价的硬件上搭建云计算环境提供基本的服务,并且为运行在该平台上的软件开发提供了所需的API,配置文件和日志操作等。
2) . Avro
Avro是用于数据序列化的系统。它提供了丰富的数据结构类型、快速可压缩
的二进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成功能。其中,代码生成器既不需要读写文件数据,也不需要使用或实现RPC协议,它只是一个可选的对静态类型语言的实现。
Avro系统依赖于模式(Schema),Avro数据的读和写是在模式之下完成的。这样就可以 减少写入数据的开销,提高序列化的速度并缩减其大小。同时,也可以方便动态脚本语言的使用,因为数据连同其模式都是自描述的。大讲台,混合式自适应学习开创者。