如何从IDEA提交任务到Spark,并查看任务执行结果

1.创建程序
打开IDEA——选择Maven项目——在下面找到scala22
2.IDEA程序如下
package com.demo

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.log4j.{Level,Logger}

object HelloWorld {
def main(args:Array[String]): Unit = {
//屏蔽日志
// Logger.getLogger(“org.apache.spark”).setLevel(Level.WARN)
// Logger.getLogger(“org.eclipse.jetty.server”).setLevel(Level.OFF)

//test.txt文件里包含了hello world行,读者可自己修改测试
val inputfile="file:///home/wangyang/helloSpark.txt"

val conf = new SparkConf().setAppName("HelloWorld").setMaster("spark://192.168.124.59:7077")

val sc = new SparkContext(conf)

val textfile = sc.textFile(inputfile)

//查询包含hello world的行
val lines = textfile.filter(line => line.contains("helloworld"))

lines.foreach(println)

}

bulid.sbt依赖(视情况自己修改)

name := “FirstSpark”

version := “0.1”

scalaVersion := “2.11.0”

libraryDependencies += “org.apache.spark” %% “spark-core” % “2.4.0”

3.打成jar包
如何从IDEA提交任务到Spark,并查看任务执行结果_第1张图片
如何从IDEA提交任务到Spark,并查看任务执行结果_第2张图片
如何从IDEA提交任务到Spark,并查看任务执行结果_第3张图片
如何从IDEA提交任务到Spark,并查看任务执行结果_第4张图片
4.使用rz命令将jar包以及要读的文件其上传到服务器上

5.提交运行

spark-submit --master spark://localhost:7077
/home/wangyang/FirstSpark.jar

其中最后一项是你的jar包位置
6.查看运行日志
192.168.124.59:8080 sdout不一定在三台服务器哪一台上有显示

如何从IDEA提交任务到Spark,并查看任务执行结果_第5张图片
7.若运行报文件未找到的错

关于在Spark集群中读取本地文件抛出找不到文件异常的问题

一般情况下,我们在本地ide里写好程序,打成jar包上传到集群取运行,有时候需要读取数据文件,这个时候需要注意,如果程序中读取的是本地文件,那么,要在所有的节点都有这个数据文件,只在master中有这个数据文件时执行程序时一直报找不到文件

解决方式1:让每个Worker节点的相应位置都有要读取的数据文件。

解决方式2:直接将数据文件上传到hdfs,达到数据共享。(强烈推荐,比格更高更专业)

你可能感兴趣的:(如何从IDEA提交任务到Spark,并查看任务执行结果)