DataX
DataX copied to clipboard
hive写入如果是Windows环境很危险,会删掉上层结构
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库的所有表数据了
我也碰到了这种问题,希望有大佬能给个解答
自己把路径的""换成"/"呗
我也遇到了 怎么解决呢
被坑惨了,直接把warehouse全删了。。。
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 替换成你打包好的文件
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全量包,已经修复并验证过这个场景,可以使用
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后,出现了新的错误:
上传后的文件名多出了.gz后缀,导致后续操作出现如下错误:
上面所提到的包,是可以使用的,但是在job.json中不能指定属性:"compress": "GZIP" 否则上传至hdfs的文件名会多出一个.gz的后缀
难怪网上的window的dataX教程案例是创建在根目录下的/mydatax,
"fileType": "text",
"path": "/mydatax",
"fileName": "tb.txt",
然后生成的文件是/mydatax\tb.txt__23310387_439e_44a6_a04d_22d487fe3929.gz [苦笑]