Ubuntu下Sqoop安装配置

来源:互联网 发布:55开和淘宝权吵架 编辑:程序博客网 时间:2024/06/03 05:52

需要用到Sqoop将原来mysql中的数据导入到HBase,以下是安装配置Sqoop的步骤和问题记录:

1. 项目用到的hadoop的版本是1.0.3,所以对应的sqoop是sqoop-1.4.3.bin__hadoop-1.0.0,mysql的jdbc是mysql-connector-java-5.1.24

2. 解压sqoop,配置环境变量:

    在/etc/profile中添加:

    export $SQOOP_HOME=/home/hadoop/sqoop-1.4.3

    export $PATH = $SQOOP_HOME/bin:$PATH

    配置完成后,需要注销或者重启

3. 解压mysql,将mysql-connector-java-5.1.24-bin.jar放到$SQOOP_HOME/lib里,配置完成。

但是遇到的问题如下:

1. 在命令行运行sqoop,提示:
    Error: Could not find or load main class org.apache.sqoop.Sqoop

    这里把sqoop解压后根目录下的sqoop-1.4.3.jar加入到hadoop-1.0.3/lib里即可。

2. 运行sqoop list-tables --connect jdbc:mysql://192.168.10.111:3306/database -username 'root' -P 提示mysql错误:

    13/07/02 10:09:53 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
    13/07/02 10:09:53 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
     java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:716)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.CatalogQueryManager.listTables(CatalogQueryManager.java:101)
at org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)

     网上搜到的解决方案都说是没把mysql的jar包放到$SQOOP_HOME/lib下,但是我确实是放进去了。然后看到有个地方说是hadoop找不到mysql,我把mysql的jar包放到了hadoop-1.0.3/lib里,运行成功。

    对于这两个问题,在网上都没有搜到这样的解决方法,不清楚是不是我自己hadoop哪个地方配得不对,导致常规的配置方法不能运行成功。把sqoop和mysql的jar包都添加到hadoop/lib里之后,我把之前放到sqoop-1.4.3/lib里的mysql的jar包删掉,也可以正常运行。

原创粉丝点击