尝试从bcp包中运行mssql-tools (使用centos7)从导出tsv文件数据--通过 NFS网关安装到本地FS的位置,但遇到以下错误:.
SQLState = S1000,NativeError =0 Error = MicrosoftUnable打开BCP错误文件
或
SQLState = S1000,NativeError =0 Error = MicrosoftUnable打开BCP主机数据-文件
正在运行的bcp命令看起来像..。
/opt/mssql-tools/bin/bcp "$TABLE" in \
"$filename" \
$TO_SERVER_ODBCDSN \
-U $USER -P $PASSWORD \
-d $DB \
$RECOMMEDED_IMPORT_MODE \
-t "\t" \
-e ${filename}.bcperror.log
# with the actual commmand w/ variables resolved looks like...
/opt/mssql-tools/bin/bcp "ACCOUNT" in \
"/HDFS_NFS/path/to/tsv/1_0_0.tsv" \
-D -S MyMSSQLServer \
-U myuser -P mypassword \
-d SOME_MSSQL_DB \
-c \
-t \t \
-e /HDFS_NFS/path/to/store/errlogs/1_0_0.tsv.bcperror.log这一切对我来说都很好,但有时也会犯错误,比如.
/opt/mssql-tools/bin/bcp:未知选项 用法:/opt/mssql tools/bin/bcp {dbtable query} {in格式} datafile .
所以也不确定这是怎么回事。我的/etc/odbc.ini文件看起来..。
[MyMSSQLServer]
Driver=ODBC Driver 17 for SQL Server
Description=My MS SQL Server
Trace=No
Server=<the server's IP>有人知道这方面的进一步调试技巧或修复吗?
发布于 2019-07-30 23:31:19
问题似乎是,-e选项指定的错误日志文件是指定位置中的已经存在的,而HDFS (通过NFS挂载与否)不喜欢试图覆盖它的bcp命令。你通常会做这样的事
hadoop fs -put -f /some/local/file /hdfs/location/for/file我认为bcp正在通过NFS网关尝试其他的东西,而这不是这样的。我想,在bcp访问HDFS位置时也可能会出现延迟问题。在最初发布的示例中,不使用-e选项运行bcp命令是有效的。
**作为一种解决办法,基于另一个所以贴,我将文件降至本地temp /home/user/tmp/<some uuid>/,然后执行需要在其中执行的操作,然后是hadoop fs -put ...。
https://stackoverflow.com/questions/57263537
复制相似问题