hadoop - 从 groovy 脚本执行 Hadoop 文件系统命令时没有错误但行为奇怪

标签 hadoop groovy

我正在从 groovy 脚本执行以下 hadoop 文件系统 shell 命令,以将 hive 生成​​的文件移动到 hdfs。

targetFolderPath="/data/app/2016/06/30/"
srcFile=["/apps/hive/warehouse/customer_input.db/customer/year=2016/month=06/day=30/000000_0.txt.bz2"....]
dst="/data/app/2016/06/30/customer_20160630_201707151297.txt.bz2"


make_dir = " hdfs dfs -mkdir -p ${targetFolderPath} ".execute()

copy_file = " hdfs dfs -cp ${srcFile} ${dst} ".execute()


println ( " created folder  ${targetFolderPath} and copied file  ${srcFile}  as ${dst} " )

这个命令在循环中运行。我没有收到任何错误,但出现了异常行为

  1. 第一个循环总是正确的

  2. 在第二个循环中创建了文件夹但没有复制文件。

  3. 在第三个循环中既没有创建文件夹也没有复制文件。

  4. 在随后的循环中,没有文件夹或文件被创建,

  5. 有时副本文件有 .__copying 扩展名

从 groovy 调用这个命令有什么问题? groovy不适合在hdfs上执行命令串吗?

最佳答案

认为您需要等待进程完成

在所有 .execute() 调用之后添加 .waitForProcessOutput()

关于hadoop - 从 groovy 脚本执行 Hadoop 文件系统命令时没有错误但行为奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154218/

相关文章:

hadoop - 如何在计算机上实现Sailfish版本的Hadoop?

hadoop - 无法在Ubuntu 10.04 VM上安装Cloudera CDH4

java - 由于缺少依赖项 org/apache/commons/collections4/ListValuedMap,无法加载类 org.apache.poi.xssf.usermodel.XSSFWorkbook

java - 如何合并 2 个 groovy 脚本形式的 groovy 配置文件?

groovy - Intellij + Gradle:自动导入类

hadoop - 运行配置单元脚本 "am_stats_analyzer_163"cassandra 时出现 WSO2 BAM 错误

azure - 无法在Ambari 2.5.2.1中添加和删除任何服务

hadoop - 数据未从 HIVE 中的文件传输到表

logging - 在 grails-app 之外的 Grails 类中注入(inject)日志对象

json - 使用默认Grails JSON渲染器时的Snake case json