Hive udf 或者 spark maven打包问题
正常打包maven pom配置如下
<properties> <project.build.sourceEncoding>UTF8project.build.sourceEncoding> <hive.version>1.2.1hive.version> properties> <dependencies> <dependency> <groupId>org.apache.hivegroupId> <artifactId>hive-execartifactId> <version>${hive.version}version>如上 采用maven package打包的时候,会生成 俩个文件,其中 第一个 是idea自己打包出来的,不带任何第三方依赖,只有本身项目代码文件。 而第二个是maven插件打出来的, 如果 上面 hive-exec 依赖不加 provided这个属性,那么maven会将这些依赖打到生成的jar包里面,虽然生成的jar包体积变大了 ,但是在执行的时候缺提示找不到文件不好使,怀疑是因为目标机器存在hive的环境,所以我们将scope属性设置为provided,这样打包就不会包含了, 但是第三方的比如 fastjson 就不用加了,因为需要将它一起打入到jar包里面,否则会出现class not found问题,并且即使将fastjson的包放到hive目录的lib目录下面,依然会有时候提示找不到class的问题,所以最后测试 最稳妥方法就是将第三方依赖直接打入到jar 包中就可以。 但是 spark的jar包全部打入进去就没事,不用设置spark相关依赖为provided,具体我也不知道怎么回事,反正以后注意如果目标机器存在相关自带依赖,尽量设置providedprovided dependency> <dependency> <groupId>com.alibabagroupId> <artifactId>fastjsonartifactId> <version>1.2.79version> dependency> dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-pluginartifactId> <version>2.3.2version> <configuration> <source>1.8source> <target>1.8target> configuration> plugin> <plugin> <artifactId>maven-assembly-pluginartifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependenciesdescriptorRef> descriptorRefs> configuration> <executions> <execution> <id>make-assemblyid> <phase>packagephase> <goals> <goal>singlegoal> goals> execution> executions> plugin> plugins> build>