搭建spark集群时,集群启动后,刚开始在节点上jps查看进程会显示master与worker, 日志为:
Spark assembly has been built with Hive, including Datanucleus jars on classpath。
Spark Command: /usr/lib/java/jdk1.7.0_71/bin/java -cp ::/usr/local/spark/spark-1.0.0-bin-hadoop1/conf:/usr/local/spark/spark-1.0.0-bin-hadoop1/lib/spark-assembly-1.0.0-hadoop1.0.4.jar:/usr/local/spark/spark-1.0.0-bin-hadoop1/lib/datanucleus-rdbms-3.2.1.jar:/usr/local/spark/spark-1.0.0-bin-hadoop1/lib/datanucleus-api-jdo-3.2.1.jar:/usr/local/spark/spark-1.0.0-bin-hadoop1/lib/datanucleus-core-3.2.2.jar:/usr/local/hadoop/hadoop-1.2.1/conf -XX:MaxPermSize=128m -Dspark.akka.logLifecycleEvents=true -Xms512m -Xmx512m org.apache.spark.deploy.master.Master --ip 192.168.81.128 --port 7077 --webui-port 8080。
========================================。
14/12/03 11:34:55 INFO spark.SecurityManager: Changing view acls to: root。
14/12/03 11:34:55 INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(root)。
14/12/03 11:35:44 INFO slf4j.Slf4jLogger: Slf4jLogger started。
14/12/03 11:35:48 INFO Remoting: Starting remoting。
Exception in thread "main" java.util.concurrent.TimeoutException: Futures timed out after [10000 milliseconds]。
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)。
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)。
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:107)。
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)。
at scala.concurrent.Await$.result(package.scala:107)。
at akka.remote.Remoting.start(Remoting.scala:173)。
at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:184)。
at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:579)。
at akka.actor.ActorSystemImpl._start(ActorSystem.scala:577)。
at akka.actor.ActorSystemImpl.start(ActorSystem.scala:588)。
at akka.actor.ActorSystem$.apply(ActorSystem.scala:111)。
at akka.actor.ActorSystem$.apply(ActorSystem.scala:104)。
at org.apache.spark.util.AkkaUtils$.createActorSystem(AkkaUtils.scala:104)。
at org.apache.spark.deploy.master.Master$.startSystemAndActor(Master.scala:785)。
at org.apache.spark.deploy.master.Master$.main(Master.scala:765)。
at org.apache.spark.deploy.master.Master.main(Master.scala)。
sockettimeoutexception是网络请求超时异常,在网络状况不佳,且设置了RequestTimeOut、ReadTimeOut时会爆出该错误。
此时应该给出网络连接超时的提示,并给出用户重试的交互,或建立自动重新连接的线程。
注意文件传输时,万万不可设置连接最大超时,否则极易导致文件下载中断等问题!
1、SocketTimeoutException一般是服务器响应超时,即服务器已经收到了请求但是没有给客户端进行有效的返回;而ConnectTimeoutException指服务器请求超时,指在请求的时候无法客户端无法连接上服务端:
请求超时和响应超时的意义可通过下面的例子理解:
当一笔交易,如果请求失败,那可以允许用户再次提交。如果是响应失败,那就说明用户提交成功了,应该防止用户再次提交 。
2、在代码里可以对应的设置请求超时和响应超时的最大时间:
//请求超时 httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,reqTimeout);。
//响应超时 httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, resTimeout);。
具体的解决方法如下:
修改tomcat配置文件server.xml,找到类似于下面配置:。
<Connector port="8086" maxHttpHeaderSize="8192"。
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"。
enableLookups="false" redirectPort="8443" acceptCount="100"。
connectionTimeout="20000" disableUploadTimeout="true" /> 。
将上面的参数disableUploadTimeout值改为false即可。