Hadoop大数据处理平台,Spark大数据通用计算平台,用于图像和视频识别的深度学习。
云计算,物联网,移动互联网,知识工作自动化,先进机器人等都需要大数据作为基础 何以定义“大数据”,大数据需要满足:数据量足够大;数据的种类多样;数据的增长、处理速度快;数据蕴藏价值大,这四个基本特征。
大数据的处理要求是在线的。
大数据的处理流程:在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准进行统一存储,并利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展示给终端用户。
数据抽取与分析—>数据分析—>数据可视化
数据中心包含大规模计算、存储的硬件资源以及通信宽带资源,与硬件服务器等关联比较大;云计算平台是负责管理、调度和监控这些资源。数据中心是云计算的实现平台。
云计算将底层的物理资源经过虚拟化转变为多个虚拟机,以资源池多重租赁的方式提供服务,从而提高资源的效用。
传统的分布式任务处理模式是按照高负载配置的服务器集群,也就是给用户分配的服务器都是按照高负载情况的配置,但一旦遇到底负载的情况,那么会造成资源的浪费和闲置,为解决这一资源浪费的问题,提出了如今的按需分配的云计算模式,云计算将服务器资源虚拟化,用户可以像传统的水电等系统一样按需获取服务器资源,并自主设置服务器配置。在云计算模式下,用户无需关心资源池的地点、使用性能等相关信息,用户自需要通过网络访问,按需定制自己的服务器资源即可,具体的服务资源的调度、管理和维护等工作由云内部实现。
基础设施及服务(Infrastructure as a Service,IaaS),平台即服务(Platform as a Service,PaaS),软件即服务(Software as a Service,SaaS)。
IaaS,提供的服务内容是基础设施,通过虚拟化技术将物力资源虚拟化,为用户提供计算、存储、网络以及其它资源方面的服务,以便用户能够部署操作系统和运行软件。如亚马逊的弹性云(Amazon, EC2)。
PaaS,构建在IaaS上的服务,在这种服务中,用户不必控制底层的网络、存储、操作系统等技术问题,直接部署自己需要的软件运行环境和配置,如Google App Engine和Microsoft Azure。
SaaS,是基于前两层服务所开发的软件应用,不同的用户以简单客户端的方式调用该层服务,比如之前两家公司的产品:视频云。
虚拟化技术分为两种:以虚拟机为产物的虚拟化方案和以容器为产品的轻量级虚拟化方案。
虚拟机:典型的是VMware,把一台物理机虚拟成多台虚拟子机,直接运行在硬件之上,管理物理机或虚拟子机的硬件资源。
容器:典型的是Docker,直接运行在操作系统上,为每个进程分配不同的系统资源,进程与进程之间独立,而硬件资源由操作系统自身管理。容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统。
底层文件系统HDFS,结构化存储系统HBase,任务调度系统MapReduce。
Hadoop为用户提供了系统底层细节透明的分布式基础架构,是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。
Hadoop分布式文件系统HDFS,它存储Hadoop集群(数百台或数千台的服务器)中所有存储节点的文件。 HDFS的几个特点:
HDFS的三个重要组成部分:NameNode,DataNode,Client。
NameNode是HDFS的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制,NameNode会将文件系统的元数据(Metadata)存储在内存中,元数据包括文件信息、每个文件对应的文件块的信息和每个文件块在DataNode中的信息。
DataNode是文件存储的基本单元,它将文件块保存在本地文件系统中,同时保存文件块的元数据,周期性的将所有存在的文件块信息发送给NameNode。
Client就是要获取HDFS中的文件的应用程序。
文件写入操作:Client向NameNode发起文件写入请求—>NameNode根据文件的大小和文件块的配置情况,向Client返回它所管理的DataNode的信息—>Client将文件划分为多个文件块,根据所得到的DataNode的地址信息,按顺序写入每一个DataNode块中。
文件读取操作:Client向NameNode发起文件读取的请求—>NameNode返回文件存储的DataNode的信息—>Client读取文件信息。
HBase——Hadoop Database
HBase利用HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用ZooKeeper作为协同服务。
Map(映射)+Reduce(化简)
在输入数据的逻辑纪录上应用Map操作得出一个中间key/value对集合,然后在所有具有相同key值的value值上应用Reduce操作来合并中间的数据,得到最终结果。
将对大量顺序式数据元素或纪录进行扫描并做相应的处理获取中间结果信息的过程称为Map操作;对中间结果进行收集整理和产生最终结果并输出的过程称为Reduce操作。
学习Hadoop的产品,由Hortonworks发布的一个虚拟机环境——Sandbox,它是一种个人可移植的Hadoop环境,附带大量交互式Hadoop教程。网址:http://zh.hortonworks.com/products/hortonworks-sandbox/
Spark是基于MapReduce算法实现的分布式计算,在拥有Hadoop MapReduce所有优点的基础上,其任务的中间结果可以保存在内存中,不再读写HDFS,从而效率和速度都比Hadoop快,所以Spark在处理迭代算法(如机器学习、图挖掘算法)和交互式数据挖掘算法等方面具有更大的优势。
Hadoop无法处理实时性要求很高的任务,对实时交互的需求催生了一大批实时计算系统,如Storm流计算系统。
传统的数据处理流程为先收集数据存放在数据库中,等到由数据需求的时候再从数据库中进行查询或计算,这种处理方式是非实时的;而流计算可以很好地对大规模流动数据在不断变化的过程中实时地进行分析,捕捉到可能有用的信息并反馈给下一个计算节点,在流计算系统中,数据是流式的,计算与服务也是流式不间断的,整个过程是连续的且响应也是实时的,可达到秒级别以内。
由于传统的关系型数据库表结构的扩展性差,对海量数据的高效率存储和访问的支持度不高以及弱一致性需求导致出现了非关系型数据库。NoSQL可以写成Not Only SQL,是对不同于传统的关联式数据库的数据库管理系统的统称。传统的关系型数据库是基于行的数据库,而NoSQL是基于列的数据库。http://nosql-database.org 列举了市面上所有的NoSQL数据库。
也称布鲁尔定理,它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
系统如果不能满足数据一致性,说明发生了分区的情况,这时必须在一致性和可用性之间做出选择。
传统的数据库保证事务的一致性,但在非关系型数据库中为了高度的可用性放弃了一致性,以最终一致性代替,最终一致性表示过程松(即并不要求每时每刻都保证数据的一致性),结果紧(即最终结果必须保持一致性)
这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库对SQL的友好。比较流行的NewSQL数据库有:Google Spanner。
数据挖掘的任务:预测与描述
数据挖掘的主要功能:预测建模,关联分析,聚类分析
传统数据挖掘解决方案:MATLAB;java语言开发的数据挖掘常用软件Weka;R语言
分布式数据挖掘解决方案:基于Hadoop的Mahout;基于Spark的MLBase
人脑是通过视皮层来识别物体,视皮层的功能是对感知信号进行特征提取和计算。
深度学习能够通过组合底层特征形成更抽象的高层特征,从而实现自动选择特征,通过模拟人脑多层次的分析方式来提高学习的准确性。
深度学习的结构有三种:生成性深度结构(技术点:深度置信网络);区分性深度结构(技术点:卷积神经网络);混合型结构(就是前两种都有,这种结构的学习过程为生成性过程和区分性过程,用生成性过程的结果用于区分性任务)
从机器学习到深度学习
在机器学习中,比如前面的数据挖掘,无论哪种算法都需要人工的干预,比如数据预处理,只要有人工干预就无法实现知识产生的自动化,不过是将人的想法用代码实现而已。但深度学习能实现知识发现的自动化。 深度学习的应用:Google Brain;百度 Paddle;腾讯Mariana