ZeppelinServer
SparkInterpreter
RemoteInterpreterServer
RemoteInterpreterEventClient
(ResourcePoolConnector)
ResourceRegistry
ResourcePoolRestAPI
central catalog for all resources
ZeppelinResourcePoolDataSource
RemoteInterpreterProces (Spark)
RemoteInterpreterServer.Client
RemoteInterpreterEventPoller
Spark Cluster
Postgres
JDBCInterpreter
RemoteInterpreterServer
RemoteInterpreterEventClient
(ResourcePoolConnector)
JDBCTableData
RemoteInterpreterProces (JDBC)
RemoteInterpreterServer.Client
RemoteInterpreterEventPoller
2. propagate resource states
3. notify to the catalog if resource is changed
(add, remove, updated, ...)
list all available resources /
download tables
5. SparkInterpreter can use the zeppelin resource pool as a data source
DistributedResourcePool
1. user executed JDBC paragraph and wants to share via a resource pool.
then, JDBC interpreter creates `JDBCTableData` to point the table result which want to be shared
Each `ResourcePool` instance in an interpreter consists the distributed resource pool
7. Spark interpreter fetches
the remote table's rows, columns
by using remote `invokeMethod` call
8
9
10. get the actual resource by querying the table in the storage
ResourcePool
ResourcePool
Web UI
6. The table (resource) that spark cluster wants to use might be persisted in a different interpreters' resource pool