簡體   English   中英

如何從 .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 並且仍然有同樣的問題。 我還更改了日期時間格式以檢查文件是否已讀取。但格式仍然相同,例如log4j.appender.console.layout.ConversionPattern=%d{yy:MM:dd HH:mm:ss} %p %c{1}: %m%n. 所以,這就是我決定不讀取此文件的原因。 我也寫在 my.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();
        }
    }
}

然后重新啟動我的機器,但我有相同的。

您需要將文件log4j.properties.template重命名/復制到log4j.properties

如果您想查看更少的日志,可以將日志記錄級別設置為ERROR而不是WARN

您還可以放置這些行以避免記錄您遇到的其他錯誤。

log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF
log4j.logger.org.apache.spark.SparkEnv=ERROR

資源

所以......我的斗爭是:

  1. 從文件夾 conf 中刪除 log4..blalalal.template 中的模板詞

  2. 像 # 此文件中的最后 2 行評論並添加

    log4j.logger.org.apache.spark.util.ShutdownHookManager=OFF log4j.logger.org.apache.spark.SparkEnv=OFF

  3. 處處設為OFF。

結果更好,但仍然讓我煩惱。 因為應用程序會吃掉所有異常。

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|
+------+-----+

我不認為我已經完成了,因為如果您有異常-那么您需要查看它們,但是...

對於測試,這可能是一個決定。 感謝所有參與對話的人。 決策實在是難以理解。 不過謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM