第三次信息化浪潮:
信息化浪潮 |
发生时间 |
标志 | 解决的问题 |
代表企业 |
---|---|---|---|---|
第一次浪潮 | 1980年前后 | 个人计算 | 信息处理 | Intel、AMD、IBM、Apple、Microsoft、联想、 戴尔、惠普等 |
第二次浪潮 | 1995年前后 | 互联网 | 信息传输 | 雅虎、谷歌、阿里巴巴、百度、腾讯等 |
第三次浪潮 | 2010年前后 | 物联网、云计算和大数据 | 信息爆炸 | 亚马逊、谷歌、IBM、VMWare、Palantir、 Hortonworks、Cloudera、阿里云等 |
根据IBM前首席执行官 Louis Gerstner 的观点,IT领域每隔十五年就会迎来一次重大变革
信息科技为大数据时代提供技术支撑:
数据产生方式的变革促成大数据时代的来临:
科学研究上: 图灵奖获得者、著名数据库专家Jim Gray 博士观察并总结人类自古以来,在科学研究上,先后历经了实验、理论、计算和数据四种范式。
思维方式上:
技术层面 |
功能 |
---|---|
数据采集 | 利用ETL工具将分布的、异构数据源中的数据如关系数据、平面数据文件等,抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础;或者也可以把实时采集的数据作为流计算系统的输入,进行实时处理分析 |
数据存储和管理 | 利用分布式文件系统、数据仓库、关系数据库、NoSQL数据库、云数据库等,实现对结构化、半结构化和非结构化海量数据的存储和管理 |
数据处理与分析 | 利用分布式并行编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析;对分析结果进行可视化呈现,帮助人们更好地理解数据、分析数据 |
数据隐私和安全 | 在从大数据中挖掘潜在的巨大商业价值和学术价值的同时,构建隐私数据保护体系和数据安全体系,有效保护个人隐私和数据安全 |
分布式存储
分布式计算
大数据计算模式 |
解决问题 | 代表产品 |
---|---|---|
批处理计算 | 针对大规模数据的批量处理 | MapReduce、Spark等 |
流计算 | 针对流数据的实时计算 | Storm、S4、Flume、Streams、Puma、DStream、Super Mario、银河流数据处理平台等 |
图计算 | 针对大规模图结构数据的处理 | Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等 |
查询分析计算 | 大规模数据的存储管理和查询分析 | Dremel、Hive、Cassandra、Impala等 |
产业链环节 |
包含内容 |
---|---|
IT基础设施层 | 包括提供硬件、软件、网络等基础设施以及提供咨询、规划和系统集成服务的企业,比如,提供数据中心解决方案的IBM、惠普和戴尔等,提供存储解决方案的EMC,提供虚拟化管理软件的微软、思杰、SUN、Redhat等 |
数据源层 | 大数据生态圈里的数据提供者,是生物大数据(生物信息学领域的各类研究机构)、交通大数据(交通主管部门)、医疗大数据(各大医院、体检机构)、政务大数据(政府部门)、电商大数据(淘宝、天猫、苏宁云商、京东等电商)、社交网络大数据(微博、微信、人人网等)、搜索引擎大数据(百度、谷歌等)等各种数据的来源 |
数据管理层 | 包括数据抽取、转换、存储和管理等服务的各类企业或产品,比如分布式文件系统(如Hadoop的HDFS和谷歌的GFS)、ETL工具(Informatica、Datastage、Kettle等)、数据库和数据仓库(Oracle、MySQL、SQL Server、HBase、GreenPlum等) |
数据分析层 | 包括提供分布式计算、数据挖掘、统计分析等服务的各类企业或产品,比如,分布式计算框架MapReduce、统计分析软件SPSS和SAS、数据挖掘工具Weka、数据可视化工具Tableau、BI工具(MicroStrategy、Cognos、BO)等等 |
数据平台层 | 包括提供数据分享平台、数据分析平台、数据租售平台等服务的企业或产品,比如阿里巴巴、谷歌、中国电信、百度等 |
数据应用层 | 提供智能交通、智慧医疗、智能物流、智能电网等行业应用的企业、机构或政府部门,比如交通主管部门、各大医疗机构、菜鸟网络、国家电网等 |
特性:
Mahout
提供了许多 Data Mining 的算法实现。Hadoop 1.0 到 2.0 的变化:
Hadoop 1.0 中的问题:
Hadoop 2.0 解决方案:
选择因素:
不同发行版本比较:
厂商名称 | 开放性 | 易用性 |
平台功能 | 性能 |
本地支持 |
总体评价 |
---|---|---|---|---|---|---|
Apache | 完全开源,Hadoop 托管在 Apache 社区里 | 安装: 2 使用: 2 维护: 2 |
Apache 是标准的 Hadoop 平台,其他都是在此基础上改进 | 2 | 无 | 2 |
Cloudera | 与 Apache 功能同步,部分开源 | 安装: 5 使用: 5 维护: 5 |
有自主研发产品,如 impala, navigator 等 | 4.5 | 2014年进入中国, 上海 | 4.5 |
Hortonworks | 与 Apache 功能同步,完全开源 | 安装: 4.5 使用: 5 维护: 5 |
是 Apache Hadoop 平台最大贡献者,如 Tez | 4.5 | 无 | 4.5 |
MapR | 在 Apache 基础上修改 | 安装: 4.5 使用: 5 维护: 5 |
在 Apache 平台上优化了很多,形成自身产品 | 5 | 无 | 3.5 |
星环 | 核心组件与 Apache 同步,底层优化多,完全封闭的平台 | 安装: 5 使用: 4 维护: 4 |
有自主 Hadoop 产品,如 Inceptor, Hyperbase | 4 | 本地厂商 | 4 |
Hadoop的项目结构不断丰富发展,已经形成一个丰富的Hadoop生态系统。
组件 | 功能 |
---|---|
HDFS | 分布式文件系统 |
MapReduce | 分布式并行编程模型 |
YARN | 资源管理和调度器 |
Tez | 运行在YARN之上的下一代Hadoop查询处理框架 |
Hive | Hadoop上的数据仓库 |
HBase | Hadoop上的非关系型的不是数据库 |
Pig | 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin |
Sqoop | 用于在Hadoop与传统数据库之间进行数据传递 |
Oozie | Hadoop上的工作流管理系统 |
Zookeeper | 提供分布式协调一致性服务 |
Storm | 流计算框架 |
Flume | 一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统 |
Ambari | Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控 |
Kafka | 一种高吞吐量的根不是发布订阅消息系统,可以处理消费者规模的网络的所有动作流数据 |
Spark | 类似于Hadoop MapReduce的通用并行框架 |
Hadoop 分布式文件系统 (Hadoop Distributed File System, HDFS) 是 Hadoop 项目的两大核心之一,是针对谷歌文件系统 (Google File System, GFS) 的开源实现。HDFS 具有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点。
适用场景:
HBase 是一个提供高可靠性、可伸缩、实时读写、分布式的列式数据库,一般采用 HDFS 作为其底层数据存储。HBase 是针对谷歌 BigTable 的开源实现,二者采用相同的数据模型,具有强大的非结构化数据存储能力。
HBase 与传统数据库的区别:
Hadoop MapReduce 是针对谷歌 MapReduce 的开源实现。MapReduce 是一种编程模型,用处大规模数据集(大于1TB)的并行运算,它将并行计算过程高度地抽象到两个函数 —— Map 和 Reduce 上。
核心思想 —— 分而治之
适用场景:
Hive 是一个基于 Hadoop 的数据仓库工具,可以用于对 Hadoop 文件中的数据进行数据整理、特殊查询和分析存储。Hive 提供了类似关系型数据库 SQL 语言的查询语句 —— Hive QL,学习门槛较低。Hive 自身可以将 Hive QL 转换成 MapReduce 任务进行运行,不必开发专门的 MapReduce 应用。
Hive适合数据仓库的统计分析:
Pig 是一种数据流语言和运行环境,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。
Pig 包含两部分:
Pig与Hive的区别? Pig 与 Hive 作为一种高级数据语言,均运行于 HDFS 之上,是 Hadoop 上层的衍生架构,用于简化 Hadoop 任务,并对 MapReduce 进行一个更高层次的封装。Pig与Hive的区别如下:
Mahout 是 Apache 软件基金会 (Apache Software Foundation, AFS) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法
的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。
Zookeeper 是针对谷歌 Chubby 的一个开源实现。是搞笑和可靠的协同工作系统,提供分布式锁之类的基本服务(如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等),用于构建分布式应用,减轻分布式应用程序所承担的协调任务。
Flume 是 Cloudera 提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。它将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即 Flume 是实时采集日志的数据采集引擎。
Flume 特性:
Flume 的优势:
Sqoop 是 SQL-to-Hadoop 的缩写,主要用来在 Hadoop 和传统关系型数据库之间交换数据,可以改进数据的互操作性。通过 Sqoop 可以实现关系型数据库(如 MySQL, Oracle, PostgreSQL 等)和 Hadoop 之间数据迁移 (即互相导入、导出)。