当前位置:文档之家› hadoop架构介绍

hadoop架构介绍

Hadoop架构介绍
背景:Байду номын сангаас时代的变革
应用的挑战
• 海量数据
应用的挑战
• 成本
应用的挑战
• 变化的业务需求
分布式解决方案?
变革
• 分布式编程已成为必备的技能 • 编程的对象:单机vs集群? • 全新的系统栈
– 存储 – 调度 – 计算 –…
目标
• 结束本次讲座时,你可以
– 熟悉分布式系统、Hadoop的背景知识 – 理解MapReduce编程模型 – 使用Hadoop
• 思考题:MapReduce的数据偏斜问题
MapReduce编程模型
• 总结
Hadoop
• 开源分布式系统实现 • 子项目(模块)
– core – mapreduce – hdfs – hive – avro –…
Hadoop
• 背景
– Google发表有关MapReduce论文 – Doug Cutting以及Nutch的MapReduce实现
– 习题2:查看任务状态
• 命令行查看 • web页面查看
Hadoop mapreduce
• 练习2:maprduce
– 习题3:阅读理解wordcount代码 – 习题4:编写MapReduce逻辑:分布式Grep – 习题5:编写MapReduce逻辑:Join
Hive
• MapReduce的高级语言(类SQL)支持 • Facebook支持的开源软件 • 谁用谁知道
简介
• 业界动态:加快部署! • 淘宝应用现状
– 云梯
简介
• 总结
MapReduce编程模型
• A game
MapReduce编程模型
• MapReduce语言学
– Map:映射,空间变换 – Reduce:汇总,规约
MapReduce编程模型
• 中间数据结构:<Key, Value>对
– map (in_key, in_value) -> list(out_key, intermediate_value) – reduce (out_key, list(intermediate_value)) -> list(out_value)
• 接口
– mapper – reducer – combiner – partitioner –…
Hadoop mapreduce
• 调度模型
– tasks – jobs – groups
Hadoop mapreduce
• 练习2:maprduce
– 习题1:基本操作
• 运行示例代码wordcount • 查看任务结果 • 杀死任务
Hadoop
• 背景
– Yahoo使用Hadoop – Hadoop成为Apache TLP – 淘宝?
Hadoop HDFS
• 分布式文件系统 • 设计原则
– 硬件错误是常态而不是异常 – 流式数据访问 – 大规模数据集 – 简单的一致性模型 – “移动计算比移动数据更划算” – 异构软硬件平台间的可移植性
Hive
• Hive结构
Hive
• Hive语句一览
– DDL
– CREATE/DROP/ ALTER TABLE – CREATE/DROP TEMPORARY FUNCTION – SHOW/DESCRIBE …
– DML
– LOAD – INSERT
– Query
– JOIN – SORT / DISTRIBUTE / CLUSTER / GROUP BY – TRANSFORM
• 查看文件状态 • 查看文件内容
– 习题3:使用Java API读取文件内容
Hadoop mapreduce
• 分布式计算框架 • 语言支持
– Java – C++ (through pipes) – script languages (through streaming)
Hadoop mapreduce
Aganda
• • • • 简介 MapReduce编程模型 Hadoop Hive
简介
• 大规模计算面临的挑战
– 数据量 – 成本 – 变化,通用性
• 互联网应用的特性
– 分析型业务为主 – 异构环境
简介
• MapReduce:一种通用解决方案
简介
• Hadoop:山寨MapReduce中的强者 • 衍生项目…
• 设计MapReduce算法的核心概念
MapReduce编程模型
• 并行能力
– 子任务间并行
MapReduce编程模型
• 并行能力
– Map、Reduce任务间并行
MapReduce编程模型
• 并行能力
– 作业间并行
MapReduce编程模型
• 范例练习
– web点击日志统计:PV / UV – 词频统计 – 海量数据排序 – 表Join
Hadoop HDFS
• HDFS特性
– 大容量 – 高容错性 – 高吞吐量
• HDFS数据模型
–包 –块 – 文件
Hadoop HDFS
Hadoop HDFS
• 练习1:使用Hadoop HDFS
– 习题1:基本操作
• 上传文件到HDFS • 查看/设置文件的备份数 • 删除文件、文件夹
– 习题2:查看文件
Hive
• 自定义逻辑
– UDF – TRANSFORM
Hive
• 练习3:使用Hive
– 习题1:建表 – 习题2:导入数据 – 习题3:查询
快要结束了
• Q/A
Some advanced topics…
Hadoop HDFS
• HDFS不是……
– 随机读写? – 无限的存储空间? – 标准API?
相关主题