使用shell脚本提示找不到java的class
来源:8-4 将ETL的数据加载到Hive表
Zu3zz
2019-09-07
项目路径如下 检查过了是没有问题的
com.zth.bigdata.hadoop.mapreduce.ecproject.mrv2.ETLApp
这种 情况是需要重新打一个jar包呢 还是路径有问题呀
java基础不太好 老师多担待
2回答
-
是需要先打包才能执行的。建议先把javase的东西学下,不然也没法玩转大数据
012019-09-07 -
爱吃彩虹糖的猫
2020-08-01
我也遇到过一个shell的问题,
问题描述:etl.sh运行提示提示说classNotFound,如图一。
环境:IDEA 2020.1, JDK1.8, MAVEN 3.6.3
一开始我以为我的lang3的版本格式不对,但是真正的原因是,按照老师原来的配置是没法打包依赖的jar包进去的。我上网查了下,有几个插件可以将依赖打进去。我这里用了 maven-assembly-plugin 这个插件。官网使用方法网址:http://maven.apache.org/plugins/maven-assembly-plugin/usage.html
接着,你会看到图三那个地方会生成了一个hadoop-train-v2-1.0-jar-with-dependencies.jar。
接着,上传这个jar包(可以重命名法为跟老师一样),或者改etl.sh这个
留给跟我一样在这踩了坑无法前进的小伙伴
```
<plugin>
<!-- NOTE: We don't need a groupId specification because the group is
org.apache.maven.plugins ...which is assumed by default.
-->
<!-- http://maven.apache.org/plugins/maven-assembly-plugin/usage.html -->
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptorRefs><!-- 这个地方是配置包含依赖的jar后缀名 -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>```
(图一)
(图二)
(图三)
042020-08-01
相似问题