怎么让程序运行在spark集群上

怎么让程序运行在spark集群上,第1张

本文前提是已经正确安装好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤:

1、构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/build.sbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/build.properties文件配置你要使用什么版本的sbt对项目 *** 作;project/plugins.sbt文件是给项目添加所需的插件;project/Build.scala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:

2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProject.jar path")

3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的jar文件存放路径为:项目根目录/target/scala-xx.xx.xx/your-project-name_xx.xx.xx-xx.jar

4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围渗孝饥的不同有多种更改环境变量的方式,这里只说我的配置方式:spark根目录下的conf/spark-env.sh文件添加SPARK_CLASSPATH:xxxxxxxx)

5、配置好环境变量后就可以在spark的根目录下使用./run脚本运行你的程序了例慎谈如:./run spark.examples.SparkPi spark://masterIP:port注意,如果程序涉及IO *** 作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究

转载,仅供参考。丛返

一、编写第一个用scala写的spark应用:

仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序

链接如下:

即:

/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp {

def main(args: Array[String]) {

val logFile = "YOUR_SPARK_HOME/README.md" // Should be some file on your system

val conf = new SparkConf().setAppName("Simple Application"脊手)

val sc = new SparkContext(conf)

val logData = sc.textFile(logFile, 2).cache()

val numAs = logData.filter(line =>line.contains("a")).count()

val numBs = logData.filter(line =>line.contains("b")).count()

println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))

}}

整个程序作用是:找到这个文件

YOUR_SPARK_HOME/README.md

中有几个a和几个b。

二、用sbt进行打包成jar:

命令:sbt package

具体步骤见

中的Self-Contained Applications

打包时候几点注意:

1、

目录结构一定要对

目录结构可以通过find .来看

有点类似cmake的感觉

2、

总时间,近30分钟,开始打开会terminal没现象10分钟,然后开始要各种resolve,之后要下载很多库,我这边滑衡网速超慢

sbt是个联网编译器,

Spark的应用用到了很多RDD的变换,来编译这些库都得去网上下相应的包樱让嫌

最后显示,编译时间11s

这时成功完成SimpleApp

三、在本机上测试:

命令为:

YOUR_SPARK_HOME/bin/spark-submit \

--class "SimpleApp" \

--master local[4] \

target/scala-2.10/simple-project_2.10-1.0.jar

我对jar的理解就是一个可执行文件了,这个可执行文件在JVM上就可以跑了,local中4是指设置成4个线程,但具体原因我也不知道

注意submit的参数:

--class中 SimpleApp是包名

上传的的jar的地址别写错

一、编写第一个用scala写的spark应用:

仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序

链接如下:

即:

/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp {

def main(args: Array[String]) {

val logFile = "YOUR_SPARK_HOME/README.md" // Should be some file on your system

val conf = new SparkConf().setAppName("Simple Application")

val sc = new SparkContext(conf)

val logData = sc.textFile(logFile, 2).cache()

val numAs = logData.filter(line =>line.contains("a")).count()

val numBs = logData.filter(line =>line.contains("b")).count()

println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))

}}

整个程序作用是:找到这个文件

YOUR_SPARK_HOME/README.md

中有几个a和几个b。

二、用sbt进行打包成jar:

命令:sbt package

具体步骤见

中的Self-Contained Applications

打包时候几点注意:

1、

目录结构一定要对

目录结构可以通过find .来看

有点类似cmake的感觉

2、

总时间,近30分钟,开始打开会terminal没现象10分钟,然后开始要各种resolve,之后要下载很多库,我这边网速超慢

sbt是个联网编译器,

Spark的应用用到了很多RDD的变换,来编译这些库都得去网上下相应的包

最后显示,编译时间11s

这时成功完成SimpleApp

三、在本机上测试:

命令为:

YOUR_SPARK_HOME/bin/spark-submit \

--class "SimpleApp" \

--master local[4] \

target/scala-2.10/simple-project_2.10-1.0.jar

我对jar的理解就是一个可执行文件了,这个可执行文件在JVM上就可以跑了,local中4是指设置成4个线程,但具体原因我也不知道

注意submit的参数:

--class中 SimpleApp是包名

上传的的jar的地址别写错

阅读全文

Spark是通用数据处理引擎坦汪,适用于多种情况。 应用程序开发人员和数据科学家将Spark集成到他们的应用程序中,以快速地大规模查询,分析和转换数据。 与Spark最频繁相关的任务包括跨大型数据集的交互式查询,来自传感器或金融系统的流数据处理以及机器学习任务。

Spark于2009年开始运作,最初是加州大学伯克利分校AMPLab内部的一个项目。 更具体地说,它是出于证明Mesos概念的需要而诞生的,Mesos概念也是在AMPLab中创建的。 在Mesos白皮书《 Mesos:数据中心中的细粒度资源共享平台》让敬仔中首次讨论了Spark,其中最著名的作者是Benjamin Hindman和Matei Zaharia。

2013年,Spark成为Apache Software Foundation的孵化项目,并于2014年初被提升为该基金会的顶级项目之一。 Spark是基金会管理的最活跃的项目之一,围绕该项目成长的社区包括多产的个人贡献者和资金雄厚的企业支持者,例如Databricks,IBM和中国的华为。

从一开始,Spark就被优化为在内存中运行。 它比Hadoop的MapReduce等替代方法更快地处理数据,后者倾向于在处理的每个阶段之间向计算机硬盘写入数据或从计算机硬盘写入数据。 Spark的支持者声称,Spark在内存中的运行速度可以比Hadoop MapReduce快100倍,并且在以类似于Hadoop MapReduce本身的方式处理基于磁盘的数据时也可以快10倍。 这种比较并不完全公平,这不仅是因为稿乎原始速度对Spark的典型用例而言比对批处理更为重要,在这种情况下,类似于MapReduce的解决方案仍然很出色。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12199729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存