加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

尚硅谷大数据技术之Spark基础解析

(2019-11-05 14:05:24)
标签:

it

java培训

linux

大数据

尚硅谷

分类: 大数据学科

3 案例实操

Spark Shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用Maven来管理jar包的依赖。

3.1 编写WordCount程序

1)创建一个Maven项目WordCount并导入依赖


   
        org.apache.spark
        spark-core_2.11
        2.1.1
   

 

        WordCount

       


                net.alchim31.maven

scala-maven-plugin
                3.2.2
                
                    
                       
                          compile
                          testCompile
                       
                    
                 
           

 

                org.apache.maven.plugins

                maven-assembly-plugin

                3.0.0

               

                    

                       

                            WordCount

                       

                   

                   

                        jar-with-dependencies

                   

               

               

                   

                        make-assembly

                        package

                       

                            single

                       

                   

               

 

       

 

2)编写代码

package com.atguigu

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

object WordCount{

  def main(args: Array[String]): Unit = {

//1.创建SparkConf并设置App名称
    val conf = new SparkConf().setAppName("WC")

 

//2.创建SparkContext,该对象是提交Spark App的入口
    val sc = new SparkContext(conf)

    //3.
使用sc创建RDD并执行相应的transformationaction
    sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_, 1).sortBy(_._2, false).saveAsTextFile(args(1))

//4.关闭连接
    sc.stop()
  }
}

3)打包到集群测试

bin/spark-submit \

--class WordCount \

--master spark://hadoop102:7077 \

WordCount.jar \

/word.txt \

/out

3.2 本地调试

本地Spark程序调试需要使用local提交模式,即将本机当做运行环境,MasterWorker都为本机。运行时直接加断点调试即可。如下:

创建SparkConf的时候设置额外属性,表明本地执行:

val conf = new SparkConf().setAppName("WC").setMaster("local[*]")

    如果本机操作系统是windows,如果在程序中使用了hadoop相关的东西,比如写入文件到HDFS,则会遇到如下异常:

尚硅谷大数据技术之Spark基础解析

出现这个问题的原因,并不是程序的错误,而是用到了hadoop相关的服务,解决办法是将附加里面的hadoop-common-bin-2.7.3-x64.zip解压到任意目录。

尚硅谷大数据技术之Spark基础解析

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有