大数据定位
分析对手的特点
分析消费习惯,广告定点投放等
大数据背景
无处不在的大数据:科学数据、金融数据、物联网数据、交通数据、社交网络数据、零售数据等
大数据的4V特征
数据一般认为,大数据主要具有以下四个方面的典型特征:规模性(Volume)、多样性(Varity)、高速性(Velocity)和价值性(Value),即所谓的“4V”
大数据涉及到的技术
数据采集、数据存储、数据处理/分析/挖掘、可视化。Hadoop是必会,Spark是最好会。先学Hadoop,然后再进阶学spark。
Hadoop
数据Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop能做什么:
数据搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务
数据搜索引擎、日志分析、数据挖掘、商业智能
Hadoop核心组件
HDFS(分布式文件系统)
-
源于Google在2003年10月发表的GFS论文
-
对GFS的克隆
-
特点:扩展性、容错性、海量数据存储
-
将文件切分成指定大小的数据块并且多副本存于多个机器上
-
数据切分、多副本、容错对用户是透明的
YARN(资源管理系统) -
整个集群资源的管理与调度
-
特点:扩展性、容错性、多框架资源统一调度
MapReduce(分布式计算框架)
-
2004年12月的GoogleMapReduce论文
-
Google MapReduce的克隆版
-
特点:扩展性、容错性、海量数据的离线处理
其他组件
Hadoop生态系统包含了用于协助Hadoop的不同的子项目(工具)模块,如Sqoop, Pig 和 Hive。Sqoop: 它是用来在HDFS和RDBMS之间来回导入和导出数据。Pig: 它是用于开发MapReduce操作的脚本程序语言的平台。Hive: 它是用来开发SQL类型脚本用于做MapReduce操作的平台。
Spark
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。
数据Hadoop生态家族这么庞大,我们为什么要选择Spark作为对于大数据进行数据分析和数据挖掘的基本计算框架?
速度快
Apache Spark拥有先进的DAG调度器、查询优化器以及物理执行引擎从而高性能的实现批处理和流数据处理
易用性
可以使用Java,Scala,Python,R以及SQL快速的写Spark应用。Spark提供80个以上高级算子便于执行并行应用,并且可以使用Scala、Python、R以及SQL的shell端交互式运行Spark应用
通用性(支持SQL,流数据处理以及复杂分析)
Spark拥有一系列库,包括SQL和DataFrame,用于机器学习的MLib,支持图计算GraphX以及流计算模块Streaming。你可以在一个应用中同时组合这些库。
支持多种模式运行(平台包括Hadoop,Apache Mesos,Kubernete,standalone或者云上,也可以获取各种数据源上的数据)
Spark可以直接运行以自身的standalone集群模式运行,也可以在亚马逊EC2上运行,不过企业级用的比较多的是Hadoop Yarn模式,当然也有Mesos和Kubernetes模式。可以获取不限于来自于HDFS、Apache Cassandra、Apache HBase和Apache Hive等上百种数据源。
Hadoop和Spark之间的关系是什么?
从Hadoop的MapReduce编程框架说起,如果说MapReduce是第一代计算引擎,那么Spark就是第二代计算引擎。随着大数据处理的应用场景越来越多,人们对Hadoop的要求也越来越高,开发出的对应的系统也越来越多,人们迫切的需要一个综合的计算框架,Spark应运而生,我们可以看看Spark可以干些什么。
Hadoop与Spark比较
性能
Spark之所以如此快速,原因在于它在内存中处理一切数据。没错,它还可以使用磁盘来处理未全部装入到内存中的数据。
Spark的内存处理为来自多个来源的数据提供了近乎实时分析的功能:营销活动、机器学习、物联网传感器、日志监控、安全分析和社交媒体网站。另 外,MapReduce使用批量处理,其实从来就不是为惊人的速度设计的。它的初衷是不断收集来自网站的信息,不需要这些数据具有实时性或近乎实时性。
易用性
支持Scala(原生语言)、Java、Python和Spark SQL。Spark SQL非常类似于SQL 92,所以几乎不需要经历一番学习,马上可以上手。
Spark还有一种交互模式,那样开发人员和用户都可以获得查询和其他操作的即时反馈。MapReduce没有交互模式,不过有了Hive和Pig等附加模块,采用者使用MapReduce来得容易一点。
成本
“Spark已证明在数据多达PB的情况下也轻松自如。它被用于在数量只有十分之一的机器上,对100TB数据进行排序的速度比Hadoop MapReduce快3倍。”这一成绩让Spark成为2014年Daytona GraySort基准。
兼容性
MapReduce和Spark相互兼容;MapReduce通过JDBC和ODC兼容诸多数据源、文件格式和商业智能工具,Spark具有与MapReduce同样的兼容性。
数据处理
MapReduce是一种批量处理引擎。MapReduce以顺序步骤来操作,先从集群读取数据,然后对数据执行操作,将结果写回到集群,从集群读 取更新后的数据,执行下一个数据操作,将那些结果写回到结果,依次类推。Spark执行类似的操作,不过是在内存中一步执行。它从集群读取数据后,对数据 执行操作,然后写回到集群。