什么是hadoop?
Hadoop是一个开源的、可运行于大规模集群上的分布式计算平台,它实现了MapReduce计算模型和分布式文件系统HDFS等功能,在业内得到了广泛的应用,同时也成为大数据的代名词。借助于Hadoop,程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的存储与处理分析。
- HDFS是针对谷歌文件系统(Google File System,GFS)的开源实现,是面向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错性和可伸缩性,支持大规模数据的分布式存储,其冗余数据存储的方式很好地保证了数据的安全性。
- MapReduce是针对谷歌 MapReduce 的开源实现,允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效性。
hadoop生态系统
hadoop最核心组件是hdfs和mapreduce,但是还有一些其他的组件,比如Zookeeper、HBase、Hive、Pig、Mahout、Sqoop、Flume、Ambari等功能组件
HDFS
- HDFS具有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点
- HDFS在访问应用程序数据时,可以具有很高的吞吐率,因此对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。
Hbase
- HBase是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。HBase是针对谷歌BigTable的开源实现
- HBase与传统关系数据库的一个重要区别是,前者采用基于列的存储,而后者采用基于行的存储。HBase具有良好的横向扩展能力,可以通过不断增加廉价的商用服务器来增加存储能力。
mapreduce
- MapReduce是一种编程模型,用于大规模数据集(大于1 TB)的并行运算,它将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数——Map 和 Reduce 上
- MapReduce 的核心思想就是“分而治之”,它把输入的数据集切分为若干独立的数据块,分发给一个主节点管理下的各个分节点来共同并行完成;最后,通过整合各个节点的中间结果得到最终结果。