java-通过scala.sys.process API在spark-scala中执行外部命令s3-dist-cp

在Unix环境下,通过Scala的sys.process API执行外部s3-dist-cp命令出现困扰。虽然在shell中命令能正常工作,但在Scala中执行时遇到问题。已尝试在spark-submit脚本中显式传递依赖,但未解决。参考链接提供了可能的解决方案,建议检查是否已添加s3-dist-cp相关JAR,并确保在正确模式下运行Spark,因为s3-dist-cp不适用于集群模式。
摘要由CSDN通过智能技术生成

当我在unix shell / terminal中运行所有这3个命令时,它们都工作正常,返回退出状态为0

 

 

unix_shell> ls -la
unix_shell> hadoop fs -ls /user/hadoop/temp
unix_shell> s3-dist-cp --src ./abc.txt --dest s3://bucket/folder/

现在我试图通过scala process api作为外部进程运行这些相同的命令,示例代码如下:

 

import scala.sys.process._

val cmd_1 = "ls -la"
val cmd_2 = "hadoop fs -ls /user/hadoop/temp/"
val cmd_3 = "/usr/bin/s3-dist-cp --src /tmp/sample.txt --dest s3://bucket/folder/"
val cmd_4 = "s3-dist-cp --src /tmp/sample.txt --dest s3://bucket/folder/"

val exitCode_1 = (stringToProcess(cmd_1)).! // works fine and produces result
val exitCode_2 = (stringToProcess(cmd_2)).! // works fine and produces result
val exitCode_3 = (stringToProcess(cmd_3)).! // **it just hangs, yielding nothing**
val exitCode_4 = (stringToProcess(cmd_4))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值