【问题标题】:sqoop to transfer data to HDFS from Teradatasqoop 将数据从 Teradata 传输到 HDFS
【发布时间】:2014-12-25 06:55:35
【问题描述】:

sqoop 将数据从 Teradata 传输到 HDFS: 得到如下错误: -bash-4.1$ sqoop import --connection-manager com.cloudera.sqoop.manager.DefaultManagerFactory --driver com.teradata.jdbc.TeraDriver \

--连接 jdbc:teradata://dwsoat.dws.company.co.uk/DATABASE=TS_72258_BASELDB \ --username userid -P --table ADDRESS --num-mappers 3 \ --target-dir /user/nathalok/ADDRESS 警告:/apps/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/bin/../lib/sqoop/../accumulo 不存在! Accumulo 导入将失败。 请将 $ACCUMULO_HOME 设置为 Accumulo 安装的根目录。 14/10/29 14:00:14 INFO sqoop.Sqoop:运行 Sqoop 版本:1.4.4-cdh5.1.3 14/10/29 14:00:14 WARN tool.BaseSqoopTool:在命令行上设置密码是不安全的。考虑改用 -P。 14/10/29 14:00:14 错误 sqoop.ConnFactory:Sqoop 无法正确创建连接管理器。一些连接器支持显式 --driver 而一些不支持。请尝试指定 --driver 或忽略它。 14/10/29 14:00:14 错误 tool.BaseSqoopTool:创建数据库管理器时出错:java.io.IOException:java.lang.NoSuchMethodException:com.cloudera.sqoop.manager.DefaultManagerFactory.(java.lang.String, com.cloudera.sqoop.SqoopOptions) 在 org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:165) 在 org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:243) 在 org.apache.sqoop.tool.ImportTool.init(ImportTool.java:84) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:494) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:147) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:222) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:231) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:240) 引起:java.lang.NoSuchMethodException: com.cloudera.sqoop.manager.DefaultManagerFactory.(java.lang.String, com.cloudera.sqoop.SqoopOptions) 在 java.lang.Class.getConstructor0(Class.java:2810) 在 java.lang.Class.getDeclaredConstructor(Class.java:2053) 在 org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:151) ... 9 更多

-bash-4.1$

任何帮助将不胜感激。

【问题讨论】:

    标签: hadoop hive hdfs teradata sqoop


    【解决方案1】:

    要使 Teradata 使用 Cloudera 发行版正常工作,您需要执行以下操作:

    1. 在 /var/lib/sqoop 中安装 Teradata JDBC jars。对我来说,这些是 terajdbc4.jar 和 tdgssconfig.jar。
    2. 在文件系统的某个位置安装 Cloudera Connector Powered by TeradataCloudera Connector for Teradata(我更喜欢 /var/lib/sqoop)。
    3. 在 /etc/sqoop/conf/managers.d/ 中,创建一个文件(任何名称)并添加 com.cloudera.connector.teradata.TeradataManagerFactory=<location of connector jar>。例如,我有 /etc/sqoop/conf/managers.d/teradata => com.cloudera.connector.teradata.TeradataManagerFactory=/var/lib/sqoop/sqoop-connector-teradata-1.2c5.jar

    也有不同的方法来安装Teradata connector。例如,使用 Cloudera Manager 可能更容易。

    如果您仍有问题,请尝试联系sqoop mailing list

    【讨论】:

    • 1. sqoop list-databases --connect jdbc:teradata://net.dws.server.co.uk --username $user -password $pass 2.sqoop import -libjars /home/path/tdgssconfig.jar,/home/path /terajdbc4.jar --driver com.teradata.jdbc.TeraDriver --connect "jdbc:teradata://server.co.uk/database=TS_75739" -m 1 --username test --password pass1# --query " ...." 这对我来说都有效,只有你的服务器名称应该可以被 DNS 访问并且它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2018-02-13
    • 2016-09-05
    • 1970-01-01
    • 2013-05-29
    • 2014-11-25
    • 2021-11-08
    相关资源
    最近更新 更多