我正在尝试做一个活动,而我将从MSSQL导入一个表,然后再在另一个数据库中导出到MSSQL,以便测试sqoop1。到目前为止,我的进口成功。我关注的是导出,如果我导入表没有 - hive-import 选项,我将能够成功导出。但如果我包含 - hive-import 选项,sqoop将无法导出并提示错误:
17/04/02 23:08:20错误sqoop.Sqoop:运行Sqoop异常: org.kitesdk.data.DatasetIOException:无法加载描述符 文件:HDFS://quickstart.cloudera:8020 /用户/蜂巢/仓储/客户/ .metadata / descriptor.properties 对于数据集:customer org.kitesdk.data.DatasetIOException:无法执行 加载描述符 文件:HDFS://quickstart.cloudera:8020 /用户/蜂巢/仓储/客户/ .metadata / descriptor.properties 对于数据集:客户
根据检查,元数据与--hive-imports有所不同。仅使用--hive-import参数的导入没有所需的元数据:
Supplier/.metadata/descriptor.properties
我的问题是,是否可以使用--as-parquetfile和--hive-import选项导入sqoop中的表,然后还可以将其导出?
这是我的参考导入和导出代码:
sqoop export \
--connect "jdbc:sqlserver://192.168.1.23;database=SqoopDB;schema=dbo;" \
--username sa \
--password Password1 \
--export-dir /user/hive/warehouse/customer \
--table customer
sqoop import \
--connect "jdbc:sqlserver://192.168.1.23;database=SourceDB;schema=dbo" \
--username sa \
--password Password1 \
--table Customer \
--as-parquetfile \
--hive-import \
--hive-overwrite \
-m 1