怎么让程序运行在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;至于如何修改这个路径,有待研究

转载,仅供参考。

基于eclipse的Spark IDE

以WordCount为例:

package com.lxw.test

import org.apache.spark.{SparkConf, SparkContext}

import SparkContext._

object WordCount {

def main (args: Array[String]) {

if(args.length <2) {

println("Usage: WordCount ")

System.exit(1)

}

val hdfsIn = args(0)

val hdfsOut = args(1)

val sc = new SparkContext(new SparkConf().setAppName("WordCount"))

val srcData = sc.textFile(hdfsIn)

val result = srcData.flatMap(_.split("\\s+")).map((_,1)).reduceByKey(_+_)

result.saveAsTextFile(hdfsOut)

}

}

在eclipse中将程序打成普通的Java jar包即可。

在Spark的一台Client机器上使用spark-submit来提交运行jar包:

$SPARK_HOME/bin/spark-submit \ --name "lxw1234-wordcount" \ --master spark://192.168.1.130:7077 \ --executor-memory 1G \ --class com.lxw.test.WordCount \ /home/lxw1234/lxw-spark.jar /logs/site/2015-05-14/ /tmp/lxwoutput


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

原文地址:https://54852.com/yw/12101086.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存