openstack 回顾:
openstack:云栈
openstack E版
keystone:编录(服务的访问路径保存下来):认证 两种方式:(token,identity
)
nova:(computer,scheduler,network,volume,console,consoleauth)
glance:(image as a service)
swift:(object store),分布式文件系统
horizon:GUI:dashboard
openstack F版
新增cinder:(替代nova-volume)
quantum:(替代nova-network) open vswitch
因为 多个组件在大规模中使用 ,很有可能导致服务过多造成服务拥塞
为了避免拥塞
而使用消息队列的方式来完成异步协作
消息队列:异步协作
请求服务:生产者
提供服务:消费者
AMQP:rabbitMQ,zeroMQ,Qpid
高级消息队列协议:advanced message queue protocol
cloudstack:apache的项目
opennebular:
eucaptulus:
Iaas,Paas,Saas
openstack:hypervisor
将用户请求启动一个虚拟机的时候,能够按需要调度到比较空闲的hypervisor上
予以启动,而且能够实现当虚拟机关闭以后腾出其多占用的所有资源,并且在
下次启动时候能够被调度到与此前不相同的计算节点上去,如果用户需要长久
存储需要一些额外的卷,这就是为什么用到卷服务啦!
hadoop
RDBMS:表
字段、数据类型、约束
结构化数据(structred data)
google:
20亿
非结构化数据
无法完成规范统一定义的称为非结构化数据(unstructured data)
pagerank算法:对所有爬过来的页面进行抽取分析,哪些有效的,
对每一个关键
字进行计算
半结构化数据(semi-structured data)
这种能够方便的实现将一个数据本身所描述的意义,通过标签的方式
定义出来,能够交换到其它计算机上,能够被其它计算机数据处理软件
能够进行读取并识别的,这种称为半结构化数据
通常的格式为如下:
xml
json
facebook:pv,500亿:
化整为零:
500G,500G*1G
并行处理
将一个大问题切割成多个小问题
OLAP:数据挖掘
机器学习:deep learning
500*1G
100M*500=50G
50*1G=100M
5G
并行处理:
分布式文件系统
把数据各个切开,分布在各个节点上进行本地逐个分析
进行有意义的切割,不是每个都要进行切割
google进行搜索主要目的就是按照关键词进行页面排名
海量数据切割成小数据和各个分析合并分析循环下去,这样称为并行处理系统
主要有两个核心
高效存储、高效处理
从原始数据中抽取所感兴趣的键值对
并行处理:
keyword:次数
A:10
C:67
key-value pair
存储:
Mapreduce:简单数据处理系统
函数式编程API
运行框架
map reduce
抽取 抽取到的结果合并起来
如果要跑起来还要写map函数
实时:及时出结果
批处理:在后台运行一段无法预估的时长
将程序移至数据
hadoop:DFS --> HDFS hadoop分布式文件系统
mapreduce
1.编程模型
2.运行框架
3.mapreduce 编程思想的具体实现
DFS + mapreduce=Hadoop
两个集群合成一块
hadoop集群:有一个控制节点,无法控制几个任务
mapreduce集群:只是提供了某个具体任务的平台,可以控制几个任务
数据怎样切割由map函数决定的
同一个键的结果要发给同一个reduce
HDFS:
namenode:NN节点
DataNode:DN节点
MapReduce
JobTracker:JJ节点
TaskTracker:TT节点