SQL Azure
微软的云中关系型数据库、提供了高可用性和容错能力;
关系数据库存储服务,包括三部分:报表服务-----提供报表服务、数据同步---允许本地数据库和云端数据可同步数据、数据库--云端的DBMS
Hadoop2.0主流开架构:
问题:假设现有一些配置完全相同的机器cSlave0~cSlaveN,cMaster0,cMaster1,并且每台机器都有1个双核CPU,5GB硬盘。现有两个大小都是2GB的文件file0和file1。
答案:分布式解决方案
分布式存储-------若能将多台机器硬盘以某种方式连接到一起,则问题迎刃而解。取机器cSlave0,cSlave1和cMaster0,采用客户-服务器模式构建分布式存储集群,让cMaster0管理cSlave0,cSlave1。
分布式存储:对内采用客户服务器模式,对外统一存储结构
分布式计算----本地计算、洗牌、合并在计算
冗余存储和冗余计算:
存储时:将本机的文件复制到其他主机
计算时:计算任务由cmaster管理
作用:提高分布式存储的可靠性,提高分布式计算的可靠性
Hadoop2.0体系架构:
公共组件Common:提供共用API和程序员边恒接口、本地Hadoop库、超控用户superuser、服务级别认证、HTTP认证’
分布式文件系统HDFS:高容错,高扩展‘高可靠‘’’
HDFS采用master/slvae体系来构建分分布式存储服务;HDFS将文件分块存储;namenode统一管理所有slave机器datanode存储空间,datanode以块为单位;整整的文件IO操作室客户端直接和datanode交互;’
客户要访问一文件,首先从namenode获取组成文件的数据块的位置列表;其次直接从datanode傻瓜读取文件爱你;
一般拓扑:只有单个NameNode节点,
使用SecondaryNameNode或BackupNode节点实时获取NameNode元数据信息,备份元数据。
商用拓扑:有两个NameNode节点,
并使用ZooKeeper实现NameNode节点间的热切换。----至少三个zookeeper用于选举activitenamenode
分布式操作系统Yarn
管理整个集群的计算资源;提供用户程序官方网呢资源的API
一个MapReduce操作分为两个阶段:银蛇阶段和化简阶段;
调度策略:公平调度算法啊,容量调度算法
容量调度策略通过队列来划分资源
Hadoop2.0安全机制:
集群内部:任何用户提交的MR任务都可以访问HDFS数据
集群外部:非法slave连接到master,从而冒充slave骗取数据
Hadoop2.0大家族
常用组件:
HDFS:分布式文件系统
Yarn:分布式操作系统
MapReduce:分布式数据处理
Hbase:分布式数据库
开源分布式数据库,以google的bigtable为原型,实现了高可靠性,高性能,列存储、可伸缩、实时读写的分布式数据库系统。适合存储非结构化的数据、基于咧的而不是季宇航的模式
元素由行健、列(<列族>:<限定符>)和时间戳唯一确定,元素中的数据以字节码的形式存储,没有类型之分。
表中的控制是不被存储的;如果没指定时间戳,则返回指定列的最新数据值;可以随时向表中添加任何一个列,不需要事先申明;
[root@iClient ~]# hbase shell #进入Hbase命令行
hbase(main):001:0> list #查看所有表
hbase(main):002:0> create 'member','id','personalAttr','socialAttr' #创建member表
hbase(main):003:0> list
hbase(main):004:0> scan 'member' #查看member内容
hbase(main):005:0> put 'member','201401','personalAttr:name','aa' #向member表中插入数据
hbase(main):006:0> put 'member','201401','personalAttr:gender','0'
hbase(main):007:0> put 'member','201401','personalAttr:age','21'
hbase(main):008:0> put 'member','201401','socialAttr:edu','e0'
hbase(main):009:0> put 'member','201401','socialAttr:job','p3'
hbase(main):010:0> put 'member','201401','socialAttr:imcome','m'
hbase(main):011:0> scan 'member'
hbase(main):012:0> disable 'member' #废弃member表
hbase(main):013:0> drop 'member' #删除member表
hbase(main):014:0> quit
Hbase采用master/slave架构;主节点运行的服务成为Master,从节点运行的成为HResionServer,底层用HDFS存储数居。
Zookeeper:分布式琐服务
提供了松耦合交互方式,即交互双方不必同时存在,Zookeeper本身是不可靠的,集群方式可以提高可靠性。
Zookeeper提供shell接口和编程接口;
Hive:
Hive是一个构建在Hadoop上的数据仓库框架,它起源于Facebook内部信息处理平台。
Pig:
Pig相当于一个Hadoop的客户端,它先连接到Hadoop集群,之后才能在集群上进行各种操作。
Oozie:工作流引擎
Flume:数据传输工具
Flume核心思想是数据流.组成:Source,CHannel,Snk
Mahout:机器学习库
Mahout提供了程序和命令行接口,通过参考Mahout已有的大量机器学习算法,程序员也可实现将某算法并行化。