DataX icon indicating copy to clipboard operation
DataX copied to clipboard

hive写入如果是Windows环境很危险,会删掉上层结构

Open macro-su opened this issue 4 years ago • 9 comments

start rename file [hdfs://worker1:8020/user/hive/warehouse/mytest.db/test1__52277896_738f_453d_af16_171b2928b259\test__b4634892_0409_44d6_896d_766ad933c3b0] INFO HdfsWriter$Job - start delete tmp dir [hdfs://worker1:8020/user/hive/warehouse/mytest.db] 注意到了吗?如果是Windows环境,最后是反斜杠,然后删除的就是hive库的所有表数据了

macro-su avatar Jun 16 '20 06:06 macro-su

我也碰到了这种问题,希望有大佬能给个解答

18668180370 avatar Jun 16 '20 08:06 18668180370

自己把路径的""换成"/"呗

hsq1233211234567 avatar Jun 29 '20 07:06 hsq1233211234567

我也遇到了 怎么解决呢

rookieCheer avatar Jul 27 '20 06:07 rookieCheer

被坑惨了,直接把warehouse全删了。。。

hneyiu avatar Jan 29 '21 03:01 hneyiu

start rename file [hdfs://worker1:8020/user/hive/warehouse/mytest.db/test1__52277896_738f_453d_af16_171b2928b259\test__b4634892_0409_44d6_896d_766ad933c3b0] INFO HdfsWriter$Job - start delete tmp dir [hdfs://worker1:8020/user/hive/warehouse/mytest.db] 注意到了吗?如果是Windows环境,最后是反斜杠,然后删除的就是hive库的所有表数据了

修改 com.alibaba.datax.plugin.writer.hdfswriter.HdfsWriter 中 IOUtils.DIR_SEPARATOR 替换成 IOUtils.DIR_SEPARATOR_UNIX 在 com.alibaba.datax.plugin.writer.hdfswriter.HdfsHelper 中的 renameFile(HashSet tmpFiles, HashSet endFiles) 方法中 在 String dstFile = it2.next().toString(); 下 添加一行 dstFile = dstFile.replace("\\","/"); 打包编译 将本地安装的datax\plugin\writer\hdfswriter\hdfswriter-0.0.1-SNAPSHOT.jar 替换成你打包好的文件

ronnierry avatar Sep 22 '21 11:09 ronnierry

start rename file [hdfs://worker1:8020/user/hive/warehouse/mytest.db/test1__52277896_738f_453d_af16_171b2928b259\test__b4634892_0409_44d6_896d_766ad933c3b0] INFO HdfsWriter$Job - start delete tmp dir [hdfs://worker1:8020/user/hive/warehouse/mytest.db] 注意到了吗?如果是Windows环境,最后是反斜杠,然后删除的就是hive库的所有表数据了

链接:https://pan.baidu.com/s/1yDMnuXnn0Y7qH6cGf4M_xA 提取码:ssup,这是dataX全量包,已经修复并验证过这个场景,可以使用

zhbdesign avatar Sep 23 '21 01:09 zhbdesign

start rename file [hdfs://worker1:8020/user/hive/warehouse/mytest.db/test1__52277896_738f_453d_af16_171b2928b259\test__b4634892_0409_44d6_896d_766ad933c3b0] INFO HdfsWriter$Job - start delete tmp dir [hdfs://worker1:8020/user/hive/warehouse/mytest.db] 注意到了吗?如果是Windows环境,最后是反斜杠,然后删除的就是hive库的所有表数据了

链接:https://pan.baidu.com/s/1yDMnuXnn0Y7qH6cGf4M_xA 提取码:ssup,这是dataX全量包,已经修复并验证过这个场景,可以使用

使用你提供的datax后,出现了新的错误: Snipaste_2023-05-12_17-02-00 上传后的文件名多出了.gz后缀,导致后续操作出现如下错误: Snipaste_2023-05-12_17-03-55

chenming142 avatar May 12 '23 09:05 chenming142

上面所提到的包,是可以使用的,但是在job.json中不能指定属性:"compress": "GZIP" 否则上传至hdfs的文件名会多出一个.gz的后缀

chenming142 avatar May 12 '23 10:05 chenming142

难怪网上的window的dataX教程案例是创建在根目录下的/mydatax,

"fileType": "text",
"path": "/mydatax",
 "fileName": "tb.txt",

然后生成的文件是/mydatax\tb.txt__23310387_439e_44a6_a04d_22d487fe3929.gz [苦笑]

GZDXGeorge avatar Jun 18 '23 14:06 GZDXGeorge