class_docstr: Encapsulates unique metadata for a TensorFlowOnSpark node/executor and provides methods to interact with Spark and HDFS.
  
  An instance of this object will be passed to the TensorFlow "main" function via the `ctx` argument.
  To simply the end-user API, this class now mirrors the functions of the TFNode module.
  
  Args:
    :executor_id: integer identifier for this executor, per ``nodeRDD = sc.parallelize(range(num_executors), num_executors).``
    :job_name: TensorFlow job name (e.g. 'ps' or 'worker') of this TF node, per cluster_spec.
    :task_index: integer rank per job_name, e.g. "worker:0", "worker:1", "ps:0".
    :cluster_spec: dictionary for constructing a tf.train.ClusterSpec.
    :defaultFS: string representation of default FileSystem, e.g. ``file://`` or ``hdfs://<namenode>:8020/``.
    :working_dir: the current working directory for local filesystems, or YARN containers.
    :mgr: TFManager instance for this Python worker.
    :tmp_socket: temporary socket used to select random port for TF GRPC server.
class_docstr_tok: ["Encapsulates","unique","metadata","for","a","TensorFlowOnSpark","node\/executor","and","provides","methods","to","interact","with","Spark","and","HDFS",".","An","instance","of","this","object","will","be","passed","to","the","TensorFlow","``","main","''","function","via","the","`","ctx","`","argument",".","To","simply","the","end-user","API",",","this","class","now","mirrors","the","functions","of","the","TFNode","module",".","Args",":",":","executor_id",":","integer","identifier","for","this","executor",",","per","``","nodeRDD","=","sc.parallelize","(","range","(","num_executors",")",",","num_executors",")",".","``",":","job_name",":","TensorFlow","job","name","(","e.g",".","'ps","'","or","'worker","'",")","of","this","TF","node",",","per","cluster_spec",".",":","task_index",":","integer","rank","per","job_name",",","e.g",".","``","worker:0","''",",","``","worker:1","''",",","``","ps:0","''",".",":","cluster_spec",":","dictionary","for","constructing","a","tf.train.ClusterSpec",".",":","defaultFS",":","string","representation","of","default","FileSystem",",","e.g",".","``","file",":","\/\/","``","or","``","hdfs",":","\/\/","<","namenode",">",":8020\/","``",".",":","working_dir",":","the","current","working","directory","for","local","filesystems",",","or","YARN","containers",".",":","mgr",":","TFManager","instance","for","this","Python","worker",".",":","tmp_socket",":","temporary","socket","used","to","select","random","port","for","TF","GRPC","server","."]
docstr: Convenience function to access ``TFNode.start_cluster_server`` directly from this object instance.
docstr_tok: ["Convenience","function","to","access","``","TFNode.start_cluster_server","``","directly","from","this","object","instance","."]
code: def start_cluster_server(self, num_gpus=1, rdma=False):
      """Convenience function to access ``TFNode.start_cluster_server`` directly from this object instance."""
      return TFNode.start_cluster_server(self, num_gpus, rdma)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import nested_scopes
  from __future__ import print_function
  import json
  import logging
  import multiprocessing
  import os
  import pkg_resources
  import platform
  import socket
  import subprocess
  import sys
  import uuid
  import time
  import traceback
  from packaging import version
  from threading import Thread
  from .None import TFManager
  from .None import TFNode
  from .None import gpu_info
  from .None import marker
  from .None import reservation
  from .None import util
label_desc: Use image node_id 3 for calling the TFNodeContext obj's underlying member method code with example usage: obj.start_cluster_server(num_gpus, rdma) and returns: TFNode