1.什么是大数据?

不弄明白这个根本性的问题,是无法深入理解今后数据分析技术和工具的意义。

大数据指的是规模超过现有数据库工具获取、存储、管理和分析能力的数据集,并同时强调并不是超过某个特定数量级的数据集才是大数据。

大数据的定义聚焦在“大“。从表面上看,数据规模的增长的确为处理数据带来了很大的问题。具体来说,在同样时间内获取与以前相同价值的数据变得不可为了。换言之,本质问题是数据的价值密度变低了,数据交换速率变慢了,所以催生了很多新型数据处理技术和工具,如Google的GFS和MapReduce,Apache Hadoop生态系统,美国伯克利大学AMPLab的Spark等;出现了对时间敏感程度不同的计算模式,如批式计算模式、交互式计算模式、流计算模式、实时计算模式等。计算模式的差异只是决定获取价值的技术不同,取决于上层业务需求的不同。

实际上,所谓大数据问题的本质应是数据的资产化和服务化,而挖掘数据的内在价值是研究大数据的最终目标。

扩展阅读:

http://www.codesec.net/view/405340.html

http://wiki.mbalib.com/wiki/%E5%A4%A7%E6%95%B0%E6%8D%AE

概念清晰了,接下来就是找到关键点。从事大数据工作最核心的两项工作是:存储和分析。传统的数据库已经无法满足数据增长的需要了,那么首先要解决的就是数据增长带来的存储问题。其次,是基于离线数据和实时数据的计算,根据不同的数学模型输出有价值的可用性分析结果。

 



2.什么是Storm?

Storm是一个分布式的,容错的实时计算系统。主要用于互联网流式数据处理。所谓流式数据是指将数据看作是数据流的形式来处理。数据流则是在时间分布和数量上无限的一系列数据记录的集合体;数据记录是数据流的最小组成单元。举个例子,对于大型网站,活跃的流式数据非常常见,这些数据包括网站的访问 PV/UV、用户访问了什么内容,搜索了什么内容等。实时的数据计算和分析可以动态实时地 刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况 这对于大型网站来说具有重要的实际意义。 



3.什么是Spark?

Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,非常短小精悍。

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。



4.一句话说明

HDFS: 存储系统

MapReduce:计算系统

Hive:提供给SQL开发人员(通过HiveQL)的MapReduce,基于Hadoop的数据仓库框架

Pig:基于Hadoop的语言开发的

HBase:NoSQL数据库

Flume:一个收集处理Hadoop数据的框架

Oozie:一个让用户以多种语言(如MapReduce,Pig和Hive)定义一系列作业的工作流处理系统

Ambari:一个基于web的部署/管理/监控Hadoop集群的工具集

Avro:允许编码Hadoop文件的schema的一种数据序列化系统

Mahout:一个数据挖掘库,它包含了最流行的一些数据挖据算法,并且以MapReduce模型来实现他们

Sqoop:一个从非Hadoop数据存储(如关系数据库和数据仓库)进来的移动数据到Hadoop中的连接工具

HCatalog:一个中心化的元数据管理以及Apache Hadoop共享服务,它允许在Hadoop集群中的所有数据的统一视图,并允许不同的工具,包括Pig和Hive,处理任何数据元素,而无需知道身体在集群中的数据存储。

BigTop:为了创造一个更正式的程序或框架Hadoop的子项目及相关组件的目标提高Hadoop的平台,作为一个整体的包装和互操作性测试。

Apache Storm:一个分布式实时计算系统,Storm是一个任务并行连续计算引擎。 Storm本身并不典型在Hadoop集群上运行,它使用Apache ZooKeeper的和自己的主/从工作进程,协调拓扑,主机和工作者状态,保证信息的语义。无论如何, Storm必定还是可以从HDFS文件消费或者从文件写入到HDFS。

Apache Spark:一种快速,通用引擎用于大规模数据处理,Spark是一个数据并行通用批量处理引擎。工作流中在一个类似的和怀旧风格的MapReduce中定义,但是,比传统Hadoop MapReduce的更能干。Apache Spark有其流API项目,该项目通过短间隔批次允许连续处理。Apache Spark本身并不需要Hadoop操作。但是,它的数据并行模式,需要稳定的数据优化使用共享文件系统。该稳定源的范围可以从S3,NFS或更典型地,HDFS。执行Spark应用程序并不需要Hadoop YARN。Spark有自己独立的主/服务器进程。然而,这是共同的运行使用YARN容器Spark的应用程序。此外,Spark还可以在Mesos集群上运行。