-
Notifications
You must be signed in to change notification settings - Fork 2.8k
[ZEPPELIN-2645] Adding way to register RemoteInterpreterServer's port into InterpreterProcess #2418
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@jongyoul Thanks for the PR.
|
|
@jongyoul I think there's 2 follow up things to do.
When we consider to choose netty or thrift, we need to consider these 2 things. Any thoughts ? |
|
@zjffdu Agreed. |
|
Sorry @jongyoul I did a investigation on netty, it looks like we could use Channel directly. In that way I would prefer to use netty. But still I think we need to have a good design for the communication framework change from thrift to netty considering the 2 things I mentioned above. |
|
@zjffdu Sounds good. I totally agree with your point of view. We need to add pushing way from interpreter to server, and also abstract that layer carefully to guess most of situation. This is a kind of PoC level. I'll make a design docs for handling it. |
|
I'd like adding more points to the discussion:
|
This is internal communication channel between zeppelin server and interpreter process, so I don't think it is necessary to use kerberos here. But definitely, we need to make sure this channel secure, I think both thrift and netty support security channel.
We would use just one, that's why I mention in the above comment that before we choose thrift or netty, we need to consider the whole picture.
I don't see much advantages of using websocket. Netty and thrift both could do the push. And the communication channel here is one-to-one, not one-to-many. |
|
In case of SNPEGO Web Auth (not yet supported by Zeppelin0,, you could consider transfert the Kerberos ticket from front-end to back-end and use it to , this the usecase I was thinking to. Well, multiple and pluggable communication between frontend and interpreters would be great and useful, but I am aware of the impact on code level. If we have to move to something else than thrift, what would be the added value of netty (just asking). |
|
@echarles Hi, at first, if we enable front-end to access to interpreter directly, we have to consider that each interpreter has to know whole ACL information and etc. I don't think it's good design. Second, netty has a benefit while making connections between server and interpreter. It can be handled one connection for bidirectional communication. |
|
@jongyoul sorry, I was not clear enough. With frontend, I was meaning the web layer (so jetty). Jetty could communicate via a variety of protocols to the interpreters. Now going further in that direction, having protocols like REST or WebSocket would allow any king of clients to access the interpeters in direct - Those clients could be the current javascript of Zeppelin webapp, or any other kind of client (could be bash or python script...) This is unique opportunity to extend the Zeppelin user base - Btw, having the AAA (Authentication, Authorization, Auditing) functions at Interpreter level is IMHO a good design, even at the cost of some extra development or refactoring. I am curious to know what the community thinks about this... |
|
@echarles Thanks for the feedback. Currently Interpreter Process can only communicate with Zeppelin Server process, and it is a internal communication channel which is not exposed to users and other components. Regarding your comments |
|
@zjffdu I am thinking to automation (using the notes in an scheduled or batch process). Does it make sense to you? |
|
For that purpose, you can use zeppelin's rest api or note's cron scheduler |
…into InterpreterProcess ### What is this PR for? Rebase PR #2418 , still use thrift as the communication protocol between zeppelin server and interpreter process. We can change it io netty in future when we implement 2 way communication channel between zeppelin server and interpreter process. ### What type of PR is it? [Bug Fix | Improvement | Feature | Documentation | Hot Fix | Refactoring] ### Todos * [ ] - Task ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-2645 ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? NO * Does this needs documentation? No Author: Jongyoul Lee <jongyoul@gmail.com> Closes #2562 from zjffdu/ZEPPELIN-2645 and squashes the following commits: 82bd8d0 [Jongyoul Lee] ZEPPELIN-2645. Adding way to register RemoteInterpreterServer's port into InterpreterProcess
What is this PR for?
This is a thrift version related to #2410
What type of PR is it?
[Feature]
Todos
What is the Jira issue?
How should this be tested?
N/A
Screenshots (if appropriate)
N/A
Questions: