189 8069 5689

ApacheBeam程序向导4

Apache Beam程序向导4

创新互联从2013年开始,是专业互联网技术服务公司,拥有项目网站制作、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元霍州做网站,已为上家服务,为霍州各地企业和个人服务,联系电话:18982081108

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

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

Apache Beam程序向导4

图1错误提示

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

我的maven依赖如下图2所示

Apache Beam程序向导4

图2 Maven依赖包

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

修改后状况如下:

Apache Beam程序向导4

图3本地运行成功

 

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

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

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

           

   

           

 

<plugin>

 <groupId>org.apache.maven.pluginsgroupId>

 <artifactId>maven-shade-pluginartifactId>

 <configuration>

   <createDependencyReducedPom>falsecreateDependencyReducedPom>

   <filters>

     <filter>

       <artifact>*:*artifact>

       <excludes>

         <exclude>META-INF/*.SFexclude>

         <exclude>META-INF/*.DSAexclude>

         <exclude>META-INF/*.RSAexclude>

       excludes>

     filter>

   filters>

 configuration>

 <executions>

   <execution>

     <phase>packagephase>

     <goals>

       <goal>shadegoal>

     goals>

     <configuration>

       <shadedArtifactAttached>trueshadedArtifactAttached>

       <shadedClassifierName>shadedshadedClassifierName>

     configuration>

   execution>

 executions>

plugin>

 

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

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

mvnpackage

然后就等着编译结束

Apache Beam程序向导4…………………..

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

Apache Beam程序向导4

 

 

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

Apache Beam程序向导4

${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包路径

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

Apache Beam程序向导4

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

 Apache Beam程序向导4

文章来自数模堂,如需更多交流,请扫描关注

Apache Beam程序向导4


当前名称:ApacheBeam程序向导4
转载源于:http://cdxtjz.cn/article/pjhgde.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。