Hive 访问maxmind'时出现异常;s GeoIP-country.mmdb数据库通过配置单元

Hive 访问maxmind'时出现异常;s GeoIP-country.mmdb数据库通过配置单元,hive,geoip,maxmind,Hive,Geoip,Maxmind,我有一个自定义配置单元UDF来访问Maxmind的GeoIP country.mmdb数据库,该数据库通过“添加文件pqr.mmdb”添加到配置单元资源中。编译后的UDF被添加为“addjarabc.jar” 当我运行配置单元查询时,java类在幕后试图访问geo数据库中的数据,但由于抛出以下异常而失败 Error: java.lang.ClassNotFoundException: com.maxmind.db.Reader$FileMode at java.net.URLClassLoade

我有一个自定义配置单元UDF来访问Maxmind的GeoIP country.mmdb数据库,该数据库通过“添加文件pqr.mmdb”添加到配置单元资源中。编译后的UDF被添加为“addjarabc.jar” 当我运行配置单元查询时,java类在幕后试图访问geo数据库中的数据,但由于抛出以下异常而失败

Error: java.lang.ClassNotFoundException: com.maxmind.db.Reader$FileMode
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.maxmind.geoip2.DatabaseReader$Builder.<init>(DatabaseReader.java:68)

有没有人经历过类似的问题? 谢谢 -Lalith(将此移到实际答案。)


包含API所依赖的所有JAR。ZIP文件是在GeoIP2的构建过程中创建的。包含的JAR是中列出的所有依赖项或依赖项的依赖项。zip列在上。

您提到所有jar都已添加,但从例外情况来看,您似乎丢失了。你加了什么罐子?查看所有需要的罐子。漂亮!我使用geoip2maven依赖项,并配置pom将所有必需的依赖项添加到已编译的jar中。但在本例中似乎没有发生这种情况,导致了这个问题。添加您提供的罐子解决了这个问题。你介意我问你这些罐子是从哪里下载的吗?看起来并不是所有这些都与geoip2相关。还是它们相互依赖?谢谢
reader = new DatabaseReader.Builder(database).fileMode(Reader.FileMode.MEMORY_MAPPED).build();
reader = new DatabaseReader.Builder(database).fileMode(Reader.FileMode.MEMORY).build();