class ExternalBlockStoreClient extends BlockStoreClient
Client for reading both RDD blocks and shuffle blocks which points to an external (outside of executor) server. This is instead of reading blocks directly from other executors (via BlockTransferService), which has the downside of losing the data if we lose the executors.
- Alphabetic
- By Inheritance
- ExternalBlockStoreClient
- BlockStoreClient
- Closeable
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ExternalBlockStoreClient(conf: TransportConf, secretKeyHolder: SecretKeyHolder, authEnabled: Boolean, registrationTimeoutMs: Long)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
checkInit(): Unit
- Attributes
- protected[shuffle]
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
close(): Unit
- Definition Classes
- ExternalBlockStoreClient → Closeable → AutoCloseable
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
fetchBlocks(host: String, port: Int, execId: String, blockIds: Array[String], listener: BlockFetchingListener, downloadFileManager: DownloadFileManager): Unit
Fetch a sequence of blocks from a remote node asynchronously,
Fetch a sequence of blocks from a remote node asynchronously,
Note that this API takes a sequence so the implementation can batch requests, and does not return a future so the underlying implementation can invoke onBlockFetchSuccess as soon as the data of a block is fetched, rather than waiting for all blocks to be fetched.
- host
the host of the remote node.
- port
the port of the remote node.
- execId
the executor id.
- blockIds
block ids to fetch.
- listener
the listener to receive block fetching status.
- downloadFileManager
DownloadFileManager to create and clean temp files. If it's not
null, the remote blocks will be streamed into temp shuffle files to reduce the memory usage, otherwise, they will be kept in memory.
- Definition Classes
- ExternalBlockStoreClient → BlockStoreClient
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getHostLocalDirs(host: String, port: Int, execIds: Array[String], hostLocalDirsCompletable: CompletableFuture[Map[String, Array[String]]]): Unit
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
init(appId: String): Unit
Initializes the BlockStoreClient, specifying this Executor's appId.
Initializes the BlockStoreClient, specifying this Executor's appId. Must be called before any other method on the BlockStoreClient.
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
registerWithShuffleServer(host: String, port: Int, execId: String, executorInfo: ExecutorShuffleInfo): Unit
Registers this executor with an external shuffle server.
Registers this executor with an external shuffle server. This registration is required to inform the shuffle server about where and how we store our shuffle files.
- host
Host of shuffle server.
- port
Port of shuffle server.
- execId
This Executor's id.
- executorInfo
Contains all info necessary for the service to find our shuffle files.
- def removeBlocks(host: String, port: Int, execId: String, blockIds: Array[String]): Future[Integer]
-
def
shuffleMetrics(): MetricSet
Get the shuffle MetricsSet from BlockStoreClient, this will be used in MetricsSystem to get the Shuffle related metrics.
Get the shuffle MetricsSet from BlockStoreClient, this will be used in MetricsSystem to get the Shuffle related metrics.
- Definition Classes
- ExternalBlockStoreClient → BlockStoreClient
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()