Scala Apache spark输出消息的前缀为[错误]
此字数按预期工作:Scala Apache spark输出消息的前缀为[错误],scala,apache-spark,sbt,Scala,Apache Spark,Sbt,此字数按预期工作: System.setProperty("hadoop.home.dir", "H:\\winutils"); val sparkConf = new SparkConf().setAppName("GroupBy Test").setMaster("local[1]") val sc = new SparkContext(sparkConf) def main(args: Array[String]) { val text_file = sc.textFile("h:
System.setProperty("hadoop.home.dir", "H:\\winutils");
val sparkConf = new SparkConf().setAppName("GroupBy Test").setMaster("local[1]")
val sc = new SparkContext(sparkConf)
def main(args: Array[String]) {
val text_file = sc.textFile("h:\\data\\small.txt")
val counts = text_file.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
counts.foreach(println);
}
所有输出消息都以[错误]开头
例如:
[error] 16/03/17 12:13:58 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on por
[error] 16/03/17 12:13:58 INFO NettyBlockTransferService: Server created on 55715
[error] 16/03/17 12:13:58 INFO BlockManagerMaster: Trying to register BlockManager
[error] 16/03/17 12:13:58 INFO BlockManagerMasterEndpoint: Registering block manager localhost:55715 with 1140.4 MB RAM, BlockManage
[error] 16/03/17 12:13:58 INFO BlockManagerMaster: Registered BlockManager
我可以使用以下方法防止显示这些错误消息:
import org.apache.log4j.Logger
import org.apache.log4j.Level
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)
但这并不能解决问题
[错误]不应显示,因为这些不是错误消息,而是信息:
[error] 16/03/17 12:13:58 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on por
[error] 16/03/17 12:13:58 INFO NettyBlockTransferService: Server created on 55715
[error] 16/03/17 12:13:58 INFO BlockManagerMaster: Trying to register BlockManager
[error] 16/03/17 12:13:58 INFO BlockManagerMasterEndpoint: Registering block manager localhost:55715 with 1140.4 MB RAM, BlockManage
[error] 16/03/17 12:13:58 INFO BlockManagerMaster: Registered BlockManager
更新:
为什么[错误]消息显示为非错误?这些不是Spark标签,而是sbt标签。在Spark的默认
log4j
config文件中,您可以找到:
log4j.appender.console.target=System.err
因此,默认情况下,它将打印到控制台中的stderr
在运行
配置中,您可能正在将fork
设置为true
。执行此操作时,在sbt中打印到stderr
的所有内容都以[错误]
作为前缀
您应该能够使用。这些不是Spark标签,而是sbt标签。在Spark的默认
log4j
config文件中,您可以找到:
log4j.appender.console.target=System.err
因此,默认情况下,它将打印到控制台中的stderr
在运行
配置中,您可能正在将fork
设置为true
。执行此操作时,在sbt中打印到stderr
的所有内容都以[错误]
作为前缀
您应该能够通过设置Logger.getLogger(“org”).setLevel(Level.OFF)Logger.getLogger(“akka”)来控制它。setLevel(Level.OFF)只会使错误消息不显示。它不会处理问题,但“杀死messanger”您是否尝试过设置级别(Level.Warn)?@Zahiro Mor它不会处理问题,正如我所说的“但这并不能解决问题”。我的问题是为什么会出现[错误]消息显示为非错误?您是从IDE运行还是通过spark submit运行?MateuszDymczyk通过sbt运行:“运行”设置Logger.getLogger(“org”).setLevel(Level.OFF)Logger.getLogger(“akka”)。setLevel(Level.OFF)只会使错误消息不显示。它不会处理问题,但“杀死messanger”您是否尝试过设置级别(Level.Warn)?@Zahiro Mor它不会处理问题,正如我所说的“但这并不能解决问题”。我的问题是为什么会出现[错误]消息显示为非错误?您是从IDE运行此消息还是通过spark submit?@MateuszDymczyk通过sbt运行:“运行”