sqoop从mysql到hive问题
生活随笔
收集整理的這篇文章主要介紹了
sqoop从mysql到hive问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ClassNotFoundException問題大概會需要在sqoop的lib目錄下導入三個包, hive-common-...jar ,commons-logging-...jar, hive-exec-..*.jar ..*為版本編號,jar包從hive的lib目錄下copy即可
1、報錯信息如下:ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf`
19/09/21 09:28:45 ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly. 19/09/21 09:28:45 ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConfat org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:50)at org.apache.sqoop.hive.HiveImport.getHiveArgs(HiveImport.java:392)at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:379)at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:337)at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:241)at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:537)at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)at org.apache.sqoop.Sqoop.run(Sqoop.java:147)at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)at org.apache.sqoop.Sqoop.main(Sqoop.java:252) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConfat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44)... 12 more問題出現的原因是,sqoop安裝目錄中沒有hive相關的包
解決方案:把hive的lib目錄下hive-common-1.2.1.jar(hive版本不一致,此包版本可能會不一致,根據自己的來就行)拷貝到sqoop的lib下
2、INFO hive.HiveImport: Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/LoggerContextFactory
19/09/21 09:30:17 INFO hive.HiveImport: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/LoggerContextFactory 19/09/21 09:30:17 INFO hive.HiveImport: at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:637) 19/09/21 09:30:17 INFO hive.HiveImport: at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621) 19/09/21 09:30:17 INFO hive.HiveImport: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 19/09/21 09:30:17 INFO hive.HiveImport: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 19/09/21 09:30:17 INFO hive.HiveImport: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 19/09/21 09:30:17 INFO hive.HiveImport: at java.lang.reflect.Method.invoke(Method.java:498) 19/09/21 09:30:17 INFO hive.HiveImport: at org.apache.hadoop.util.RunJar.run(RunJar.java:226) 19/09/21 09:30:17 INFO hive.HiveImport: at org.apache.hadoop.util.RunJar.main(RunJar.java:141) 19/09/21 09:30:17 INFO hive.HiveImport: Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.spi.LoggerContextFactory 19/09/21 09:30:17 INFO hive.HiveImport: at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 19/09/21 09:30:17 INFO hive.HiveImport: at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 19/09/21 09:30:17 INFO hive.HiveImport: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 19/09/21 09:30:17 INFO hive.HiveImport: at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 19/09/21 09:30:17 INFO hive.HiveImport: ... 8 more 19/09/21 09:30:17 ERROR tool.ImportTool: Import failed: java.io.IOException: Hive exited with status 1at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:384)at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:337)at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:241)at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:537)at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)at org.apache.sqoop.Sqoop.run(Sqoop.java:147)at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)at org.apache.sqoop.Sqoop.main(Sqoop.java:25解決方案:把hive的lib目錄下commons-logging-1.1.3.jar(hive版本不一致,此包版本可能會不一致,根據自己的來就行)拷貝到sqoop的lib下
[hadoop@hadoop01 lib]$ cp commons-logging-1.1.3.jar /home/hadoop/app/sqoop/sqoop1.4.7/lib3、Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/hive/shims/ShimLoader
19/09/21 09:37:43 INFO hive.HiveImport: Loading uploaded data into Hive Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/shims/ShimLoaderat org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:368)at org.apache.hadoop.hive.conf.HiveConf.<clinit>(HiveConf.java:105)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44)at org.apache.sqoop.hive.HiveImport.getHiveArgs(HiveImport.java:392)at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:379)at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:337)at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:241)at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:537)at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)at org.apache.sqoop.Sqoop.run(Sqoop.java:147)at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)at org.apache.sqoop.Sqoop.main(Sqoop.java:252) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.shims.ShimLoaderat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 17 more解決方案:把hive的lib目錄下hive-exec-1.2.1.jar(hive版本不一致,此包版本可能會不一致,根據自己的來就行)拷貝到sqoop的lib下
[hadoop@hadoop01 lib]$ cp hive-exec-1.2.1.jar /home/hadoop/app/sqoop/sqoop1.4.7/lib之后就可以成功運行了。
總結
以上是生活随笔為你收集整理的sqoop从mysql到hive问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国联通董事长刘烈宏:预计 6G 将在
- 下一篇: WEB页面导出为EXCEL文档的方法