yarn 方式提交如何指定 spark streaming log 位置及保留时间?

环境: cdh5.11 spark2.1.0
        yarn 方式提交
目标: 把spark steaming的日志只保留2天并放到指定位置
网上查了几种方法都没测试成功.
主要就是设置log4j,并在log4j中设置指定log的位置,但都没有任何效果
 
最后想到不如只是spark自身的日志,但是保留时间又是个问题.集群中设置日志保留时间是7天.
我尝试在自己的 resources下放yarn-site.xml文件其中把 yarn.log-aggregation.retain-seconds  设置为300(5分钟),然而也没有任何作用. 这也引出是不是 yarn 中的 job 是不是可以自定义系统参数问题
希望祝位大神能给些指点.

wangxiaolei

赞同来自:

yarn-site.xml配置 1)yarn.log-aggregation-enable 参数解释:是否启用日志聚集功能。 默认值:false 请设置为true(一定) 2)yarn.log-aggregation.retain-seconds 参数解释:在HDFS上聚集的日志最多保存多长时间。 默认值:-1 3)yarn.nodemanager.log.retain-seconds 可如此设置<name>yarn.log-aggregation.retain-seconds</name>     <value>864000</value> 参数解释:log-aggregation为disabled时日志保存多长时间。 spark-defaults.conf配置 修改$SPARK_HOME/conf/spark-default.conf spark.eventLog.enabled    true spark.eventLog.compress   true spark.eventLog.dir           file:///home/path/to/eventLog spark.yarn.historyServer.address   master:18080 其中,spark.eventLog.enabled开启时间记录,默认是false,spark.eventLog.compress是否压缩记录Spark事件,默认snappy,spark.eventLog.dir存储日志路径,可以是hdfs路径(如hdfs://master:9000/history)或者driver本地路径,在此之前要创建相应的目录,否则会报错。spark.yarn.historyServer.address是设置Spark history server的地址和端口,这个链接将会链接到YARN监测界面上的Tracking UI。 sparn-env.sh配置 export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=file:///home/path/to/eventLog" ui.port端口号需要和spark-defaults.conf保持一致,retainedApplications表示在historyServer上显示的最大application数量,如果超过这个数量,旧的application信息将会删除。fs.logDirectory日志目录和spark-defaults.conf保持一致。 启动Spark History Server 在spark目录下 ./sbin/start-history-server.sh 成功后,打开http://master:18080,就可以看到相应的日志记录列表,进去之后也可以转到Spark Web UI上。

要回复问题请先登录注册