在9.5.3.29.4版本执行hdfs导出命令时,发现命令执行成功,但是hadoop端生成的文件为0字节。
如下所示,执行导出时已经报导出2行数据,执行导出成功,但是实际去hadoop端查看,发现导出的文件为0字节。
gbase> select * from t1;
+------+-------------------+------------+
| x | y | z |
+------+-------------------+------------+
| 0 | 0 | hello |
| 1 | 0.428571428571429 | hello |
+------+-------------------+------------+
2 rows in set (Elapsed: 00:00:03.08)
gbase> select * from t1 into outfile 'hdp://test@10.10.1.2:9000/tmp/testFile_10Rows.txt' outfilemode by hdfs writemode by overwrites;
Query OK, 2 rows affected (Elapsed: 00:00:04.24)
[test@test0 hadoop]$ bin/hdfs dfs -ls /tmp/testFile_10Rows.txt
Found 1 items
-rwxrwxrwx 3 hdfs hadoop 0 2023-12-14 10:46 /tmp/testFile_10Rows.txt/testFile_10Rows_1.txt
问题的分析过程如下:
核对了导出参数,集群状态及导出端网络等,发现均无异常。
集群端显示了正常导出,说明导出操作完成,但是落盘出现了问题,考虑为落盘域名信息出现问题。查看发现hosts中缺少hadoop端的域名信息,补充后再执行导出,发现可成功导出文件,问题解决。该问题已经反馈。
gbase> select * from t1 into outfile 'hdp://test@10.10.1.2:9000/tmp/testFile_10Rows.txt' outfilemode by hdfs writemode by overwrites;
Query OK, 2 rows affected (Elapsed: 00:00:00.22)
[test@test0 hadoop]$ bin/hdfs dfs -ls /tmp/testFile_10Rows.txt
Found 1 items
-rwxrwxrwx 3 hdfs hadoop 46 2023-12-14 10:48 /tmp/testFile_10Rows.txt/testFile_10Rows_1.txt
[test@test0 hadoop]$ bin/hdfs dfs -cat /tmp/testFile_10Rows.txt/testFile_10Rows_1.txt
0 0 hello
1 0.428571428571429 hello