Java 带火花管动作的EPIPE(断管)

Java 带火花管动作的EPIPE(断管),java,linux,apache-spark,yarn,sigpipe,Java,Linux,Apache Spark,Yarn,Sigpipe,我正在尝试用纱线运行spark应用程序。应用程序使用pipe()操作来运行本地php程序。有线的事情是,每当PHP进程启动时,它将在大约1分钟后(在成功处理了一些记录之后)接收到一个SIGPIPE信号并被终止 PS:同样的程序可以在独立的os env上顺利运行,但在集群的生产环境中出错了 有人能帮忙吗?可能的原因是什么?谢谢 write(1,“success\te10489280713f60626d15d20”…,34564)=26372 ---(破管)@0(0)--- 写(1,“ang\uu

我正在尝试用纱线运行spark应用程序。应用程序使用
pipe()
操作来运行本地php程序。有线的事情是,每当PHP进程启动时,它将在大约1分钟后(在成功处理了一些记录之后)接收到一个
SIGPIPE
信号并被终止

PS:同样的程序可以在独立的os env上顺利运行,但在集群的生产环境中出错了

有人能帮忙吗?可能的原因是什么?谢谢

write(1,“success\te10489280713f60626d15d20”…,34564)=26372
---(破管)@0(0)---
写(1,“ang\uu meta\”:{“value\”:“empty\”,“gro”…,8192)=-1 EPIPE>(断管)
---(破管)@0(0)---
---SIGTERM(已终止)@0(0)---
代码如下:
Scala方面:

def main(args: Array[String]): Unit = {
    if (args.length < 2) {
      sys.exit(1)
    }
    val dt_src = args(0)
    val limit = args(1)
    var sql = s"SELECT * FROM db_dw.table_input_json  WHERE dt='${dt_src}'"
    val limit_str = s" LIMIT ${limit}"
    if (limit != "0") {
        sql = sql + limit_str
    }
val df = sqlContext.sql(sql)
var rdd = df.map(r =>  r.getAs[String]("json_str")).pipe("/home/work/software/php56/bin/php ./yiic php_file index"
}

您好,@jww,代码追加了,请看一下,谢谢!
public function actionIndex()
{
while ($line = fgets(STDIN)) {
         list($success, $json_str,$message) = $this->_handle($line);
         if(!$success) {
             echo "fail" . "\t"  . $message . "\n";
             continue;
         }
          echo "success" . "\t"  . $json_str . "\n"
}