Spark 启动历史任务记录进程,报错 Logging directory must be specified解决
2015-01-07 21:28
253 查看
最近在自己电脑上装了Spark 单机运行模式,Spark 启动没有任何问题,可是启动spark history时,一直报错,错误信息如下:
History Server配置使用》文章中,知道可以有如下两种方法解决:
1.在启动 spark history进程时指定 spark.history.fs.logDirectory的值,如下:
2.在conf/spark-defaults.conf中配置
history server相关的配置参数描述
1) spark.history.updateInterval
默认值:10
以秒为单位,更新日志相关信息的时间间隔
2)spark.history.retainedApplications
默认值:50
在内存中保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,当再次访问已被删除的应用信息时需要重新构建页面。
3)spark.history.ui.port
默认值:18080
HistoryServer的web端口
4)spark.history.kerberos.enabled
默认值:false
是否使用kerberos方式登录访问HistoryServer,对于持久层位于安全集群的HDFS上是有用的,如果设置为true,就要配置下面的两个属性
5)spark.history.kerberos.principal
默认值:用于HistoryServer的kerberos主体名称
6)spark.history.kerberos.keytab
用于HistoryServer的kerberos keytab文件位置
7)spark.history.ui.acls.enable
默认值:false
授权用户查看应用程序信息的时候是否检查acl。如果启用,只有应用程序所有者和spark.ui.view.acls指定的用户可以查看应用程序信息;否则,不做任何检查
8)spark.eventLog.enabled
默认值:false
是否记录Spark事件,用于应用程序在完成后重构webUI
9)spark.eventLog.dir
默认值:file:///tmp/spark-events
保存日志相关信息的路径,可以是hdfs://开头的HDFS路径,也可以是file://开头的本地路径,都需要提前创建
10)spark.eventLog.compress
默认值:false
是否压缩记录Spark事件,前提spark.eventLog.enabled为true,默认使用的是snappy
以spark.history开头的需要配置在spark-env.sh中的SPARK_HISTORY_OPTS,以spark.eventLog开头的配置在spark-defaults.conf
spark-defaults.conf
spark-env.sh
参数描述:
spark.history.ui.port=7777 调整WEBUI访问的端口号为7777,端口可以根据自己修改
spark.history.fs.logDirectory=hdfs://localhost:9000/sparkHistoryLogs 配置了该属性后,在start-history-server.sh时就无需再显示的指定路径,需要根据实际修改
spark.history.retainedApplications=3 指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除
调整参数后启动start-history-server.sh就不需要加参数了
此文进用于备忘和学习,若有不对,敬请指教!
参考:http://www.cnblogs.com/luogankun/p/4089767.html
http://www.cnblogs.com/luogankun/p/3981645.html
Spark assembly has been built with Hive, including Datanucleus jars on classpath Spark Command: /usr/local/java/jdk1.7.0_67/bin/java -cp ::/usr/local/spark/conf:/usr/local/spark/lib/spark-assembly-1.1.0-hadoop2.4.0.jar:/usr/local/spark/lib/datanucleus-core-3.2.2.jar:/usr/local/spark/lib/datanucleus-api-jdo-3.2.1.jar:/usr/local/spark/lib/datanucleus-rdbms-3.2.1.jar:/usr/local/hadoop/etc/hadoop -XX:MaxPermSize=128m -Dspark.akka.logLifecycleEvents=true -Xms512m -Xmx512m org.apache.spark.deploy.history.HistoryServer ======================================== 15/01/07 15:08:55 INFO history.HistoryServer: Registered signal handlers for [TERM, HUP, INT] 15/01/07 15:08:55 INFO spark.SecurityManager: Changing view acls to: root, 15/01/07 15:08:55 INFO spark.SecurityManager: Changing modify acls to: root, 15/01/07 15:08:55 INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(root, ); users with modify permissions: Set(root, ) Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.spark.deploy.history.HistoryServer$.main(HistoryServer.scala:187) at org.apache.spark.deploy.history.HistoryServer.main(HistoryServer.scala) Caused by: java.lang.IllegalArgumentException: Logging directory must be specified. at org.apache.spark.deploy.history.FsHistoryProvider$$anonfun$2.apply(FsHistoryProvider.scala:41) at org.apache.spark.deploy.history.FsHistoryProvider$$anonfun$2.apply(FsHistoryProvider.scala:41) at scala.Option.getOrElse(Option.scala:120) at org.apache.spark.deploy.history.FsHistoryProvider.<init>(FsHistoryProvider.scala:41) ... 6 more /usr/local/spark/sbin/../logs/spark-root-org.apache.spark.deploy.history.HistoryServer-1-macor.out (END)错误提示是 log directory 没有指定,找了半天也不知道该怎么设置,另外在这篇文章中《Spark History Server处理流程分析》有相应的源码分析,通过学习,知道了是 spark.history.fs.logDirectory参数未指定,可是我还是不知道怎么设置啊!后来在这篇《Spark
History Server配置使用》文章中,知道可以有如下两种方法解决:
1.在启动 spark history进程时指定 spark.history.fs.logDirectory的值,如下:
start-history-server.sh hdfs://localhost:9000/sparkHistoryLogs
2.在conf/spark-defaults.conf中配置
history server相关的配置参数描述
1) spark.history.updateInterval
默认值:10
以秒为单位,更新日志相关信息的时间间隔
2)spark.history.retainedApplications
默认值:50
在内存中保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,当再次访问已被删除的应用信息时需要重新构建页面。
3)spark.history.ui.port
默认值:18080
HistoryServer的web端口
4)spark.history.kerberos.enabled
默认值:false
是否使用kerberos方式登录访问HistoryServer,对于持久层位于安全集群的HDFS上是有用的,如果设置为true,就要配置下面的两个属性
5)spark.history.kerberos.principal
默认值:用于HistoryServer的kerberos主体名称
6)spark.history.kerberos.keytab
用于HistoryServer的kerberos keytab文件位置
7)spark.history.ui.acls.enable
默认值:false
授权用户查看应用程序信息的时候是否检查acl。如果启用,只有应用程序所有者和spark.ui.view.acls指定的用户可以查看应用程序信息;否则,不做任何检查
8)spark.eventLog.enabled
默认值:false
是否记录Spark事件,用于应用程序在完成后重构webUI
9)spark.eventLog.dir
默认值:file:///tmp/spark-events
保存日志相关信息的路径,可以是hdfs://开头的HDFS路径,也可以是file://开头的本地路径,都需要提前创建
10)spark.eventLog.compress
默认值:false
是否压缩记录Spark事件,前提spark.eventLog.enabled为true,默认使用的是snappy
以spark.history开头的需要配置在spark-env.sh中的SPARK_HISTORY_OPTS,以spark.eventLog开头的配置在spark-defaults.conf
spark-defaults.conf
spark.eventLog.enabled true spark.eventLog.dir hdfs://localhost:9000/eventLogs spark.eventLog.compress true
spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7777 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://localhost:9000/sparkHistoryLogs"
参数描述:
spark.history.ui.port=7777 调整WEBUI访问的端口号为7777,端口可以根据自己修改
spark.history.fs.logDirectory=hdfs://localhost:9000/sparkHistoryLogs 配置了该属性后,在start-history-server.sh时就无需再显示的指定路径,需要根据实际修改
spark.history.retainedApplications=3 指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除
调整参数后启动start-history-server.sh就不需要加参数了
start-history-server.sh
此文进用于备忘和学习,若有不对,敬请指教!
参考:http://www.cnblogs.com/luogankun/p/4089767.html
http://www.cnblogs.com/luogankun/p/3981645.html
相关文章推荐
- 在cron启动定时任务后总是会启动一个[sendmail] 进程的解决方法, 并且每次cron任务之后msmtp.log总是记录一条发送失败的日志
- SPARK启动历史任务查看
- 根据SPID(系统进程号)查询执行过的SQL历史记录
- Android应用程序模块详解(任务、启动模式、进程和线程、FLAG_ACTIVITY_NEW_TASK)
- Activity启动模式与任务栈(Task)全面深入记录(上)
- Activity启动模式与任务栈(Task)全面深入记录
- Activiti基础教程--07流程执行历史记录(历史任务、历史流程实例、历史活动)
- linux后台启动进程并记录进程ID
- Activiti基础教程--07流程执行历史记录(历史任务、历史流程实例、历史活动)
- spark 1.6.0 core源码分析1 集群启动及任务提交过程
- spark源码分析之Executor启动与任务提交篇
- 一个使用scala+spark分析客户购买历史记录的例子
- RHCE学习<5>RHEL6进程管理、Cron任务计划和启动故障排除
- Win7中如何在服务中启动一个当前用户的进程——函数CreateProcessAsUser()的一次使用记录
- shell 进度条及启动另一个进程处理任务
- spark core源码分析1 集群启动及任务提交过程
- 修改Matlab启动的默认current folder,删除/清除current folder的历史记录
- Play Framework Web开发教程(19): 任务–启动一些进程
- win7计划任务打开历史记录
- jenkins 为啥启动了daemon进程后 任务结束 进程也终止了