当前位置: 首页 > news >正文

Idea+maven+scala构建包并在spark on yarn 运行

配置Maven项目

pom.xml配置文件中配置spark开发所需要的包,根据你Spark版本找对应的包,Maven中央仓库

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.3.1</version>
</dependency>

构建方式

配置Artifacts构建包

图片描述
图片描述
图片描述

配置Maven构建包

  • 使用Maven构建包只需要在pom.xml中添加如下插件(maven-shade-plugin)即可
 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.handlers</resource>
                                </transformer>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/spring.schemas</resource>
                                </transformer>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>cn.mucang.sensor.SensorMain</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

构建示例scala代码

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

object InfoOutput {
  def main(args: Array[String]): Unit = {
     val sparkConf = new SparkConf().setMaster("local[*]").setAppName("NginxLog")
    val sc = new SparkContext(sparkConf)
    val fd = sc.textFile("hdfs:///xxx/logs/access.log")
    val logRDD = fd.filter(_.contains(".baidu.com")).map(_.split(" "))
    logRDD.persist(StorageLevel.DISK_ONLY)
    val ipTopRDD = logRDD.map(v => v(2)).countByValue().take(10)
    ipTopRDD.foreach(println)
  }
}

图片描述

上传Jar

  • 使用scp上传Jar包到spark-submit服务器,Jar位置在项目的out目录下
  • 因为没有依赖第三方包所以打出怕jar会很小,使用spark-submit提示任务:
spark-submit --class InfoOutput --verbose --master yarn --deploy-mode cluster nginxlogs.jar

相关文章:

  • linux基础语法
  • 谈谈如何通过linux系统RHCE考试
  • 漫谈计算机组成原理(八)原码、补码、反码
  • 【c】插入排序
  • 20180824Noip模拟赛10分总结
  • jquery 取id模糊查询
  • DBA:快速了解MySQL及语法
  • 回顾·数据分析的势道术
  • WPF中ListBox滚动时的缓动效果
  • MySQL事务
  • javaOOM该分析dump文件而不是看异常log日志原因
  • DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么
  • NOIP2011DAY1T3 Mayan游戏
  • 1109 Group Photo
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1...
  • Electron入门介绍
  • Hibernate【inverse和cascade属性】知识要点
  • Javascript 原型链
  • node和express搭建代理服务器(源码)
  • Redis在Web项目中的应用与实践
  • WebSocket使用
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前言-如何学习区块链
  • 使用parted解决大于2T的磁盘分区
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 再谈express与koa的对比
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​MySQL主从复制一致性检测
  • ​水经微图Web1.5.0版即将上线
  • #define 用法
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (9)STL算法之逆转旋转
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (九)One-Wire总线-DS18B20
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原創) 未来三学期想要修的课 (日記)
  • (转) 深度模型优化性能 调参
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .axf 转化 .bin文件 的方法
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net Remoting常用部署结构
  • .net 获取url的方法
  • .NET 依赖注入和配置系统
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .net中生成excel后调整宽度
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @EnableWebMvc介绍和使用详细demo
  • @RequestParam详解