2.1概述
简介:
Hadoop为用户提供了系统底层细节透明的分布式基础架构。
Hadoop的核心是分布式文件系统(HDFS)和MapReduce。
特性:
高可靠性采用冗余数据存储方式(重复存几份)
高效性采用分布式存储和分布式处理两大核心技术,高效处理PB级数据
高可扩展性可以高效稳定的运行在廉价的计算机集群上,可以扩展数以千计的计算机节点
高容错性采用冗余数据存储方式,并且能够将失败的任务重新分配
成本低采用廉价的计算机集群
运行在Linux平台上
支持多种编程语言
版本:
Apache Hadoop版本分为两代。第二代与第一代使用不同的架构。
商业公司还有各种Hadoop的发行版
2.2Hadoop生态系统
Hadoop1.0时代的生态系统
图片发自简书App
Hadoop2.0时代的生态系统
图片发自简书App
HDFS(分布式文件系统)
是Hadoop项目的两大核心之一,HDFS具有处理超大数据,流式处理,可以运行在廉价的商用服务器上,对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。
HBase(分布式数据库)
提供高可靠性,高性能,可伸缩,实时读写,分布式的列式数据库`,一般采用分布式文件系统(HDFS作为底层数据存储)
Mapreduce(分布式计算框架)
MapReduce是一种编程模型,用于大规模数据集的并行运算,它将复杂的,运行于大规模集群上的并行计算过程高度的抽象到两个函数Map和Reduce上。(核心思想就是"分而治之",他把输入的数据集切分为若干独立的数据块,分发给一个主节点管理下的各个分界点来共同并行完成;最后整合各个节点的中间结果得到最终的结果。)
Hive(数据仓库)
一种基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理,特殊查询和分析存储。
它提供了类似于数据库SQL语言的查询语句——Hive QL,可以实现简单的MapReduce统计,Hive本身可以讲Hive语句转化成为MapReduce任务进行)
Pig(数据流处理)
一种数据流语言和运行环境,适合于使用Hadoop和MapReduce平台查询大型的非结构化数据集。
一种相对简单的语言,可以执行语句,当我们需要在大型数据集中搜索满足给定的搜索条件时,采用pig要比MapReduce有明显的优势,前者只需要编写一个简单的脚本在集群中自动并行处理与分发,而后者则需要编写一个单独的MapReduce应用程序。
Mahout(数据挖掘库)
提供一些可扩展的机器学习领域经典算法的实现,帮助开发人员创建智能应用程序。
Zookeeper(分布式协作服务)
高效可靠的协同工作系统,提供分布式锁之类的基本服务(统一命名服务,状态同步服务,集群管理和分布式应用配置项的管理),用于构建分布式应用,减轻分布式应用程序所承担的协调任务
Flume(日志收集)
日志采集,聚合和传输的系统
支持在日志系统中定制各类数据发送方,用于收集数据;提供对数据的简单处理并写道各种数据接收方的能力。
Sqoop(数据库ETL)
SQL to Hadoop的缩写,用于在Hadoop和关系数据库之间交换数据。
主要通过JDBC和关系数据库进行交互。
Ambari(安装,部署,配置和管理工具)
图片发自简书App