一、什么是Hadoop?
Hadoop是Apache下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础结构。
Hadoop包含HDFS,MapReduce,Pig,ZooKeeper等子项目的集合,用于分布式计算
二、为什么要用Hadoop?
由于现在信息量速度增长快。信息里又积累着大量的数据,包括个人数据和工业数据。每年产生的数字信息将会有1/3的内容留在云平台中,或者由云平台处理。我们需要对这些数据进行分析和处理,获取更多有价值的信息。如何搞笑的存储和管理这些数据,如何分析这些数据,就可以选用Hadoop系统,处理大数据时,采用了分布式存储方式,提供了读写速度,扩大了存储容量。采用MapReduce来整合分布式文件系统上的数据,保证分析和处理数据的高效,而且Hadoop采用存储冗余数据的方式保证了数据的安全性。
三、HDFS
HDFS有高容错特性,以及它基于Java语言开发,可部署在低廉的计算机集群中,而且不限某个操作系统,它基于Java语言开发。HDFS的数据管理能力,MapReduce处理任务的高效率。
四、Hadoop项目及结构
核心内容是MapReduce和HDFS,但是Common,Avro,Chukwa,Hive,HBase等项目。
Pig | Chukwa | Hive | HBase |
MapReduce | HDFS | ZooKeeper | |
Core | Avro |
1、Core/Common:为Hadoop其他子项目提供支持的常用工具,主要包括FileSystem,RPC(Remote Procedure Call远程过程调用协议)和串行化库。
2、Avro:是用于数据序列化的系统。提供了丰富的数据结构类型,快速可压缩的二进制数据格式,可存储持久性数据的文件集。它依赖于模式Schema,Avro数据读和写是在模式下完成,这样可以减少写入数据的开销,提高序列化的速度
3、MapReduce:是一种编程模型,用于大规模数据集的并行运算。Map映射,Reduce归约。MapReduce执行时先指定一个Map映射函数,把输入键值对映射成一个新的键值对。经过一定的处理后交给Reduce,Reduce对相同Key下的所有Value进行处理后再输出键值对作为最终的结果。
核心是HDFS和MapReduce,Hadoop的体系结构主要通过HDFS来实现对分布式存储的底层支持,通过MapReduce来实现对分布式并行任务处理额的程序支持。
4、HBase是一个分布式数据库
5、Hive是建立在Hadoop上的数据仓库基础架构。