Spark利用(idea+maven+scala)创建wordcount打包jar并在spark on yarn上运行——Spark的开发

今天的你不付昨天的辛苦,今天的辛苦定会拥抱明日的幸福,
每一次的成长,都要给自己以鼓励,每一次的突破,都给自己以信心,万花丛中我不是最美,但我有我的自信
————————————送给一直努力的你
今天的学习:
Spark利用(idea+maven+scala)创建wordcount打包jar并在spark on yarn上运行——Spark的开发
生产中就是这么玩的:
一:我们先用 idea+maven+scala创建wordcount

package g5.learning

import java.net.URI
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.spark.{SparkConf, SparkContext}
object LogServerScala {
  def main(args: Array[String]): Unit = {
    val sparkConf = new  SparkConf()
     // .setMaster("local[2]")
//      .setAppName("LogServerScala")
    //这里不能写本地,把文件写死了
    val sc = new SparkContext(sparkConf)
    //输入args(0) 输出:args(1)
    val uri = new URI("hdfs://hadoop001:9000")
    //这个过程是为了在output可以循环使用,如果存在就删掉
    val fileSystem = FileSystem.get(uri,sc.hadoopConfiguration,"hadoop")
    if (fileSystem.exists(new Path(args(1)))){
      fileSystem.delete(new Path(args(1)),true)
    }

      val lines = sc.textFile(args(0))
    lines.map(x => {
      val temp = x.split("\t")
      (temp(0),1L)//(url,count)
    }).reduceByKey(_+_).saveAsTextFile(args(1))

    sc.stop()
    fileSystem.close()//文件系统最后也一定要关掉
  }
}



代码的写入,要注意一些问题,否则后期运行时会报很多错误的
二:打包
View ==>Tool Windows ==> Maven Projects ==> package

Spark利用(idea+maven+scala)创建wordcount打包jar并在spark on yarn上运行——Spark的开发
三:
上传jar包
E:\ruozedata_workspace\g5spark1\target\test-classes
你对应的jar路径
re -be上传jar包
Spark利用(idea+maven+scala)创建wordcount打包jar并在spark on yarn上运行——Spark的开发

[[email protected] shell]$ vi log-yarn.sh

export HADOOP_CONF_DIR=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
$SPARK_HOME/bin/spark-submit \
--class g5.learning.LogServerScala \
--name LogServerScala \
/home/hadoop/shell/g5spark1-1.0.jar \
hdfs://hadoop001:9000/logs/input/ hdfs://hadoop001:9000/logs/output1

这里要有相关的配置
四:spark on yarn上运行

[[email protected] shell]$ vi log-yarn.sh
[[email protected] shell]$ ./log-yarn.sh

我们去控制台看一下:

Spark利用(idea+maven+scala)创建wordcount打包jar并在spark on yarn上运行——Spark的开发
成功