本文主要是介绍Spark之FAQ,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.Spark与Hadoop是什么关系?
答: Spark是一个兼容Hadoop数据的快速的一般处理引擎。它可以通过Yarn框架或者Spark的独立模式运行于Hadoop集群上。同时,它也可以处理HDFS、Hbase、Cassandra、Hive以及其它任何Hadoop输入格式的数据。为了解决复杂的批数据处理(batch data processing),基于历史的交互式查询(interactivequery),以及基于实时数据流的的数据处理(streaming data processing),Spark应势而生。
2.Spark支持哪种语言?
答:Scala 、Java、python.
3.Spark可以支持多大规模的数据处理?
答:从百万字节到千兆字节,Spark已经展现出了它优秀的处理能力。同样是对100TB的数据进行排序,它只用了Hadoop的MapReduce所用机器的十分之一,速度却是其3倍。并且在2014年的Daytona GraySort 大赛上获得了被作为标准的荣誉。Spark也曾用来对1PB的数据进行排序。这样的优秀处理能力带来了新的工作量,spark在ETL以及PB级数据分析数据领域也开始崭露头角。
4.spark可以适应多大规模的集群?
答:非常多的组织在上千个节点组成的集群上运行过Spark,据目前所知,已经超过了8000个节点。
5.如果我的数据集与内存不匹配怎么办?
答:通常每个分区的数据是非常小的,适合存放在内存中,并且这些分区的数据会在很短时间内处理完成。对于那些分区数据特别大不适合存放在内存中的,Spark中内置的运营商将对这些数据集进行外部操作。
6.如果缓存的数据集与内存不匹配怎么办?
答:Spark既可以将数据溢出到磁盘上,也可以在每次请求时重新计算那些与内存RAM不匹配的分区。默认情况下,它使用重新计算分区的方式。但你也可以设置一个使磁盘和内存相平衡的存储水平线来避免这种情况的发生。
7.我如何在集群上运行Spark?
答: 您可以使用独立部署模式,只需要确保在每个节点上安装Java运行环境,或者使用Mesos和YARN集群管理器。如果你想在Amazon EC2上运行,Spark提供EC2脚本可以自动启动集群。
需要注意的是,您还可以在本地运行Spark(可能在多核环境下)不需任何特殊设置,只要许可local[N]作为主URL,其中N是你想要的并行线程的数量。
8.我需要Hadoop来运行Spark吗?
答:不需要,但是如果你想要运行在一个集群上,您将需要某种形式的共享文件系统(比如NFS挂载在同一路径的每个节点上)。如果你拥有这种类型的文件系统,您可以使用独立模式部署Spark。
9.Spark需要修改Scala或Python的版本吗?
答:不需要。Spark不需要更改Scala或编译器插件。Python API使用标准CPython的实现,可以调用现有的C函数库,例如NumPy系统。
10.学习Scala有没有什么良好的资源?
答:你可以看看First Steps to Scala 有一个快速的了解,Scala tutorial for Java programmers,或者免费的在线图书Programmingin Scala。如果你有Java或者其他高级语言例如Ruby的编程经验,那么过渡到Scala是非常容易的。除此之外,Scala也有Java和Python的APIs。
刚刚接触这个领域,对于一些专业术语的翻译可能不是很到位,希望各位路过的大牛们可以指导指导,此版本仅供大家参考。
这篇关于Spark之FAQ的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!