CentOS下sqoop配置安装

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

1. 项目用到的hadoop的版本是1.1.2,所以对应的sqoop是sqoop-1.4.4.bin__hadoop-1.0.0,mysql的jdbc是mysql-connector-java-5.1.6-bin.jar

解压缩sqoop安装文件

[hadoop@node01 ~]$ tar -xzvf sqoop-1.4.4.bin__hadoop-0.20.tar.gz

2.重命名配置文件

在${SQOOP_HOME}/conf中执行命令

mv  sqoop-env-template.sh  sqoop-env.sh
在conf目录下,有两个文件sqoop-site.xml和sqoop-site-template.xml内容是完全一样的,不必在意,我们只关心sqoop-site.xml即可。

3.修改配置文件sqoop-env.sh

内容如下


#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/usr/local/hadoop/

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/usr/local/hadoop

#set the path to where bin/hbase is available
export HBASE_HOME=/usr/local/hbase

#Set the path to where bin/hive is available
export HIVE_HOME=/usr/local/hive

#Set the path for where zookeper config dir is
export ZOOCFGDIR=/usr/local/zk

好了,搞定了,下面就可以运行了。


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.4/lib里的mysql的jar包删掉,也可以正常运行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值