如何从AWS EMR下载Zeppelin Notebook

时间:2016-03-03 00:43:51

标签: amazon-web-services emr apache-zeppelin

我正在使用Spark 在AWS EMR 4.3上运行预安装的 Zeppelin Sandbox。

我在Zeppelin上创建了一个Notebook(在EMR集群上),现在我想导出该笔记本,以便下次启动EMR集群时可以快速运行它。

事实证明 Zeppelin还不支持笔记本电脑的导出(?)。

这很好,因为很明显,如果你可以访问Zeppelin文件夹已安装'在,然后您可以保存包含笔记本的文件夹,然后可能将该文件夹放在另一台计算机上的Zeppelin安装中以访问笔记本。

(所有这些都来自http://fedulov.website/2015/10/16/export-apache-zeppelin-notebooks/

麻烦的是,我找不到“安装”文件夹的位置'对于Zeppelin来说是EMR。

ps - '安装文件夹'可能稍微不正确,根据上面的帖子,我应该查看/opt/zeppelin,这在我的EMR集群的主服务器中不存在。

3 个答案:

答案 0 :(得分:3)

编辑:现在,Zeppelin支持从网络界面本身以json格式导出笔记本电脑!页面中央顶部有一个小图标,可以导出笔记本。

Zeppelin笔记本可以在带有Zeppelin Sandbox的AWS EMR集群中的/var/lib/zeppelin/notebook下找到。笔记本包含在此目录的文件夹中。

这些文件夹具有随机名称,与Notebook的名称不对应。

ls /var/lib/zeppelin/notebook/  
2A94M5J1Y  2A94M5J1Z  2AZU1YEZE  2B3D826UD 

每个文件夹(代表一个笔记本)中都有一个note.json文件,其中包含Notebook的名称和所有其他详细信息。

要导出笔记本,请选择与您要查找的笔记本相对应的笔记本文件夹,将该文件夹复制到您希望笔记本可用的新Zeppelin安装中。

上述说明来自:http://fedulov.website/2015/10/16/export-apache-zeppelin-notebooks/

就在AWS设置中,Zeppelin笔记本将在/var/lib/zeppelin/notebook

中找到

答案 1 :(得分:0)

其他解决方案将在您的EMR群集中创建一个步骤来备份您的所有笔记本电脑,因为每个笔记本电脑有一个单调乏味。

<强> S3:// {s3_bucket} /notebook/notebook_backup.sh

#!/bin/bash
# - Upload Notebooks backups.
aws s3 cp /var/lib/zeppelin/notebook/ s3://{s3_bucket}/notebook/`date +"%Y/%m/%d"` --recursive

# - Update latest folder with latest Notebooks versions.
aws s3 rm s3://{s3_bucket}/notebook/latest --recursive
aws s3 cp /var/lib/zeppelin/notebook/ s3://{s3_bucket}/notebook/latest --recursive

然后在您的EMR中添加Step to run your own script

enter image description here

s3://elasticmapreduce/libs/script-runner/script-runner.jar 将允许您从S3运行脚本。

答案 2 :(得分:0)

Zeppelin版本(0.5.6)及更高版本(包含在Amazon EMR版本4.4.0及更高版本中)支持使用Configuration json文件设置笔记本存储。 https://aws.amazon.com/blogs/big-data/import-zeppelin-notes-from-github-or-json-in-zeppelin-0-5-6-on-amazon-emr/

您需要在名为/ user / notebook的S3存储桶中创建目录 (用户是以下配置的名称)

所以如果您的S3存储桶是

S3://my-zeppelin-bucket-name

你需要:

 S3://my-zeppelin-bucket-name/user/notebook

并且在以下配置中,您不包含S3://前缀

将此保存为.json文件,然后将其存储在S3存储桶中,当您启动群集时,会有一个Configuration部分,您可以将其指向此文件。然后,当群集启动时,将配置的各个部分注入到EMR上的不同hadoop工具的各种配置中。在这种情况下,zeppelin-env将在安装Zeppelin之前在启动时进行编辑。

一旦你运行了一次集群,你就可以克隆它,它会记住这个配置,或者使用cloudformation或者像ansible这样的脚本来编写脚本,这样你的集群总是会在S3上存储笔记本电脑。

[
  {
    "Classification": "zeppelin-env",
    "Properties": {

    },
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
        "ZEPPELIN_NOTEBOOK_STORAGE":"org.apache.zeppelin.notebook.repo.S3NotebookRepo",
          "ZEPPELIN_NOTEBOOK_S3_BUCKET":"my-zeppelin-bucket-name",
          "ZEPPELIN_NOTEBOOK_USER":"user"
        },
        "Configurations": [

        ]
      }
    ]
  }
]