-
Notifications
You must be signed in to change notification settings - Fork 66
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
Improving file server location and executor package handling #57
Conversation
51f1f18
to
fe851f8
Compare
hey @echinthaka : thanks for the PR. I'm on vacation (actually in an airplane
|
yes
I lost that log but it was complaining when it was trying to copy the storm.yaml with
This is kinda specific to HDFS if the file is hosted in HDFS. For example in my case the executorURI is something like
0.22.1 |
Since downloading executor binaries from HDFS URIs seems to be one of the main suggested ways of running mesos, I still believe (perhaps naively) that this is not an issue we should be solving in the storm framework, and instead it should solved by mesos proper. @tnachen : can you please speak to whether HDFS URIs are supported in the |
Ok, I need to learn to read better. You are using WebHDFS to serve files over HTTP from HDFS. And you are using
Or maybe we want to enhance the URI definition in mesos to include a "downloaded filename" value? In general I'm not sure it's correct to change this logic to use NOTE: I often edit my comments after initially sending them, so please go to github instead of replying to the emails. |
@echinthaka : coming back to this PR (thanks for the offline reminder): I feel like we probably need to start 3 changes in the 3 projects that are involved: Hadoop / WebHDFSWe should file an HDFS ticket with component webhdfs for adding support to WebHDFS such that the downloaded file is automatically set to This fix would take forever to get adopted anywhere, so it's a long-term thing, not an immediate fix. MesosAssumptions:
Given those assumptions, it would seem that Mesos should somehow handle this situation more cleanly. e.g., we could modify the Mesos protobuf Perhaps I will just email the mesos dev list about the proposal above. It seems like better handling is needed, though I haven't tested anything with WebHDFS myself yet. I wanna mess around with the HDFS proposal as well, so that I can file that bug and then reference it in the mesos dev email. Even if this Mesos proposal is accepted and implemented, it will take time to become available for our use. Storm Framework for Mesos (i.e., this project, mesos/storm)So your proposal is one way to workaround the issue since we cannot rely on the fixes above being ready anytime soon. But since using
All of that simply for supporting WebHDFS. Perhaps we can reconcile your desired support with my concerns with this proposal: having a configuration knob in Does this all sound ok to you Eran? |
This might no longer be needed since merging #65. From that PR, the config is generated at runtime and then served up to the supervisors. Can you reexamine your changes to see if this is still necessary? |
@brndnmtthws : the bigger issue that @echinthaka is dealing with is that the executor file is being served from HDFS for his company, and the WebHDFS URL results in a funky filename after the expansion of the tar ball; i.e., |
I tried to cherry-pick this into master, and got these conflicts:
For me to move forward with testing, I will apply the changes manually and maybe submit a pr to @echinthaka |
@echinthaka : I finally got some time to learn and test the "serve-executor-tarball-over-WebHDFS" behavior, and it seems to be different in The mesos fetcher fails to extract the tarball at all, reporting this in the executor logs:
I've found 3 related tickets in Mesos:
I've linked the tickets together and posed some Qs in one of them (MESOS-3367). @echinthaka : for now how about we add your proposed alternative launching method as a configurable variant? i.e., in the latest code we allow use of either a docker containerizer or direct use of a regular storm-mesos tarball. (Please note that @DarinJ in #77 is refactoring this area of the code (his change is very close to being merged).) |
@echinthaka : I'm closing this PR in favor of #97. Please comment if you still need this support. |
This PR fixes two issues.
storm.yaml
to storm workers, the code assumes the conf directory to beconf
. But this can fail especially when storm-mesos process is started through upstart scripts etc. Hence, we need to provide a way to explicitly pass this location to help in these cases. This fix allows the conf location to be passed usingmesos.local.file.server.location
. If not provided, it will fallback toconf
?op=OPEN
at the end. This can fail the complete command that gets executed after that. Hence, instead of relying on mesos to do the download for us, we are explicitly using wget to do that and use that also to rename the file.