-
Notifications
You must be signed in to change notification settings - Fork 512
METRON-270: Add Zeppelin to the platform #423
Conversation
So far, I have not been able to get the "Zeppelin Dashboard Install" mechanism to work. I am not aware of step-by-step instructions to use the MPack, but maybe I am missing them. Thought it would be beneficial to document here since it took me a while to piece all this together. Here is exactly what I did. What did I do wrong? Build
Create Test VM
Install Ambari MPack
Deploy Metron with MPack
Install Zeppelin Notebooks
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few comments. Thanks for the PR.
from params import params | ||
env.set_params(params) | ||
|
||
for dirName, subdirList, files in os.walk(params.metron_config_zeppelin_path): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to log the path that it is looking for the Notebooks in; params.metron_config_zeppelin_path
? I'd like to see this in the Ambari status output, especially if it doesn't find any Notebooks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add logging for that. You're right, in the case that there are no notebooks, it'd be helpful to see what it's using.
@@ -187,6 +187,14 @@ | |||
<timeout>600</timeout> | |||
</commandScript> | |||
</customCommand> | |||
<customCommand> | |||
<name>ZEPPELIN_DASHBOARD_INSTALL</name> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we call this "Zeppelin Notebook Install"? I think that's the preferred Zeppelin nomenclature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like they use "Import" instead of "Install". How about "Zeppelin Notebook Import"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect.
I had the wrong directory. If I put a Notebook in
|
@@ -133,6 +133,8 @@ Notably, the URL for the GeoIP database that is preloaded (and is prefilled by d | |||
|
|||
After installation, a custom action is available in Ambari (where stop / start services are) to install Elasticsearch templates. Similar to this, a custom Kibana action to Load Template is available. | |||
|
|||
Another custom action is available in Ambari to import Zeppelin dashboards. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we link from this mention here to the more detailed information that you have in metron-platform/metron-indexing/README.md
?
@nickwallen , glad you got it working. Just BTW, the wiki page recently posted by Dima Kovalyov ( @DimDroll ) has fairly detailed step-by-step instructions for Ambari install, which it looks like you pretty well replicated. It will need updating after @dlyle65535 commits the stuff from METRON-609 and METRON-634 (see PR#425). Would be great if you or @justinleet add the Zeppelin steps to that wiki page :-) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 Works great. Tested by manually pushing a Notebook to the local filesystem. Also, tested by packaging a notebook in the RPM.
Adds Zeppelin to the Ambari Management Pack portion. Adding to the Ansible / quick dev portion is happening a bit in parallel with Nick's work on METRON-346.
This ticket existed before the mpack, so if we're not comfortable having this just cover the mpack I'd prefer to split this ticket rather than force them together. This isn't packaging up any notebooks, so there's not deviation in functionality until notebooks are added.
Essentially, this ties into metron-indexing (because we rely on data generated there). I'm open to adjusting this if anybody feels strongly about it, but I think it's currently the best place. Zeppelin notebook JSON files are loaded from metron-platform/metron-indexing/src/main/config/zeppelin/. These files can be placed into subdirs for organization if desired. (e.g. zeppelin/bro/bro.json) and must end with .json.
A custom action is added to the mpack to import these notebooks. This action is available regardless of whether or not Metron itself is running. Zeppelin configuration is autopopulated by the management pack.
Zeppelin allows for duplicate notebook names (they'll be given differing IDs). I didn't implement a way to track installed notebooks, but this is potentially a good future feature (to allow us to delete all installed notebooks, etc.). Once the management pack installs the notebooks, they're treated as belonging to Zeppelin entirely and can be managed there.
For testing, I created a few notebooks (valid, invalid, misnamed and in subdirs), updated the spec files, recreated the RPMs, and ran this up on a pretty constrained local cluster. I was able to see them and run sections of them as appropriate.