分布式的并行计算技术
大数据主要环节:
数据准备--->数据存储和管理--->计算处理--->数据分析--->知识展现
在数据存储和管理中,GFS(谷歌文件系统,GOOGLE FILE SYSTEM)和HDFS(Hadoop的分布式文件系统)是奠定了大数据存储技术的基础。GFS/HDFS能避免在数据密集计算中容易形成的输入/输出吞吐量限制,且有较高的并发访问能力,能在大文件的追加写入和读取时能获得很高的性能,但随机访问、海量小文件的频繁写入性能较低。当然除了GFS/HDFS,是针对海量数据的文件系统,还有BigTable和Hadoop Hbase等非关系型数据库,它们针对非结构化的数据存储管理。
批计算:
Hadoop:是一个提供分布式存储和计算的软件框架,它具有无共享、高可用、弹性可扩展的特点,非常适合处理海量数据,先存储再计算。包含计算框架MapReduce(Google File System的开源实现)和分布式文件系统HDFS(Google MapReduce的开源实现),更广泛的说还包括其生态系统上的其他系统,如Hbase、Hive等。
Apache Hadoop MapReduce 大数据计算软件架构能满足“先存储再计算”的离线批量计算,但时延过大,在机器学习迭代、流处理、大规模图数据处理方面很有局限性。但在Hadoop 2.0 中推出的新一代MapReduce 架构将原来MapReduce中的任务调度和资源管理功能分离,形成与任务无关的资源管理层(YARN)。 YARN对上支持批处理、流处理、图计算等新结构模型,对下负责物理资源的统一管理。
实时批计算:
Spark:基于内存计算、支持快速迭代的的大数据并行计算框架。 适用于一切的分布式处理方案。
Spark比MapReduce更加高效,数据处理速度更快。可以作为MapReduce的替代方案,并且兼容HDFS、Hive等分布式存储层,可以融入Hadoop的生态系统,可以弥补MapReduce的不足。
流计算:
Strom:针对“边达到边计算”的实时流计算框架,可在一个时间窗口上对数据流进行在线实时分析。
同样的还有Yahoo提出的S4系统也是针对流计算的。
图计算:
Pregel:主要用于绘制大量网上信息之间关系的“图形数据库”。是面向图结构优化,一个可伸缩的分布式迭代图处理系统计算框架,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
交互查询:
Dremel:Google 的“交互式”数据分析系统。可以组建成规模上千的集群,处理PB级别的数据,可实现快速交互查询。
Drill是Dremel的开源实现。
在数据分析中,机器学习毫无疑问是最佳的实现方法,其中最核心的为算法。
算法:
有工程学方法和模拟法两种。
模拟法又分为进化算法和人工神经网络算法两种。
进化算法以达尔文的进化思想为基础,通过选择、重组、变异三种操作方法优化问题求解。
人工神经网络算法是根据逻辑规则进行推理的过程。