JavaSpark-数据分析导论

在数据爆炸的时代。大数据解决方案的强大在于它们可以快速处理大规模、复杂的数据集,可以比传统方法更快更好地生成洞见(清楚的看到)
一套大数据解决方案通常包含多个重要组件, 从存储计算网络等硬件层,到数据处理引擎(很重要),再到利用改良的统计和计算算法数据可视化来获得商业洞见的分析层
Spark基于内存的基本类型,为一些应用程序带来了百倍的性能提升
Spark 正在促使 Hadoop 和大数据生态系统发生演变,以更好地支持端到端的大数
据分析需求, 例如: Spark 已经超越 Spark 核心,发展到了 Spark streaming、 SQL、 MLlib、GraphX、 SparkR 等模块。学习 Spark 和它的各个内部构件不仅有助于改善更轻松地创建分析应用

Spark 只是一个通用计算框架, 利用 Spark 实现的应用才是其真正价值所在

spark的优点
高级API剥离了对集群本身的关注
spark很快,支持交互式使用和复杂运算
spark是一个通用引擎,可用它来完成各种各样的运算
spark是不能替代hadoop(MapReduce),hadoop可进行大量数据的离线计算,spark需要内存

spark是什么
spark(扩展了MapReduce计算模型,在支持更多的计算模式。交互式查询和流处理)是基于内存(容量)快速而通用的分布式集群平台
处理大规模集群时,速度很重要,快—-可交互
spark在内存中进行计算,因而更快(?)
在磁盘上计算spark仍然比MapReduce更加高效

spark中间结果在内存中
hadoop中间结果在磁盘中(非实时的批处理)

分布式平台场景:批处理、迭代算法、交互式查询、流处理
spark在同一框架下支持不同计算,整合各类分布式场景,减轻平台管理负担

spark接口丰富可运行在hadoop集群上,访问包括cassandra在内的hadoop数据源(hbase)

一个统一的软件栈
spark的核心是对集群中的多计算、多任务进行调度,分发以及监控的计算引擎
spark的高级组件,关系密切且可相互调用
JavaSpark-数据分析导论

密切结合有几个优点:
软件栈中的所有程序和高级组件都可以从下层改进中获益
运行整个软件栈的代价变小了
能构建出无缝整合不同处理模型的应用

Spark Core(Apache Spark)
跨物理主机程序—TCP/IP(网络通讯)
spark core实现基本功能、任务调度、内存管理、错误恢复与存储系统交互、RDD的API定义
RDD表示分布在多个计算节点上可并行操作的元素集合(主要编程对象)
spark core提供了创建和操作这些集合的API

Spark SQL
spark用来操作结构化数据的程序包。。。

Spark Streaming
spark提供的对实时数据进行流式计算的组件:网页服务器日志、网络服务中用户提交状态更新组成的消息队列
Streaming提供了用来操作数据流的API

MLlib

GraphX

集群管理器

spark的用户和用途

数据科学任务

数据处理应用

spark的存储层次