• 大数据开发之词频统计传参打包成jar包发送到Hadoop运行并创建可执行文件方便运行


    添加spark的jar包

    在这里插入图片描述
    点击Project Structure
    在这里插入图片描述
    Global Libararies中
    点击+
    选择java
    然后选择spark文件里的jars下所有的jar包
    在这里插入图片描述

    然后点击ok即可。

    main传参调试

    首先给出词频统计代码

    //包
    import org.apache.spark.{SparkContext, SparkConf}
    object testMainInput {
      def main(args: Array[String]): Unit = {
        if(args.length < 2){println(args.length);println("Please input 2 args, return"); return}
        val conf = new SparkConf().setAppName("spark1").setAppName("icy hunter").setMaster("local[*]")
        val sc = new SparkContext(conf)
        sc.textFile(args(0), 4)
          .flatMap(_.split(" "))
          .map((_, 1))
          .reduceByKey(_+_)
          .saveAsTextFile(args(1))
        sc.stop()
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    此时可以测试一下传参效果。

    idea调试时,main参数输入:菜单->run->Edit Configurations:
    在这里插入图片描述
    这就是传入的两个参数。

    可以调试的时候试试。

    打包成jar包

    首先需要修改代码,将setMaster(“local[*]”)删了

    //包
    import org.apache.spark.{SparkContext, SparkConf}
    object testMainInput {
      def main(args: Array[String]): Unit = {
        if(args.length < 2){println(args.length);println("Please input 2 args, return"); return}
        val conf = new SparkConf().setAppName("spark1").setAppName("icy hunter")
        val sc = new SparkContext(conf)
        sc.textFile(args(0), 4)
          .flatMap(_.split(" "))
          .map((_, 1))
          .reduceByKey(_+_)
          .saveAsTextFile(args(1))
        sc.stop()
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    project structure中如下选项
    在这里插入图片描述

    进入

    在这里插入图片描述
    Main Class点击文件夹标志选择
    在这里插入图片描述
    点击ok
    在这里插入图片描述

    点击ok
    在这里插入图片描述
    然后需要进行瘦身,把不需要的包删了,这样打包出来就比较小了。
    在这里插入图片描述
    点击-号,这些全删了,留最后一个compile output即可。
    在这里插入图片描述
    然后ok了。
    在这里插入图片描述
    同时点击一下,我们也可以看到打包后存放的路径

    接下来开始打包:
    在这里插入图片描述
    点击build Artifacts

    在这里插入图片描述

    跳出这个,点击rebuild即可。
    这样就打包完成了。

    发送到Hadoop运行

    在这里插入图片描述

    首先找到jar包位置
    打开终端

    spark-submit --master yarn --deploy-mode cluster testMainInput.jar "hdfs://192.168.3.215:9000/mydir123/a1.txt" "hdfs://192.168.3.215:9000/mydir123/out3"
    
    • 1

    其中路径得你自己集群的文件路径才能运行成功。

    使用脚本运行

    创建一个脚本文件

    vim show.sh
    
    • 1

    然后输入:

    echo Start spark-submit:
    spark-submit --master yarn --deploy-mode cluster /home/bigdata3/IdeaProjects/testMainInput/out/artifacts/testMainInput_jar/testMainInput.jar "hdfs://192.168.3.215:9000/mydir123/a1.txt" "hdfs://192.168.3.215:9000/mydir123/out4"  
    
    • 1
    • 2

    注意jar包的路径得全路径了。

    然后可以

    bash show.sh
    
    • 1

    直接运行

    也可以

    chmod +x show.sh
    
    • 1

    给予可执行权限
    然后
    ./show.sh
    进行运行

    参考

    上课笔记

  • 相关阅读:
    CTF Misc(3)流量分析基础以及原理
    Python爬虫在Web应用自动化测试中的应用
    输入网址到网页显示,期间发生了什么?(收藏篇)
    2022年最新《谷粒学院开发教程》:9 - 前台课程模块
    工业智能网关BL110应用之十八: 如何添加COM口采集的设备
    新建vue-element项目
    全国职业技能大赛云计算--高职组赛题卷③(私有云)
    干货分享:有什么软件可以让照片动起来?
    微信公众号密码转换的密钥
    Hadoop的概述与安装
  • 原文地址:https://blog.csdn.net/qq_52785473/article/details/128129444