-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
STORM-2441 Break down 'storm-core' to extract client (worker) artifacts #2034
Conversation
21ca748
to
a7ec4ea
Compare
Travis build fails intermittently. Travis build for fork passes (without integration test). |
I googled about |
I am +1 for the general concept. I need to finish going through the code, but I am probably going to do it outside of github because the patch is so huge. As a side note git used to use a config to detect if a file moved. It would diff the files and if a small amount changed between the two it would consider it a move, but it was inexact and changed between clients (because the configured leniency could be different). Now I believe that it is metadata stored with the commit. |
I filed STORM-2447 and STORM-2448 to allow for us to separate out the classpath and make the change transparent for end users. |
+1 it looks good to me. |
Just to let you know that I have been working on making local mode transparent. I have it working, but I have a lot of work to do on the examples and docs left. HeartSaVioR/storm@STORM-2441...revans2:STORM-2447 To make a long story short if you run Once I finish that I will start looking at working on letting a user select an alternative worker classpath. @ptgoetz and @HeartSaVioR I would like to merge this into master sooner rather then later so we don't have to keep up-merging it. Please let me know if you have any concerns about this. |
@revans2 You know, I'm not familiar with Clojure so I couldn't sort out Clojure things in this PR. |
@revans2 |
@HeartSaVioR Yes I gave these changes a +1 because they were as good as I could expect without having storm server removed completely from the storm jar classpath. To make that happen we really had to have a different way to submit a local topology. Now that I have addressed it I was able to finish removing storm server from the classpath and I am working on removing it from all of the external packages as well. |
* break down 'storm-core' into multiple artifacts * 'storm-client': topology and worker, play as client SDK * 'storm-client-misc': client SDK misc which is not added due to dependency addition * 'storm-server': LocalCluster and related daemons * 'storm-core': Clojure things and unported daemons (webapp) and tests * 'storm-webapp': DRPC HTTP server, Logviewer and UI will be placed here * Supervisor will set classpath for worker to just ensure 'storm-client', not 'storm-core' * addresse documentation * apply the change to all modules's pom.xml * add new modules into Travis build * NOTE: we don't shade and relocate what we have been relocated * we should discuss how to overcome dependency issue
Just rebased. |
+1 |
Sorry for the huge diff. I've
generated
classes from storm.thrift from new module, and git doesn't recognize moving files, or IDEA doesn't supportgit mv
when refactor-move.I'll try to rework via
git mv
if we really want to minimize the changeset.Please read issue link and following discussion to see rationale of this issue before reviewing.
This PR breaks down
storm-core
into multiple artifacts.storm-client
: topology and worker, play as client SDKstorm-client-misc
: client SDK misc which is not added due to dependency additionstorm-client
storm-server
: LocalCluster and related daemons (most of them, without webapp)storm-client
storm-core
: Clojure things and unported daemons (webapp) and tests, and commands for storm.pystorm-server
(hencestorm-client
, too)storm-client
instead ofstorm-core
storm-webapp
: DRPC HTTP server, Logviewer and UI will be placed herestorm-core
(hencestorm-client
andstorm-server
, too)After applying this patch, binary dist. will have three library directories,
lib
forstorm-core
(daemons),lib-worker
forstorm-client
,lib-webapp
forstorm-webapp
.We could change lib to refer
storm-server
after porting is done, or evenstorm-webapp
and removelib-webapp
.Please note that there is a precondition to finish this work.
This patch doesn't relocate what we have been relocating. Relocation doesn't work when we have multiple modules, and we already have multiple modules for storm-core and storm-drpc-server which shows build failure from IntelliJ IDEA.
Unit tests and manual tests passed.
commit log