hadoop入门(1)——hadoop概述
一、hadoop生态系统特点
开源、社区活跃、涉及分布式存储和计算的整个生态系统、已得到企业界验证。
hadoop1.0与2.0版本的比较:
1.0包含HDFS+MapReduce。
2.0包括HDFS+YARN+MapReduce+Others
主要区别在于引入了YARN层。集群资源管理层。
二、hadoop介绍(以2.0版本为主)
1、分布式存储系统HDFS
分布式存储系统
提供了高可靠性、高扩展性和高吞吐率的数据存储服务。
具备线性扩展的能力。
源自于Google的GFS论文,HDFS是GFS的克隆版。
HDFS具有良好的扩展性、高容错性(通过数据冗余来实现)、适合PB级以上海量数据的存储。
基本原理:
将文件切分为等大的数据库,存储到多台机器上(分布式文件存储系统)
将数据切分、容错、负载均衡等功能透明化。
可将HDFS看成一个容量巨大、具有高容错性的磁盘。
namenode、datanode、zookeeper。
应用场景:
海量数据的可靠性存储。
数据归档。
HDFS架构图(待补充):master-slave架构
2、资源管理系统YARN(Yet Another Resource Negotiator)
负责集群资源的统一管理和调度。是hadoop2.0新增的系统。
使得多个计算框架可以运行在一个集群中。
具有良好的扩展性、高可用性。
自带了多种多用户调度器,适合共享集群环境。
YARN调度图(待补充)
YARN 架构图(待补充):master-slave结构。
3、分布式计算框架MapReduce
分布式计算框架。易于编程、高容错性、高扩展性。
源自于Google的MapReduce论文。
具有良好的扩展性、高容错性(某个节点失败调度到其他节点)、适合PB级以上的海量数据的离线处理。
架构图(待补充)
三、hadoop生态系统
1.0生态系统图。
2.0生态系统图。
HDFS、MapReduce、Hive(数据仓库)、pig(工作流引擎)、mahout(数据挖掘库)、
Oozie(作业流调度系统)、Hbase(分布式数据库)、sqoop(数据TEL工具)、
Flume(日志收集)、Zookeeper(分布式协调服务)、Ambari(安装部署工具)
YARN、Tez(DAG计算)、Spark(内存计算)、Hive2、Pig2、shark
hive:基于MR的数据仓库,是Facebook开源的。Hive定义了HQL查询语言。通常用于离线数据处理。是MR的语言翻译器。
应用于日志分析,统计网站的PV\UV。
海量结构化数据离线分析。
低成本进行数据分析(因为不需要写MR程序)
Hive架构图。
pig:Yahoo开源,目的是提供一种基于MR的数据分析工具。定义了Pig Latin数据流语言。
Mahout:数据挖掘库,基于hadoop的机器学习和数据挖掘的工具。实现了很多聚类、分类算法。
HBase:源自于Google的Bigtable论文。高可用、高性能、面向列、高扩展性。
Zookeeper:源自于Google的Chubby论文。解决分布式环境下数据管理问题:
统一命名、状态同步、集群管理、配置同步。
Sqoop:数据同步工具。支持多种数据库(MySQL、DB2等),连接hadoop和传统数据库的桥梁。
Flume:cloudera开源的日志收集工具。将日志导入到hadoop中。
Oozie:作业流调度系统。
不同作业之间存在依赖关系(DAG),周期性作业、定时执行的作业、作业执行状态监控与报警。
四、hadoop生态系统版本衍化
Apache hadoop、CDH(推荐)、HDP。