2014-12-14 23 views
12

Tôi đang chạy Spark trên EMR như mô tả trong Run Spark and Spark SQL on Amazon Elastic MapReduce:Làm thế nào để ngăn chặn thông báo INFO cho spark-sql đang chạy trên EMR?

hướng dẫn này hướng dẫn bạn cách cài đặt và điều hành Spark, một và chung động cơ nhanh cho xử lý dữ liệu quy mô lớn, trên một Amazon EMR cluster. Bạn cũng sẽ tạo và truy vấn tập dữ liệu trong Amazon S3 bằng cách sử dụng Spark SQL và tìm hiểu cách giám sát Spark trên cụm Amazon EMR với Amazon CloudWatch.

Tôi đang cố gắng tắt INFO nhật ký bằng cách chỉnh sửa $HOME/spark/conf/log4j.properties không có kết quả.

Output trông giống như:

$ ./spark/bin/spark-sql 
Spark assembly has been built with Hive, including Datanucleus jars on classpath 
SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/home/hadoop/.versions/2.4.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/home/hadoop/.versions/spark-1.1.1.e/lib/spark-assembly-1.1.1-hadoop2.4.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 
2014-12-14 20:59:01,819 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive 
2014-12-14 20:59:01,825 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize 
2014-12-14 20:59:01,825 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize 
2014-12-14 20:59:01,825 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.min.split.size.per.rack is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.rack 

Làm thế nào để ngăn chặn những thông điệp INFO trên?

+0

gói java cho Spark là gì? –

+2

Một số tiến trình: Thực hiện './spark/bin/spark-shell --driver-java-options" -Dlog4j.debug "' Cho phép tôi chuyển tùy chọn JVM và thấy rằng đó là tệp log4j.properties ở đâu đó trong một cái lọ. Làm './spark/bin/spark-shell --driver-java-options" -Dlog4j.configuration = file: /// home/hadoop/spark/conf/log4j.các thuộc tính "' Dường như hoạt động, mặc dù điều này có vẻ khó khăn – rongenre

Trả lời

12

tôi đã có thể làm điều này bằng cách chỉnh sửa $HOME/spark/conf/log4j.properties như mong muốn, và kêu gọi spark-sql với --driver-java-options như sau:

./spark/bin/spark-sql --driver-java-options "-Dlog4j.configuration=file:///home/hadoop/spark/conf/log4j.properties" 

tôi có thể xác minh rằng các tập tin chính xác đã được sử dụng bằng cách thêm -Dlog4j.debug với các tùy chọn:

./spark/bin/spark-sql --driver-java-options "-Dlog4j.debug -Dlog4j.configuration=file:///home/hadoop/spark/conf/log4j.properties" 
4

spark-sql --driver-java-options "-Dlog4j.configuration = file: ///home/hadoop/conf/log4j.properties"

cat conf/log4j.properties

# Set everything to be logged to the console 
log4j.rootCategory=WARN, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

# Settings to quiet third party logs that are too verbose 
log4j.logger.org.eclipse.jetty=WARN 
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR 
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=WARN 
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=WARN 
13

Bạn cũng có thể chỉ cần thêm các tùy chọn cấu hình tại tạo cụm, nếu bạn biết bạn muốn ngăn chặn khai thác gỗ cho một cụm EMR mới.

EMR chấp nhận các tùy chọn cấu hình dưới dạng JSON, bạn có thể nhập trực tiếp vào bảng điều khiển AWS hoặc chuyển qua một tệp khi sử dụng CLI.

Trong trường hợp này, để thay đổi mức độ đăng nhập để WARN, đây là JSON:

[ 
    { 
    "classification": "spark-log4j", 
    "properties": {"log4j.rootCategory": "WARN, console"} 
    } 
] 

Trong giao diện điều khiển, bạn sẽ thêm này trong bước tạo đầu tiên:

configuration in the AWS Console

Hoặc nếu bạn đang tạo cụm bằng cách sử dụng CLI:

aws emr create-cluster <options here> --configurations config_file.json 

Bạn có thể đọc thêm in the EMR documentation.

Các vấn đề liên quan