Hadoop
Hadoop简介
- Hadoop是Apache的一个开源项目,使用JAVA语言开发,提供接口给用户调用,无需关注底层实现,且支持多种编程语言;
- 两大核心:
HDFS:分布式存储,解决海量数据存储问题
MapReduce:分布式并行处理,解决海量数据处理问题 - 应用现状
Hadoop版本
版本 | 版本号 |
---|---|
Hadoop1.0 | Hadoop0.20.x,Hadoop0.21.x,Hadoop0.22.x |
Hadoop2.0 | Hadoop0.23.x,Hadoop2.x |
- Hadoop1.0中MapReduce需要负责“数据处理分析”和“集群资源调度(带宽、CPU等资源调度)”,这导致MapReduce效率低下
- Hadoop2.0将调度管理功能划分出来,整合成新模块“YARN”,由“YARN”框架来完成资源调度管理功能,MapReduce只负责数据分析管理功能(YARN框架可支持MapReduce、Spark、Storm等框架)
- Hadoop2.0中,HDFS解决1.0中的可扩展性差的问题,提出“NN Federation”、“HA”技术(NN Federation:名称节点,提供数据目录服务,可设置多个,进行分区管理;HA:热变动机制)
Hadoop项目结构
2.0版本框架图
- MapReduce:离线批处理计算,基于磁盘计算
- Tez:将MapReduce作业进行分析、优化,构建成有向无环图
- Spark:基于内存计算,效率高于MapReduce
- Hive:数据仓库,用于企业数据分析,可以支持SQL语句
- Pig:流数据处理,提供类似SQL查询的语言Pig Latin,轻量级脚本语言
- Oozie:工作流管理系统
- Flime:日志收集(美团大数据架构)
- Sqoop:用于在Hadoop与传统数据库之间进行数据传递(关系型数据库到HDFS、HBase、Hive互导)
Hadoop企业应用
- Hortonworks,Cloudera(CDH),MapR
- 考虑因素:
是否开源(免费),是否有稳定版,是否经实践检验,是否有强大社区支持