开发者社区> 问答> 正文

sqoop导入到hive表中报错?报错

在sqoop中执行了以下语句:

./sqoop import  --connect 'jdbc:sqlserver://192.168.1.1;username=sa;password=sa;database=wellmount_backup'  --table dn_test_rdr1  --hive-import -m 1

执行后报错,报错代码如下:

13/12/27 14:10:42 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
13/12/27 14:10:42 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
13/12/27 14:10:42 INFO manager.SqlManager: Using default fetchSize of 1000
13/12/27 14:10:42 INFO tool.CodeGenTool: Beginning code generation
13/12/27 14:10:42 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM [dn_test_rdr1] AS t WHERE 1=0
13/12/27 14:10:42 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /home/nappor/hadoop-1.2.1
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:2931: 找不到符号
符号: 方法 readString(java.io.DataInput)
位置: 类 java.lang.String
    this.BaseRef = Text.readString(__dataIn);
                       ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:2951: 找不到符号
符号: 方法 readString(java.io.DataInput)
位置: 类 java.lang.String
    this.LineStatus = Text.readString(__dataIn);
                          ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:2956: 找不到符号
符号: 方法 readString(java.io.DataInput)
位置: 类 java.lang.String
    this.ItemCode = Text.readString(__dataIn);
                        ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:2961: 找不到符号
符号: 方法 readString(java.io.DataInput)
位置: 类 java.lang.String
    this.Dscription = Text.readString(__dataIn);
                          ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:2987: 找不到符号
符号: 方法 readString(java.io.DataInput)
位置: 类 java.lang.String
    this.Currency = Text.readString(__dataIn);
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:4420: 找不到符号
符号: 方法 writeString(java.io.DataOutput,java.lang.String)
位置: 类 java.lang.String
    Text.writeString(__dataOut, ImportLog);
        ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:4444: 找不到符号
符号: 方法 writeString(java.io.DataOutput,java.lang.String)
位置: 类 java.lang.String
    Text.writeString(__dataOut, IsAqcuistn);
        ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:4504: 找不到符号
符号: 方法 writeString(java.io.DataOutput,java.lang.String)
位置: 类 java.lang.String
    Text.writeString(__dataOut, PoTrgEntry);
        ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:4510: 找不到符号
符号: 方法 writeString(java.io.DataOutput,java.lang.String)
位置: 类 java.lang.String
    Text.writeString(__dataOut, DropShip);
        ^
/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java:4522: 找不到符号
符号: 方法 writeString(java.io.DataOutput,java.lang.String)
位置: 类 java.lang.String
    Text.writeString(__dataOut, Address);
        ^
注意:/tmp/sqoop-nappor/compile/f1aaf9c56e044dab339a644f8e6fccd2/dn_test_rdr1.java 使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
100 错误
13/12/27 14:10:44 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Error returned by javac
        at org.apache.sqoop.orm.CompilationManager.compile(CompilationManager.java:207)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:97)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:396)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:502)
        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)


同样类似的语句执行别的表时却没有报错,请问下这是什么原因?


展开
收起
爱吃鱼的程序员 2020-06-22 13:34:05 874 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你试试指定一下导入的字段。回复<aclass='referer'target='_blank'>@吐槽的达达仔:谢谢!!<atarget='_blank'>@ning397有可能是sqoop在读取SQLSERVER的元数据的时候,出现了异常。我这里使用都是指定字段的方式,这样的好处在于,不会由于数据库字段增加导致出现数据导入异常。银次:最新版的sqoop包里面好像已经有sqlserver的驱动了。我指定了几个字段导入是没有问题的,不指定字段就有问题了。难道是列数还有限制?高手们帮我解决下!!!你有装sqlserver的驱动吗??表名换成全部大写试试大小写都尝试过了,包括字段的大小写,跟SQLServer的完全一致我在javaweb工程下操作,报这个错误,但是在javase的工程下运行正常,不知为什么!您好,您解决了么,我了是这个问题呢

    2020-06-22 13:34:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Comparison of Spark SQL with Hive 立即下载
Hive Bucketing in Apache Spark 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载