Apache Beam程序向导4

2023-11-11

今天在集群上实验Beam On Spark的时候,遇到一个坑爹的问题,这个问题总结起来是一个java.lang.NoClassDefFoundError

错误,具体错误如下图1所示


1 错误提示

该错误提示SparkStreamingContext没有定义,这说明java虚拟机加载进来了SparkStreamingContext,也就是相应的代码包已经导入进来了,这个阶段没有什么问题。接下来就得看看是不是代码包版本不合适。

我的maven依赖如下图2所示


2 Maven依赖包

于是我在各种尝试之后,终于找到了一种有希望的解决方案,那就是将spark的版本2.1.0改为1.6.3版本。

修改后状况如下:


3 本地运行成功

 

这里看似成功了,但是这只是在本机测试的时候有了Beam On Spark的运行测试结果。至于在Spark集群中能否跑起来,我们还要按照官方提供的方法生成对应的jar包,并通过Spark-submit提交的方式提交到yarn集群中去通过yarn来调度运行。这种情况下运行成功了,那才叫真正的成功。所以现在还不是高兴的时候,那么接下来我们就开始继续接下来的实验吧。

首先应该在mavenpom.xml文件中加入以下对shade的构建依赖

(该部分加入到根节点的build节点的plugins节点之中

<build>

            <plugins>

   

            </plugins>

</build>

 

<plugin>

  <groupId>org.apache.maven.plugins</groupId>

  <artifactId>maven-shade-plugin</artifactId>

  <configuration>

    <createDependencyReducedPom>false</createDependencyReducedPom>

    <filters>

      <filter>

        <artifact>*:*</artifact>

        <excludes>

          <exclude>META-INF/*.SF</exclude>

          <exclude>META-INF/*.DSA</exclude>

          <exclude>META-INF/*.RSA</exclude>

        </excludes>

      </filter>

    </filters>

  </configuration>

  <executions>

    <execution>

      <phase>package</phase>

      <goals>

        <goal>shade</goal>

      </goals>

      <configuration>

        <shadedArtifactAttached>true</shadedArtifactAttached>

        <shadedClassifierName>shaded</shadedClassifierName>

      </configuration>

    </execution>

  </executions>

</plugin>

 

首先将项目打包拷贝到提交应用的那台机器上并解压。

如果已经安装好了maven的环境了的话,就直接在解压之后的根目录下执行如下命令

mvnpackage

然后就等着编译结束


 

 

…………………..

如下图所示,编译成功后的jar包就在target目录下



spark提交jar包的方式提交,提交的脚本如下:



${SPARK_HOME}/bin/./spark-submit\                         

 --class org.tongfang.beam.examples.WordCount \##指定要运行的类,全路径+类名

 --master yarn \ ##提交给yarn调度

 --deploy-mode cluster \##集群模式运行

/home/ubuntu/shaded/target/shaded-1.0.0-shaded.jar##指定jar包路径

给脚本添加可执行权限之后就可以开始运行了:


经过一会儿等待之后就成功了,如下图所示:

 


文章来源来自数模堂,请扫码关注


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Beam程序向导4 的相关文章

随机推荐

  • 卷积操作的填充和输出大小的公式

    输入图像大小为II 卷积核大小为kk 填充为p 步长为s 输出大小为O O 那么 如果输出不能对齐 常采用下采用
  • c语言中变量不初始化会怎么样?

    目录 变量初始化 未初始化 随机数的产生 产生原理 初始化必要性 问题来源 在日常学习结构体的语法时看到文章中用数组进行举例 进行输出 在讨论数组是否初始化 输出的值的问题 代码如下 include
  • CTFHUB-UA注入

    User Agent User Agent 通常就是用户的浏览器相关信息 例如 User Agent Mozilla 5 0 X11 Linux x86 64 rv 12 0 Gecko 20100101 Firefox 12 0 Hack
  • HTTP Status 500 An exception occurred processing JSP page

    问题代码 出现异常界面 从上图可知在19处出现了异常 主要有两处 以及 为了很好的解决以上错误 我们将依次把传进来的各个参数在tomcat控制台上打印输出 先看看结果 主要操作代码 控制台显示结果 从以上输出可看到getRemoteAddr
  • Object.keys()、Object.values()、Object.entries()详解

    在JavaScript中 Object keys 是一个内置函数 用于获取一个对象中所有可枚举属性的名称 并返回一个包含这些属性名称的数组 以下是使用Object keys 函数的示例 const obj a 1 b 2 c 3 const
  • 代码混淆后可能出现的问题

    1 ClassNotFoundException NoSuchMethodError 原因 这种异常会在好多情况下出现 比如 本地代码通过反射调用其他的类 但是经过了混淆之后 就会出现如上异常 调用了JNI之后 C或者C 和java代码进行
  • 前端面试题复习二

    组件中写 name 选项有什么作用 项目使用 keep alive 时 可搭配组件 name 进行缓存过滤 DOM 做递归组件时需要调用自身 name Vue devtools 调试工具里显示的组见名称是由 Vue 中组件 name 决定的
  • 战双服务器维护,战双帕弥什维护到几点 战双帕弥什维护什么时候结束

    战双帕弥什今日正式火爆开测 随着大量玩家的加入 服务器也难免出现了过载情况 很多玩家在登陆时出现了战双帕弥什提示服务器未开放请稍后再试的情况 那么战双帕弥什维护什么时候结束 战双帕弥什维护原因是什么 快一起了解一下吧 战双帕弥什维护原因 1
  • C++ 匿名对象的生命周期——强化训练(二)

    include
  • STM32F10X单片机学习之PWM.C代码注解

    include stm32f10x h Device header void PWM Init void RCC APB1PeriphClockCmd RCC APB1Periph TIM2 ENABLE 开启 APB1 外设总线上的外设时
  • Unity最新热更新框架 hybridclr_addressable

    GitHub YMoonRiver hybridclr addressable 开箱即用的商业游戏框架 集成了主流的开发工具 将主流的GameFramework修改 支持Addressable和AssetBundle 已完善打包工具和流程
  • “黑色星期五”数据分析实战

    项目背景 美国圣诞节大采购一般是从感恩节之后开始的 感恩节是每年11月的第四个星期四 因此它的第二天 也就是美国人大采购的第一天 在这一天 美国的商场都会推出大量的打折和优惠活动 以在年底进行最后一次大规模的促销 这有点类似于淘宝的双十一购
  • Java项目——文档搜索引擎

    文章目录 1 项目概述 2 准备阶段 2 1 项目创建 2 2 准备静态页面 3 搜索逻辑 4 分词 5 处理 HTML 文件 5 1 枚举文件夹中所有文件 5 2 预处理文件 5 2 1 获取标题 5 2 2 获取 URL 5 2 3 获
  • [VUE] 过滤器函数

    VUE 过滤器可以用在两个地方 双花括号插值和 v bind 表达式 代码如下 message capitalize div div 你可以在一个组件的选项中定义本地的过滤器 filters capitalize function valu
  • Apple Magic Mouse 卡顿的问题

    更新时间 2022 06 30 17 58 37 发现在公司使用就会很卡顿 在家里使用就很流畅 感觉还是公司信号被干扰了 更新时间 2022年06月13日 尝试过下面所以的方法 以及怀疑是键盘蓝牙干扰 把键盘关掉 最后的结论 都没什么卵用
  • opencv读写和保存中文路径图片及base64与图片互转

    文章目录 1 opencv读取中文路径图片 2 opencv保存中文路径图片 3 图片转base64 4 base64转图片 有几点要注意 cv2 imread filename flags cv2 imwrite filename img
  • 交叉编译器的安装方法

    首先简单介绍一下 所谓的搭建交叉编译环境 即安装 配置交叉编译工具链 在该环境下编译出嵌入式Linux系统所需的操作系统 应用程序等 然后再上传到目标机上 交叉编译工具链是为了编译 链接 处理和调试跨平台体系结构的程序代码 对于交叉开发的工
  • STL 常用函数

    STL 常用函数 本文参考自 C STL常用函数总结 总结学习用 sort 函数 排序函数 sort 起始地址 末尾地址 cmp 其中cmp是可以自己定义的函数名 sort a a 5 sort vec begin vec end bool
  • ajax内置对象有什么,用js内置对象XMLHttpRequest 来用ajax

    步骤 用XMLHTTPRequest来进行ajax异步数据交交互 主要有几个步骤 1 创建XMLHTTPRequest对象 最复杂的一步 if window XMLHttpRequest code for IE7 Firefox Chrom
  • Apache Beam程序向导4

    今天在集群上实验Beam On Spark的时候 遇到一个坑爹的问题 这个问题总结起来是一个java lang NoClassDefFoundError 错误 具体错误如下图1所示 图1 错误提示 该错误提示SparkStreamingCo