Apache Spark是一个用于实时处理的开源集群计算框架。 它是Apache软件基金会中最成功的项目。 Spark已成为大数据处理市场的领导者。 今天,Spark被亚马逊,eBay和雅虎等主要厂商采用。 许多组织在具有数千个节点的集群上运行Spark。 这篇文章所讲内容包括Spark Streaming,Spark Interview Questions,Spark MLlib等。
在实时数据分析方面,Spark在所有其他解决方案中脱颖而出。 通过这篇文章将向大家介绍使用Spark进行地震检测。
以下是此Spark教程中涵盖的主题:
- 实时分析
- 有了Hadoop,为什么使用spark
- 什么是spark
- Apache Spark的功能
- spark实践及概念、组件介绍
- 使用基于Hadoop的Spark
- Spark 组件
- 使用案例:使用Spark进行地震检测
1.实时分析
在我们开始之前,让我们来看看美国社交媒体比较有名的企业每分钟产生的数据量。
图:每分钟生成的数据量
我们可以看到,互联网世界需要在几秒钟内处理大量数据。 正如我们所看到的,网络有大量的数据需要在几秒钟内处理。我们将通过处理企业中的大数据的阶段,发现需要一个实时处理框架,那就是Apache Skar的实时处理框架,解决了此问题。
首先,首先,让向大家介绍当今世界使用实时分析的几个大领域。
我们可以看到,大数据的实时处理已经深入我们生活的方方面面。从银行的欺诈检测到政府的实时监控系统、医疗自动化设备在股市中的实时预测系统,我们周围的一切都围绕着实时处理大数据。
我们来看看实时分析的一些用法:
医疗保健:医疗保健领域使用实时分析来持续检查关键患者的医疗状况。寻找血液和器官移植的医院需要在紧急情况下保持实时联系。及时就医是患者生死攸关的问题。
政府:政府机构主要在国家安全领域进行实时分析。各国需要不断跟踪警察和安全机构对于威胁的更新。
电信:以电话,视频聊天和流媒体实时分析等形式围绕服务的公司,以减少客户流失并保持领先竞争优势。他们还提取移动网络的测量结果。
银行业务:银行业务几乎涉及全球所有资金。确保整个系统的容错事务变得非常重要。通过银行业务的实时分析,可以实现欺诈检测。
股票市场:股票经纪人使用实时分析来预测股票投资组合的变动。公司通过使用实时分析来推销其品牌的市场需求,从而重新思考其业务模式。
spark思想及实现
2.有了Hadoop,为什么使用spark
每个人都问过Spark的第一个问题,“当我们已经拥有Hadoop时,为什么选择Spark?”。
要回答这个问题,我们必须考虑批处理和实时处理的概念。 Hadoop基于批处理的概念。 Hadoop MapReduce是批量处理数据的最佳框架。
这一直持续到2014年,直到Spark超越Hadoop。 在批量处理大型数据集时,USP for Spark比Hadoop MapReduce快100%。
下图详细说明了Spark和Hadoop之间的区别。
在这里,我们可以得出Hadoop和Spark之间的一个关键区别。 Hadoop基于大数据的批处理。 这意味着数据会在一段时间内存储,然后使用Hadoop进行处理。 在Spark中,处理可以实时进行。 Spark中的这种实时处理能力帮助我们解决了上一节中的实时分析问题。 除此之外,Spark还能够比Hadoop MapReduce( Hadoop处理框架)快100倍地进行批处理。 因此,Apache Spark是业界大数据处理的首选工具。
3.什么是spark
Apache Spark是一个用于实时处理的开源集群计算框架。 它拥有蓬勃发展的开源社区,是目前最活跃的Apache项目。 Spark提供了完整编程的接口,具有数据并行性和容错性。
图:Spark教程 - Apache Spark中的实时处理
它建立在Hadoop MapReduce之上,它扩展了MapReduce模型以使用更多类型的计算。
4.Apache Spark的功能
spark有以下功能
图:Spark教程 - Spark功能
详细内容如下:
支持多种语言
Spark提供Java,Scala,Python和R中的高级API .Spark代码可以用任何这些语言编写。 它在Scala和Python中提供了一个shell。 可以通过./bin/spark-shell和Python shell通过./bin/pyspark从已安装的目录访问Scala shell。
相关资料推荐
使用Java编写并运行Spark应用程序
http://www.aboutyun.com/forum.php?mod=viewthread&tid=10791
Spark开发语言Scala语言
http://www.aboutyun.com/forum.php?mod=viewthread&tid=6771
Spark python 开发者 ---Spark流式数据处理
http://www.aboutyun.com/forum.php?mod=viewthread&tid=18866
速度
Spark的运行速度比Hadoop MapReduce快100倍,适用于大规模数据处理。 Spark能够通过分区实现此速度。 它使用分区管理数据,这些分区有助于以最小的网络流量并行化处理分布式数据。
多种格式
Spark支持多种数据源,如Parquet,JSON,Hive和Cassandra,CSV和RDBMS表,还包括通常的格式,如文本文件、CSV和RDBMS表。 Data Source API提供了一种可插拔的机制,用于通过Spark SQL获取结构化数据。
延后计算
Apache Spark延迟是绝对必要的。 这是影响其速度的关键因素之一。对于转换(transformations),Spark将它们添加到DAG(有向无环图)的计算中,并且只有当驱动程序请求一些数据时,这个DAG才会实际执行。
实时计算
Spark的计算是实时的,并且由于其内存计算具有低延迟。 Spark专为大规模可扩展性设计,Spark团队已经记录了运行具有数千个节点的生产集群的用户,并支持多种计算模型。
整合Hadoop
Apache Spark提供与Hadoop的平滑兼容性。 这对所有从事Hadoop大数据工程师来说都是一个福音。 Spark是Hadoop的MapReduce的潜在替代品,而Spark能够使用YARN在现有的Hadoop集群上运行资源调度。
资料推荐
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=23252