aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Feng <karenfeng.us@gmail.com>2013-07-11 15:22:45 -0700
committerKaren Feng <karenfeng.us@gmail.com>2013-07-11 15:22:45 -0700
commit5d5dbc39f603201a3596031542d52742cfb30139 (patch)
treecf1683cd49532fd0e513e2821393ec57e33b371b
parent15fd11d65735265f6fcc25419b43c8c104a4bd17 (diff)
downloadspark-5d5dbc39f603201a3596031542d52742cfb30139.tar.gz
spark-5d5dbc39f603201a3596031542d52742cfb30139.tar.bz2
spark-5d5dbc39f603201a3596031542d52742cfb30139.zip
getByteRange moved to WorkerWebUI, takes converted parameters, returns only start/end offset
-rw-r--r--core/src/main/scala/spark/Utils.scala23
-rw-r--r--core/src/main/scala/spark/deploy/worker/ui/WorkerWebUI.scala43
2 files changed, 34 insertions, 32 deletions
diff --git a/core/src/main/scala/spark/Utils.scala b/core/src/main/scala/spark/Utils.scala
index 04041d1179..5a37532306 100644
--- a/core/src/main/scala/spark/Utils.scala
+++ b/core/src/main/scala/spark/Utils.scala
@@ -621,29 +621,6 @@ private object Utils extends Logging {
callSiteInfo.firstUserLine)
}
- /** Determine the byte range for a log or log page. */
- def getByteRange(path: String, offset: Option[String], byteLength: Option[String])
- : (Long, Long, Long, Int) = {
- val defaultBytes = 10000
- val maxBytes = 1024 * 1024
-
- val file = new File(path)
- val logLength = file.length()
- val getOffset = offset.map(_.toLong).getOrElse(logLength-defaultBytes)
-
- val fixedOffset =
- if (getOffset < 0) 0L
- else if (getOffset > logLength) logLength
- else getOffset
-
- val getByteLength = byteLength.map(_.toInt).getOrElse(defaultBytes)
- val logPageLength = math.min(getByteLength, maxBytes)
-
- val endOffset = math.min(fixedOffset+logPageLength, logLength)
-
- (fixedOffset, endOffset, logLength, logPageLength)
- }
-
/** Return a string containing part of a file from byte 'start' to 'end'. */
def offsetBytes(path: String, start: Long, end: Long): String = {
val file = new File(path)
diff --git a/core/src/main/scala/spark/deploy/worker/ui/WorkerWebUI.scala b/core/src/main/scala/spark/deploy/worker/ui/WorkerWebUI.scala
index 676de231f0..1fb59de1d8 100644
--- a/core/src/main/scala/spark/deploy/worker/ui/WorkerWebUI.scala
+++ b/core/src/main/scala/spark/deploy/worker/ui/WorkerWebUI.scala
@@ -57,14 +57,15 @@ class WorkerWebUI(val worker: Worker, val workDir: File, requestedPort: Option[I
val appId = request.getParameter("appId")
val executorId = request.getParameter("executorId")
val logType = request.getParameter("logType")
- val offset = Option(request.getParameter("offset"))
- val byteLength = Option(request.getParameter("byteLength"))
+ val offset = Option(request.getParameter("offset")).map(_.toLong)
+ val byteLength = Option(request.getParameter("byteLength")).map(_.toInt)
val path = "%s/%s/%s/%s".format(workDir.getPath, appId, executorId, logType)
- val offsetBytes = Utils.getByteRange(path, offset, byteLength)
+ val offsetBytes = getByteRange(path, offset, byteLength)
val fixedOffset = offsetBytes._1
val endOffset = offsetBytes._2
- val logLength = offsetBytes._3
+ val file = new File(path)
+ val logLength = file.length
val pre = "==== Bytes %s-%s of %s of %s/%s/%s ====\n"
.format(fixedOffset, endOffset, logLength, appId, executorId, logType)
@@ -75,15 +76,16 @@ class WorkerWebUI(val worker: Worker, val workDir: File, requestedPort: Option[I
val appId = request.getParameter("appId")
val executorId = request.getParameter("executorId")
val logType = request.getParameter("logType")
- val offset = Option(request.getParameter("offset"))
- val byteLength = Option(request.getParameter("byteLength"))
+ val offset = Option(request.getParameter("offset")).map(_.toLong)
+ val byteLength = Option(request.getParameter("byteLength")).map(_.toInt)
val path = "%s/%s/%s/%s".format(workDir.getPath, appId, executorId, logType)
- val offsetBytes = Utils.getByteRange(path, offset, byteLength)
+ val offsetBytes = getByteRange(path, offset, byteLength)
val fixedOffset = offsetBytes._1
val endOffset = offsetBytes._2
- val logLength = offsetBytes._3
- val logPageLength = offsetBytes._4
+ val file = new File(path)
+ val logLength = file.length
+ val logPageLength = endOffset-fixedOffset
val logText = <node>{Utils.offsetBytes(path, fixedOffset, endOffset)}</node>
@@ -133,6 +135,29 @@ class WorkerWebUI(val worker: Worker, val workDir: File, requestedPort: Option[I
UIUtils.basicSparkPage(content, logType + " log page for " + appId)
}
+ /** Determine the byte range for a log or log page. */
+ def getByteRange(path: String, offset: Option[Long], byteLength: Option[Int])
+ : (Long, Long) = {
+ val defaultBytes = 10000
+ val maxBytes = 1024 * 1024
+
+ val file = new File(path)
+ val logLength = file.length()
+ val getOffset = offset.getOrElse(logLength-defaultBytes)
+
+ val fixedOffset =
+ if (getOffset < 0) 0L
+ else if (getOffset > logLength) logLength
+ else getOffset
+
+ val getByteLength = byteLength.getOrElse(defaultBytes)
+ val logPageLength = math.min(getByteLength, maxBytes)
+
+ val endOffset = math.min(fixedOffset+logPageLength, logLength)
+
+ (fixedOffset, endOffset)
+ }
+
def stop() {
server.foreach(_.stop())
}