Hadoop入门

张开发
2026/4/5 17:25:19 15 分钟阅读

分享文章

Hadoop入门
为什么要使用Hadoop1数据量增长带来的问题存储问题: 单机难以存储PB级数据处理问题: 海量数据的计算处理瓶颈分析问题: 需要高效分析工具提取价值扩展问题: 数据快速增长时的系统扩展方案2单台机器处理能力的局限性硬件限制: 通过增加单机存储、CPU、内存等方式很快达到瓶颈性能瓶颈: 数据量持续增长时单机性能完全跟不上需求3分布式系统的提出与问题解决方案: 采用多台计算机分布式处理现存问题:复杂性: 系统扩展和管理复杂度高可靠性: 容易出现错误性能: 处理速度仍不够理想Hadoop起源历程1Doug Cutting开发Nutch项目时发现需求背景: 2002年开发网络爬虫项目Nutch时发现: 需要可靠的分布式存储和处理框架特点: 处理互联网爬取的海量数据需求2Doug Cutting借鉴谷歌论文构建分布式平台关键影响: 2003年谷歌发布的GFS和MapReduce论文技术基础: 基于论文思想构建MR( MapReduce)和NDFS演进关系: 这些成为后来HDFS和MapReduce的前身3Hadoop的正式产生与阿帕奇项目启动命名起源: 2006年从Nutch项目中分离并命名为Hadoop雅虎支持: 提供资源支持Hadoop发展Apache项目: 同年成为Apache顶级项目技术体系: 开始支持MapReduce和HDFS独立发展Hadoop在百度和淘宝的应用百度应用2007年开始使用Hadoop进行离线处理目前约80%-90%的Hadoop集群用于日志处理淘宝应用2008年投入研究Hadoop系统代号云梯当时规模达1000多台机器日处理数据量500TBHadoop生态圈与传统工具的区别相比Tomcat、MySQL等单一功能工具Hadoop包含大量组件形成完整生态圈可完成数据管理、并行处理等多样化任务组件构成由数据存储(HDFS/HBase)、数据集成(Sqoop)、数据处理(MapReduce)和专门分析工具(Hive/Pig)等组件组成学习视角需要从生态圈整体角度学习而非单独研究HDFS和MapReduce两个核心组件数据处理层Pig/Hive提供Pig Latin和HQL高级查询语言简化MapReduce编程复杂度Sqoop实现HDFS与关系型数据库间的双向数据转换工具Flume日志监控与传输系统协调管理ZooKeeper集群协同管理组件淘宝Dubbo等系统底层采用Oozie作业调度工具可调度MapReduce/Hive脚本执行存储与计算HBase基于HDFS的NoSQL数据库支持列式存储MapReduce批处理计算框架YARNHadoop2.x引入的资源管理框架基础层HDFS分布式块存储基础Tachyon可选内存分布式缓存(非默认组件)资源调度YARN/Mesos资源管理框架Hadoop默认使用YARN计算框架MapReduce批处理模型TezDAG计算模型Spark内存计算模型(可基于YARN运行)上层工具Hive/Pig转换为MapReduce执行Mahout/MLlib机器学习框架(分别支持MapReduce和Spark)GraphX/Streaming图计算与流计算框架辅助系统Kafka实时消息队列Ambari集群安装部署工具Phoenix为HBase提供SQL接口Hadoop基本组件介绍1. Hadoop核心组件基础架构:HDFS: 分布式多备份文件系统提供可靠存储MapReduce: 分布式计算模型处理大规模数据集HBase: NoSQL数据库支持实时读写访问高层应用:Hive: 使用类SQL语言(HQL)的数据仓库工具Pig: 采用Pig Latin语言的数据流处理工具(课程不重点讲解)辅助工具:Zookeeper: 集群协调管理服务Oozie: 工作流调度框架Sqoop/Flume: 数据导入工具(Sqoop用于关系型数据库Flume用于日志等流数据)2. Hadoop版本信息Apache社区版:特点: 完全开源免费迭代快(年更新多次)需自行解决组件兼容问题适用场景: 需要高度定制化的开发环境CDH(Cloudera版):优化: 合并社区补丁优化性能并解决组件兼容问题版本区别:个人免费版支持≤50节点集群企业版需付费支持更大规模集群Hortonworks版:特色: 增强Hive的ODBC驱动性能现状: 国内使用较少主流选择为Apache或CDH3. Hadoop企业级应用四层架构:数据存储层:源数据: 业务数据库/日志/用户行为数据等外部数据中间数据: MapReduce/Hive等处理后的结果数据导入工具: Sqoop(关系型数据)、Flume(流式数据)数据处理层:核心组件: Oozie调度MapReduce/Hive任务输出: 生成供其他模块使用的中间数据实时访问层:访问模式: 单条数据访问(HBase原生支持)和数据集访问安全层(可选):功能: 数据权限控制防止未授权操作4. Hadoop企业级应用图数据流向:外部数据源→HDFS/HBase存储→MapReduce/Hive处理→实时应用接口组件协作:Oozie协调计算任务HBase支持实时查询处理结果通过API提供给终端用户或其他应用

更多文章