各种超级计算机
了解并行框架
Mapreduce:瓶颈是在IO上。
MPI:并行框架,适合密集计算,没有很多的IO操作。
PVM:是一堆接口 可时间并行计算
CUDA:显卡上的图像处理器,GPU的计算接口包,里面很很多的计算单元。
互联网计算:志愿计算机 贡献你的资源
云计算
- 云计算是在关键技术成熟以后,催生的服务模式,低成本获得相同服务。
- 举个粒子:我购买很多硬件资源,出租给用户,用户花很少的钱,卷屁股九可以走了。
- 投资和技术都不是关键,关键是服务,是可以极大的降低成本,提高服务。
云计算的技术
- 自我服务 用户自己就可以操作
- 按使用量计费 我用了多少贷款 多少CPU
- 弹性架构 我希望在业务繁忙的时候 资源分多一点 或者当用户量增加以后,希望增加节点
- 可定制化 定制化自我开发 资源定制
怎么降低成本
- 提高软硬件的使用率
- 集中管理降低能耗
- 节约维护人员的费用
云计算模式也会增加成本
- 安全风险
- 可用性风险:过分依赖网络的服务
- 绑架风险:以前免费,服务和数据完全绑定在云上,现在你必须给我钱。
- 供应商被绑架:需要licence
盈利模式
云计算的形态
- 私有云:企业里
- 公有云:面向社会大众服务的 搜索引擎 网盘 迅雷离线下载 告诉通道
- 混合云:私有+共有
目前流行的开源计算解决方案
- hadoop
- openStack:云计算(虚拟机)资源管理
Hadoop在云计算中的用途
- 通过搜索形成大量的日志文件,通过记录,发的短信,浏览的网页。
- 传统的企业:存取款 转账
把这些日志文件搜集到Hadoop中,处理的数据是海量的,对日志进行分析。
有人曾经说过,只要是量变大了,但是就变成很困难的事情。
案例
京东商城:为pop商家进行日志分析服务。谁看过我的物品,轨迹是什么,卖过多少东西,点击日志放到Hadoop上,统计分析。
淘宝数据魔方:和京东类似,点击日志。挖取用户感兴趣的东西,自己商店的经营情况,做出决策,分析对商家还是很有价值
架构图
strom:流式数据库 实时型就行计算 实时性不强的就放到离线进行分析
云梯:跑P
MyFox:使用的Mysql数据库95%
Prom:5%
中间层叫做:glider 完整的显示做链接前线集成
Hadoop@baidu
气象数据集
- 气象数据集下载
- 大小:72G
- 解压及合并:
zcat*3.gz >sample.txt
输出重定向
分析气象数据的Map-Reduce程序
逻辑的角度:
原始数据–》文本–》map–》洗牌–》计算–》结果
物理的角度:
Mapper
取一行–》截取–》年份 温度
Reduce
取max值
M_R job
中心进行作业
Map-Reduce编程模型
split:将数据进行分离
看以看到 我们分成3个节点
边界分区的时候发生重组
某个计算节点的负载较大
没有reduce的简单模型
复杂的编程模型
Mapper
Reducer
Shuffle
分片的问题
Combiner
相当于预处理,比如说每个节点都生成key value,我可以每个节点进行求最大值,汇总后再进行求最大值。
max()=max(max(),max())
Mapreduce工作机制剖析
- 编写程序 提交在任意一个节点进行 run job ,
- jobClient 和 jobTracker 进行联系,jobTracker 在核心配置文件中有,申请作业ID,加到作业队列中去
- 通过HDFS 文件系统散发作业的java代码 到各个节点
- 提交作业获得申请队列的资格 把作业提交
- 初始化在内存中 数据结果 job 运行结构
- jobTracker询问有关的数据散布在哪里 就近运行
- jobTracker和tasktracker 通过每分钟心跳联系 tasktracker是否活着,负荷比较低的 空闲的节点
- 定下来tasktracker取过来相关的java代码 架设java 虚拟机
调度机制
- 缺省为先入先出作业调度
- 支持公平调度器
- 支持容量调度器