2014-10-29 91 views
1
轉移到HDFS

sqoop將數據從Teradata數據傳輸到HDFS: 獲得如下錯誤: -bash-4.1 $ sqoop進口--connection經理com.cloudera.sqoop.manager.DefaultManagerFactory - 司機com.teradata.jdbc.TeraDriver \sqoop將數據從Teradata的

--connect的jdbc:Teradata數據://dwsoat.dws.company.co.uk/DATABASE=TS_72258_BASELDB \ --username用戶ID -P --table地址 - -num-mappers 3 \ --target-dir/user/nathalok/ADDRESS Warning:/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信息sqoop.Sqoop:運行Sqoop版本:1.4.4-cdh5.1.3 14/10/29 14:00:14警告tool.BaseSqoopTool:在命令行中設置密碼 - 線路不安全。考慮使用-P來代替。 14/10/29 14:00:14錯誤sqoop.ConnFactory:Sqoop無法正確創建連接管理器。有些連接器支持顯式驅動程序,有些則不支持。請嘗試指定--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) 在有機.apache.sqoop.tool.ImportTool.init(ImportTool.java:84) at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:494) at org.apache.sqoop.Sqoop.run(Sqoop .java:147) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) at org.apache.sqoop .Sqoop.runTool(Sqoop.java:22 2) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:231) at org.apache.sqoop.Sqoop.main(Sqoop.java:240) 引起:java.lang.NoSuchMethodException:com。 cloudera.sqoop.manager.DefaultManagerFactory。(java.lang.String,com.cloudera.sqoop.SqoopOptions) at java.lang.Class.getConstructor0(Class.java:2810) at java.lang.Class.getDeclaredConstructor(Class的.java:2053) 在org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:151) ... 9個

-bash-4.1 $

任何幫助將是讚賞。

回答

5

要獲得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 => 。

有不同的方法來安裝Teradata connector以及。例如,使用Cloudera Manager可能會更容易。

如果仍有問題,請嘗試與sqoop mailing list聯繫。

+0

感謝您的工作。 – user3754136 2014-12-11 10:19:34

+0

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# - - 查詢「....」這兩個工作對我來說,只有你的服務器名稱應該可以通過DNS和它的工作。 – user3754136 2015-02-25 13:02:16