我在本地机器上安装了Sqoop.以下是配置信息.
Bash.bashrc:
export HADOOP_HOME=/home/hduser/hadoop export HBASE_HOME=/home/hduser/hbase export HIVE_HOME=/home/hduser/hive export HCAT_HOME=/home/hduser/hive/hcatalog export SQOOP_HOME=/home/hduser/sqoop export PATH=$PATH:$HIVE_HOME/bin export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HBASE_HOME/bin export PATH=$PATH:$SQOOP_HOME/bin export PATH=$PATH:$HCAT_HOME/bin
Hadoop的:
Version: Hadoop 1.0.3
蜂巢:
Version: hive 0.11.0
Mysql连接器驱动程序
version: mysql-connector-java-5.1.29 "The driver is copied to the lib folder of sqoop"
Sqoop:
version: sqoop 1.4.4
完成所有安装后,我在mysql中创建了一个名为practice_1的表,但是当我运行load命令将数据从mysql加载到hdfs时,该命令会抛出异常:
ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
Coud有人请指导我可能出现的问题.
你需要'SQOOP'类路径中的数据库驱动程序检查这个 关于'SQOOP'的精彩解释
SQOOP还有其他选择
例如: - driver com.microsoft.jdbc.sqlserver.SQLServerDriver -libjars =".*jar"
从这里开始
您可以将Sqoop与任何其他符合JDBC的数据库一起使用.首先,为要导入的数据库类型下载相应的JDBC驱动程序,然后将.jar文件安装在客户端计算机上的$ SQOOP_HOME/lib目录中.(如果您是从RPM或Debian软件包安装的,那么这将是/ usr/lib/sqoop/lib.)每个驱动程序.jar文件还有一个特定的驱动程序类,它定义了驱动程序的入口点.例如,MySQL的Connector/J库的驱动程序类为com.mysql.jdbc.Driver.请参阅数据库供应商特定的文档以确定主驱动程序类.必须使用--driver将此类作为Sqoop的参数提供.
您可能有兴趣了解连接器和驱动程序之间的区别这里是文章
另一种避免使用共享库的解决方案是使用HADOOP_CLASSPATH将驱动程序jar添加到sqoop的类路径中.我没有-libjars选项可以工作.此解决方案也适用于使用kerberos的安全集群.
HADOOP_CLASSPATH=/use.case/lib/postgresql-9.2-1003-jdbc4.jar
sqoop export --connect jdbc:postgresql://db:5432/user \
--driver org.postgresql.Driver \
--connection-manager org.apache.sqoop.manager.GenericJdbcManager \
--username user \
-P \
--export-dir /user/hive/warehouse/db1/table1 \
--table table2
这个至少适用于sqoop 1.4.3-cdh4.4.0