一、简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
二、HDFS
Hadoop Distributed File System,简称HDFS,是个分布式文件系统,是hadoop的一个核心部分。HDFS有这高容错性(fault-tolerent)的特点,并且设计用来部署在低廉价的(low-cost)的硬件上,提供了高吞吐量(high-throughout)来访问应用程序的数据,适合那些有着超大数据集(largedata set)的应用程序。HDFS开始是为开源的apache项目nutch的基础结构而创建的。
三、MapReduce
Mapreduce是一个编程模型,一个处理和生成超大数据集算法模型的实现,简单概括就是“数据分解、并行计算、结果合并“。Mapreduce最大的优点是它简单的编程模型,程序猿只需根据该模型框架设计map和reduce函数,剩下的任务,如:分布式存储、节点任务调度、节点通讯、容错处理和故障处理都由mapreudce框架来完成,程序的设计有很高的扩展性。
四、生态圈
Pig:Hadoop上的数据流执行引擎,由Yahoo开源,基于HDFS和MapReduce,使用Pig Latin语言表达数据流,目的在于让MapReduce用起来更简单。
Sqoop:主要用于在Hadoop和传统数据库进行数据互导。
ZooKeeper:分布式的,开放源码的分布式应用程序协调服务。
Flume:分布式、可靠、高可用的服务,它能够将不同数据源的海量日志数据进行高效收集、汇聚、移动,最后存储到一个中心化数据存储系统中,它是一个轻量级的工具,简单、灵活、容易部署,适应各种方式日志收集并支持Failover和负载均衡。
Hive:构建在Hadoop之上的数据仓库,用于解决海量结构化的日志数据统计,定义了一种类SQL查询语言。
YARN:资源协调者、Hadoop 资源管理器,提供统一的资源管理和调度。
Impala:基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata。
Solr:基于Lucene的全文检索引擎。
Hue:开源的apache hadoop UI系统,基于Python Web框架Django实现的。通过使用Hue可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据。
Oozie:基于工作流引擎的服务器,可以在上面运行Hadoop任务,是管理Hadoop作业的工作流调度系统。
Storm:分布式实时大数据处理系统,用于流计算。
Hbase:构建在HDFS上的分布式列存储系统,海量非结构化数据仓库。
Spark:海量数据处理的内存计算引擎,Spark框架包含Spark Streaming、Spark SQL、MLlib、GraphX四部分。
Mahout:Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现。
dirll:低延迟的分布式海量数据(涵盖结构化、半结构化以及嵌套数据)交互式查询引擎,使用ANSI SQL兼容语法,支持本地文件、HDFS、HBase、MongoDB等后端存储,支持Parquet、JSON、CSV、TSV、PSV等数据格式。
Tez:有向无环图的执行引擎,DAG作业的开源计算框架。
Shark:SQL on Spark,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业。