在使用spark-submit运行工程jar包时常常会出现一下两个问题: 1.在程序中手打的log(如System.out.println(“***testRdd.count=”+testRdd.count()))常常会因被下一个Job的执行日志覆盖掉而无法查看日志; 2.一旦命令窗口被关闭或者电脑因断电等原因异常关闭,程序便终止运行。 其中,第一个问题可以通过将运行日志重定位到文件中来解决,命令如下: spark-submit testSpark.jar > ~/testLog.out 运行上条命令则可将手打的log保存到~/testLog.out中,且日志中仅保存手打Log内容。 第二个问题,则可以通过后台运行Spark-submit命令nohip来解决,命令如下: nohip spark-submit testSpark.jar & 运行上条命令则实现在后台运行spark命令,不用担心电脑异常关机以及命令行不小心关闭等问题,且输出日志保存在当前目录的nohip.out目录中。 如果希望既可以后台运行命令又可以将日志保存到目的文件中,则可将上述两个命令结合起来,命令如下: nohip spark-submit testSpark.jar > ~/testLog.out & 如此,便可实现后台运行的问题,nohip不仅可以用于后台执行Spark命令,也可用于后台执行其他jar包,可具体查找nohip的使用方法。
nohip spark-submit testSpark.jar > ~/testLog.out &