如何禁用 .net 应用程序到 spark 控制台的所有日志记录信息
How to disable all logging info to the spark console from .net application
如何在不登录控制台的情况下显示结果?
虽然 运行 执行我有这样的,但有很多行:
20/08/28 13:35:27 INFO MemoryStore: MemoryStore started with capacity 366.3 MB
20/08/28 13:35:27 INFO SparkEnv: Registering OutputCommitCoordinator
20/08/28 13:35:27 INFO Utils: Successfully started service 'SparkUI' on port 4040.
20/08/28 13:35:27 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://
20/08/28 13:35:27 INFO SparkContext: Added JAR file:/C:/
20/08/28 13:35:27 INFO Executor: Starting executor ID driver on host localhost
不幸的是,我的操作没有结果。我找到文件 log4j.properties.template,将所有内容更改为 WARN,但仍然有同样的问题。我还更改了日期时间格式以检查文件是否 read.But 格式是否相同,例如 log4j.appender.console.layout.ConversionPattern=%d{yy:MM:dd HH:mm:ss} %p %c{1}: %m%n.
所以,这就是为什么我决定不读取此文件的原因。
我也在我的 .cs 文件中写了
var sc = new SparkContext(new SparkConf());
sc.SetLogLevel("WARN");
在我的代码中是这样的
namespace mySparkApp
{
class Program
{
static void Main(string[] args)
{
//Logger.getLogger("org").setLevel(Level.OFF);
//Logger.getLogger("akka").setLevel(Level.OFF);
var sc = new SparkContext(new SparkConf());
sc.SetLogLevel("WARN");
// Create a Spark session
SparkSession spark = SparkSession
.Builder()
.AppName("word_count_sample")
.GetOrCreate();
// Create initial DataFrame
DataFrame dataFrame = spark.Read().Text("input.txt");
// Count words
DataFrame words = dataFrame
.Select(Functions.Split(Functions.Col("value"), " ").Alias("words"))
.Select(Functions.Explode(Functions.Col("words"))
.Alias("word"))
.GroupBy("word")
.Count()
.OrderBy(Functions.Col("count").Desc());
// Show results
words.Show();
// Stop Spark session
spark.Stop();
}
}
}
然后重启我的机器,我也是一样。
您需要 rename/copy 文件 log4j.properties.template
到 log4j.properties
。
如果您想查看更少的日志,可以将日志记录级别设置为 ERROR
而不是 WARN
。
您也可以放置这些行以避免记录您遇到的其他错误。
log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF
log4j.logger.org.apache.spark.SparkEnv=ERROR
Source
所以...我的挣扎是:
从文件夹 conf
中删除 log4..blalalal.template 中的模板词
像#这个文件的最后两行一样评论并添加
log4j.logger.org.apache.spark.util.ShutdownHookManager=关闭
log4j.logger.org.apache.spark.SparkEnv=关闭
全部关闭。
结果好多了,但还是让我很烦恼。
因为应用程序吃掉了所有异常。
C:\Users\User\mySparkApp>%SPARK_HOME%\bin\spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local bin\Debug\net5.0\microsoft-spark-2.4.x-0.10.0.jar dotnet bin\Debug\net5.0\mySparkApp.dll
20/12/27 22:29:39 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[2020-12-27T19:29:39.8205092Z] [USER-PC] [Info] [ConfigurationService] Using port 51569 for connection.
[2020-12-27T19:29:39.8243891Z] [USER-PC] [Info] [JvmBridge] JvMBridge port is 51569
+------+-----+
| word|count|
+------+-----+
| .NET| 3|
|Apache| 2|
| app| 2|
| This| 2|
| Spark| 2|
| World| 1|
|counts| 1|
| for| 1|
| words| 1|
| with| 1|
| Hello| 1|
| uses| 1|
+------+-----+
我不认为我已经完成了,因为如果您有例外 - 那么您需要查看它们,但是...
对于测试,这可能是一个决定。
感谢所有参与对话的人。决定真的是难以理解。不过谢谢。
如何在不登录控制台的情况下显示结果? 虽然 运行 执行我有这样的,但有很多行:
20/08/28 13:35:27 INFO MemoryStore: MemoryStore started with capacity 366.3 MB
20/08/28 13:35:27 INFO SparkEnv: Registering OutputCommitCoordinator
20/08/28 13:35:27 INFO Utils: Successfully started service 'SparkUI' on port 4040.
20/08/28 13:35:27 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://
20/08/28 13:35:27 INFO SparkContext: Added JAR file:/C:/
20/08/28 13:35:27 INFO Executor: Starting executor ID driver on host localhost
不幸的是,我的操作没有结果。我找到文件 log4j.properties.template,将所有内容更改为 WARN,但仍然有同样的问题。我还更改了日期时间格式以检查文件是否 read.But 格式是否相同,例如 log4j.appender.console.layout.ConversionPattern=%d{yy:MM:dd HH:mm:ss} %p %c{1}: %m%n.
所以,这就是为什么我决定不读取此文件的原因。
我也在我的 .cs 文件中写了
var sc = new SparkContext(new SparkConf());
sc.SetLogLevel("WARN");
在我的代码中是这样的
namespace mySparkApp
{
class Program
{
static void Main(string[] args)
{
//Logger.getLogger("org").setLevel(Level.OFF);
//Logger.getLogger("akka").setLevel(Level.OFF);
var sc = new SparkContext(new SparkConf());
sc.SetLogLevel("WARN");
// Create a Spark session
SparkSession spark = SparkSession
.Builder()
.AppName("word_count_sample")
.GetOrCreate();
// Create initial DataFrame
DataFrame dataFrame = spark.Read().Text("input.txt");
// Count words
DataFrame words = dataFrame
.Select(Functions.Split(Functions.Col("value"), " ").Alias("words"))
.Select(Functions.Explode(Functions.Col("words"))
.Alias("word"))
.GroupBy("word")
.Count()
.OrderBy(Functions.Col("count").Desc());
// Show results
words.Show();
// Stop Spark session
spark.Stop();
}
}
}
然后重启我的机器,我也是一样。
您需要 rename/copy 文件 log4j.properties.template
到 log4j.properties
。
如果您想查看更少的日志,可以将日志记录级别设置为 ERROR
而不是 WARN
。
您也可以放置这些行以避免记录您遇到的其他错误。
log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF
log4j.logger.org.apache.spark.SparkEnv=ERROR
Source
所以...我的挣扎是:
从文件夹 conf
中删除 log4..blalalal.template 中的模板词像#这个文件的最后两行一样评论并添加
log4j.logger.org.apache.spark.util.ShutdownHookManager=关闭 log4j.logger.org.apache.spark.SparkEnv=关闭
全部关闭。
结果好多了,但还是让我很烦恼。 因为应用程序吃掉了所有异常。
C:\Users\User\mySparkApp>%SPARK_HOME%\bin\spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master local bin\Debug\net5.0\microsoft-spark-2.4.x-0.10.0.jar dotnet bin\Debug\net5.0\mySparkApp.dll
20/12/27 22:29:39 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[2020-12-27T19:29:39.8205092Z] [USER-PC] [Info] [ConfigurationService] Using port 51569 for connection.
[2020-12-27T19:29:39.8243891Z] [USER-PC] [Info] [JvmBridge] JvMBridge port is 51569
+------+-----+
| word|count|
+------+-----+
| .NET| 3|
|Apache| 2|
| app| 2|
| This| 2|
| Spark| 2|
| World| 1|
|counts| 1|
| for| 1|
| words| 1|
| with| 1|
| Hello| 1|
| uses| 1|
+------+-----+
我不认为我已经完成了,因为如果您有例外 - 那么您需要查看它们,但是...
对于测试,这可能是一个决定。 感谢所有参与对话的人。决定真的是难以理解。不过谢谢。