搭建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);。
SocketTimeoutException和ConnectTimeoutException的区别如下:
ConnectTimeoutException: 指的是服务器请求超时。
SocketTimeoutException:指的是服务器响应超时。
HTTP 由两部分组成:请求和响应。当在Web浏览器中输入一个URL时,浏览器将根据要求创建并发送请求,该请求包含所输入的URL以及一些与浏览器本身相关的信息。当服务器收到这个请求时将返回一个响应,该响应包括与该请求相关的信息以及位于指定URL(如果有的话)的数据。直到浏览器解析该响应并显示出网页(或其他资源)为止。
定义方法
private loadData() throws SocketTimeoutException。
{
...
} loadData方法可能抛出SocketTimeoutException异常出来,那么在调用loadData方法的时候就需好准备。
例如:
try {
proDialog = ProgressDialog.show(Main.this, "", "正在加载数据...");。
loadDate(page);。
} catch (SocketTimeoutException e) {。
proDialog.dismiss();。
Toast.makeText(Main.this, "请求服务端超时!", Toast.LENGTH_SHORT)。
.show();
}
但在程序实际运行时,经常会出现抛出了SocketTimeoutException异常,但不执行。
catch (SocketTimeoutException e) {。
proDialog.dismiss();。
Toast.makeText(Main.this, "请求服务端超时!", Toast.LENGTH_SHORT)。
.show();
}