zoukankan      html  css  js  c++  java
  • Sqoop 连接mysql 错误 java.lang.NoClassDefFoundError

    1.首先说一下前提

      hadoop 已经正常启动,并且mysql驱动包已经导入好:(Hadoop 3.2.0 ,mysql 8.0, mysql 驱动8.0,Sqoop 1.4.7)

        

    2.错误信息

        Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

        如图所示:

        

        具体信息:

          

     1 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
     2     at org.apache.sqoop.manager.MySQLManager.initOptionDefaults(MySQLManager.java:73)
     3     at org.apache.sqoop.manager.SqlManager.<init>(SqlManager.java:89)
     4     at com.cloudera.sqoop.manager.SqlManager.<init>(SqlManager.java:33)
     5     at org.apache.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:51)
     6     at com.cloudera.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:30)
     7     at org.apache.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:46)
     8     at com.cloudera.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:31)
     9     at org.apache.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:38)
    10     at com.cloudera.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:31)
    11     at org.apache.sqoop.manager.MySQLManager.<init>(MySQLManager.java:65)
    12     at org.apache.sqoop.manager.DefaultManagerFactory.accept(DefaultManagerFactory.java:67)
    13     at org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:184)
    14     at org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:272)
    15     at org.apache.sqoop.tool.ListDatabasesTool.run(ListDatabasesTool.java:44)
    16     at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
    17     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    18     at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
    19     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
    20     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
    21     at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
    22 Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
    23     at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    24     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    25     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    26     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    27     ... 20 more

    3.问题原因

        原因在异常中已经很明显了:没有找到类 org.apache.commons.lang.StringUtils  也就是说Sqoop中没有这个类或者包含这个类的jar包。

    4.解决办法

        解决办法就是将这个类所在的jar包添加到Sqoop中,这个类所在的jar包是  commons-lang

        第一步  下载commons-lang:  下载地址: 点击下载  注意:这里面有两个版本  2 和 3  请优先使用 2 因为Sqoop版本大部分是支持2 的  (如果不行 再尝试3)

        第二步 把下载下来的文件解压 :里面会得到好几个jar文件 我们需要的是  commons-lang  如下图:

        

        第三步   把该jar包放到Sqoop 下的lib文件夹下面即可  如图:(我是先试的3版本 发现不行 才试的2 ,但是我没有删除3的jar包)

        

        第四步  启动:结果

        

        大功告成!

      

  • 相关阅读:
    cmd 新建安卓工程
    新创建的android工程里面没有activity问题解决
    背景色横向渐变css5
    Serialable与Parcelable
    Observer观察者模式
    Linux基础(1)
    android 出现Make sure the Cursor is initialized correctly before accessing data from it
    android项目中导入actionbarsherlock 需要注意的地方
    android BadgeView的使用(图片上的文字提醒)
    android仿系统Launcher界面,实现分屏,左右滑动效果(ViewSwitcher)
  • 原文地址:https://www.cnblogs.com/xiaobai1202/p/10916343.html
Copyright © 2011-2022 走看看