说到Spark,我一定要先说说Hadoop及Java.
现在我是一个Java开发者,几年前就开始接触和使用Hadoop. 最初的一个项目其实是一个后台并行计算的项目,那时经过选型后,最后决定使用Hadoop,当时是基于几个原因:
1. Apache下的项目质量都是很高的,很多项目都广为Java开发者使用,到今天来看,这个结论也不为过,如(Ant, ActiveMQ, Axis2,CXF,Cassandra, Apache commons, HTTP Server,JMeter,Lucene,log4j,Maven, ...)
2. 有成熟的产品应用(Yahoo 3000台的集群)
3. M/R的概念,简化了编程模型
一路用下来,感觉Hadoop的设计思想还是不错的,但是它对于批处理作业延迟完全是可以接受的,但是对于有一定实时要求的项目,它的性能就很不理想了。最主要的原因有几个:
1.它是以job形式进行提交的
2.它的Job相对来说比较重,包括步骤jar到各个节点, Job进行数据的迭代等,一个最简单的Job都要秒计
由于那时对Hadoop的设计不太了解,所以也想象着有什么办法能够执行轻量级的M/R,比如有些东西一直在内存中运行,不用spill到磁盘等,但最终也无技可施,后面就一直放置了。
转回来说Spark, 我想Hadoop存在的问题也困扰着其它的使用者,所以才会有Spark的出现吧!
最开始接触Spark时,一看到它的开发语言是Scala,心里就有点儿想法:为什么没用Java开发呢,功能强大,运行速度已有了飞速的提高,已经可以和C/C++的速度抗衡(开发效率那肯定比C++快不知道多少呢
, 看到C++的同事大谈良好的设计,但还只能支持Windows平台时,我只能苦笑:无知者无畏啊). 再看看Scala写的代码,那都是些什么啊,语法稀奇古怪的,从来没见过这些奇怪的语法(回忆一下我学过的语言, 汇编, Basic, DBase/Foxbase/FoxPro, C/C++, Delphi, VB, PB, Java, Javascript, Linux shell, ...,哪个也不象啊).
我都有几次要放弃了,最终还是说再看看吧,先找本Scala的书读读。我看的是"快读Scala",慢慢的,我理解了,为什么要用Scala, 就看起来就象是Java的升级版嘛。
快来看Scala的几个特性,让你有兴趣去学这门新语言:
1. 它最终也会编译成Java VM代码,看起来象不象Java的壳程序?-至少做为一个Java开发人员,你会松一口气
2. 它可以使用Java包和类 - 又放心了一点儿,这样不用担心你写的包又得用另外一种语言重写一遍
3. 更简洁的语法和更快的开发效率(这意味着你的手指少受一点儿键盘的折磨,
, 对于我这个希望进行快速开发的人来说,是利好吧。
这相信这让Java开发者心情很舒畅,如果你曾经用过VB,然后再用VB.net的话,你就知道什么样的感觉了:沮丧,被骗, ...
好吧,如果是真正的程序猿的话,那现在开始学Scala吧!
分享到:
相关推荐
在本安装包“spark-3.2.4-bin-hadoop3.2-scala2.13”中,包含了用于运行Spark的核心组件以及依赖的Hadoop版本和Scala编程语言支持。以下是对这些关键组成部分的详细解释: 1. **Spark**: Spark的核心在于它的弹性...
此外,还要确保系统满足Spark的其他依赖,例如Python(对于PySpark)和Scala(Spark的基础语言)。安装完成后,你可以通过`./bin/spark-shell`启动Spark的交互式Shell,或者使用`./bin/pyspark`启动Python版本的...
- Spark提供了丰富的编程接口,包括Scala、Java、Python和R,便于不同背景的开发人员使用。 - **DataFrames/Datasets**:在所有语言中引入的统一API,简化了跨语言的数据操作。 5. **安全性**: - Spark 2.4.7...
Spark Scala API 是一个用于大数据处理的强大工具,它结合了Apache Spark的高性能计算框架与Scala编程语言的简洁性和表达力。这个zip压缩包很可能是包含了Spark的Scala开发接口及相关示例,便于开发者在Scala环境中...
- 使用Scala、Java、Python或R语言编写Spark应用。 - 使用SparkSubmit工具提交应用程序到集群。 - Spark Shell提供了一个交互式的环境,可以直接测试代码。 7. 性能优化: - 调整Executor的数量、内存大小和CPU...
Scala 2.13是Spark的开发语言,因此需要匹配版本的JDK环境。解压后,你可以配置环境变量,如SPARK_HOME,然后通过bin目录下的启动脚本来运行Spark。此外,还需要配置Hadoop的相关路径,如HADOOP_CONF_DIR,以便Spark...
在Ubuntu里安装spark,spark-2.1.0-bin-without-hadoop该版本直接下载到...它提供使用 Java、Scala、Python 和 R 语言的开发 API,支持跨多个工作负载重用代码—批处理、交互式查询、实时分析、机器学习和图形处理等。
在开发应用程序时,可以使用Scala、Java、Python或R语言的Spark API,编写分布式数据处理代码。 Spark支持多种数据源,包括HDFS、Cassandra、Amazon S3等,这使得它能够处理来自不同来源的数据。此外,Spark还广泛...
Spark支持多种编程语言,包括Scala、Java、Python和R。开发者可以根据需求选择合适的语言编写应用程序,然后使用`spark-submit`脚本来提交任务到集群。 **6. 性能调优** Spark性能优化主要包括内存管理、任务调度...
3. **多模式编程**:Spark支持多种编程语言,包括Java、Scala、Python和R,这使得开发人员可以根据自己的喜好选择合适的工具。 4. **Spark SQL**:Spark SQL是Spark的一个模块,用于处理结构化数据,它集成了SQL...
Spark提供了多种编程接口,包括Scala、Java、Python和R,开发者可以根据项目需求选择合适的语言。DataFrame API简化了数据操作,提供了类似SQL的体验。 总的来说,Spark 3.1.2与Hadoop 3.2的结合为大数据处理提供了...
**Spark与Scala简介** Spark是大数据处理领域的一个高效、通用且可扩展的开源框架,它主要用Scala...Spark的API设计使得开发者可以轻松地构建高性能的数据处理应用,而Scala语言的特性则提升了开发效率和代码质量。
总结来说,Spark 2.3.1与Hadoop 2.7的集成提供了高效的大数据处理能力,支持多种编程语言(如Scala、Java、Python),并且拥有强大的组件如Spark SQL和Spark Streaming,适用于实时分析、机器学习和图计算等多种场景...
Spark-assembly-1.5.2-hadoop2.6.0.jar是Apache Spark的一个关键组件,主要用于在Scala环境中开发Spark应用程序。这个特定的版本(1.5.2)与Hadoop 2.6.0兼容,这意味着它可以无缝地运行在支持Hadoop 2.6.0的集群上...
这个版本支持Scala 2.12.0,Scala是一种函数式编程语言,广泛用于开发Spark应用程序。使用Scala编写Spark代码可以利用其强大的类型系统和并发模型,提高代码的可读性和可维护性。Spark API为Scala提供了丰富的数据...
用户解压后,可以根据官方文档指导配置环境变量,启动Spark服务,然后使用Python、Java、Scala或R等编程语言编写Spark应用程序。 总的来说,Spark 3.0.1在大数据处理领域提供了强大的功能和性能,无论是数据科学家...
标题提到的"scala-2.12.14.zip&scala-2.12.11.tgz"是Scala的不同版本,针对不同的操作系统进行了打包。Windows用户可以使用".zip"格式的文件,而Linux用户则适合使用".tgz"格式的文件。这里我们主要关注Linux版本的...
4. **Scala**:Scala是一种多范式的编程语言,它是Spark的主要开发语言,提供了函数式编程和面向对象编程的融合。项目中,Scala的使用可能体现在定义case class以构建DataFrame,使用高阶函数进行数据处理,以及利用...
Spark 2.1 Scala API 是一个强大的分布式计算框架,它基于 Scala 语言构建,提供了丰富的数据处理和分析功能。在本文中,我们将深入探讨如何自己编译 Spark 2.1 Scala API,以及这个过程涉及的关键知识点。 首先,...
Spark Scala开发依赖包是针对Apache Spark项目在Scala编程语言环境下进行开发所必需的软件组件集合。Spark是一个快速、通用且可扩展的大数据处理框架,它提供了丰富的API,其中包括使用Scala编写的API,使得开发者...