gpt4 book ai didi

hadoop - Sqoop 创建配置单元表错误-运行创建表作业时遇到 IOException

转载 作者:可可西里 更新时间:2023-11-01 15:09:33 26 4
gpt4 key购买 nike

我在 Centos7 机器上运行 sqoop,该机器已经安装了 hadoop/map reduce 和 hive。我从教程中读到,当将数据从 RDBMS(在我的例子中是 SQL Server)导入 HDFS 时,我需要运行下一个命令:

sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true  --connect 'jdbc:sqlserver://hostname;database=databasename' --username admin --password admin123  --table tableA

这一步一切正常。下一步是创建一个与 RDBMS(在我的例子中是 SQL Server)具有相同结构的配置单元表并使用 sqoop 命令:

sqoop create-hive-table --connect 'jdbc:sqlserver://hostname;database=databasename' --username admin --password admin123  --table tableA --hivetable hivetablename --fields-terminated-by ','

但是,每当我运行上面的命令时,我都会得到下一个错误:

FAILED: Execution Error, return code 1 from      
org.apache.hadoop.hive.ql.exec.DDLTask.
com.fasterxml.jackson.databind.ObjectMapper.readerFor(Ljava/lang
/Class;)Lcom/fasterxml/jackson/databind/ObjectReader;
18/04/01 19:37:52 ERROR ql.Driver: FAILED: Execution Error, return code 1
from org.apache.hadoop.hive.ql.exec.DDLTask.
com.fasterxml.jackson.databind.ObjectMapper.readerFor(Ljava/lang
/Class;)Lcom/fasterxml/jackson/databind/ObjectReader;
18/04/01 19:37:52 INFO ql.Driver: Completed executing
command(queryId=hadoop_20180401193745_1f3cf07d-ca16-40dd-
8f8d-1e426ecd5860); Time taken: 0.212 seconds
18/04/01 19:37:52 INFO conf.HiveConf: Using the default value passed in
for log id: 0813b5c9-f374-4920-b8c6-b8541449a6eb
18/04/01 19:37:52 INFO session.SessionState: Resetting thread name to
main
18/04/01 19:37:52 INFO conf.HiveConf: Using the default value passed in
for log id: 0813b5c9-f374-4920-b8c6-b8541449a6eb
18/04/01 19:37:52 INFO session.SessionState: Deleted directory: /tmp/hive
/hadoop/0813b5c9-f374-4920-b8c6-b8541449a6eb on fs with scheme hdfs
18/04/01 19:37:52 INFO session.SessionState: Deleted directory: /tmp/hive
/java/hadoop/0813b5c9-f374-4920-b8c6-b8541449a6eb on fs with scheme file
18/04/01 19:37:52 ERROR tool.CreateHiveTableTool: Encountered IOException
running create table job: java.io.IOException: Hive CliDriver exited with
status=1

我不是 Java 专家,但我想知道您是否知道这个结果?

最佳答案

我遇到过同样的问题。我的 sqoop (1.4.7) 和 hive (2.3.4) 版本之间似乎存在一些兼容性问题。
问题来自 $SQOOP_HOME/lib 中的 jackson-* jar 文件的版本:其中一些对于 hive 来说太旧了,因为我们需要早于 2.6 的版本。

我找到的解决方案是用 $HIVE_HOME/lib 中的对应文件替换 $SQOOP_HOME/lib 中的以下文件:

  • jackson-core-*.jar
  • jackson-databind-*.jar
  • jackson-annotations-*.jar

它们都来自 2.6+ 版本,这似乎有效。虽然不确定这是好的做法。

关于hadoop - Sqoop 创建配置单元表错误-运行创建表作业时遇到 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49604469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com