原文链接 : http://zeppelin.apache.org/docs/0.7.2/storage/storage.html#notebook-storage-in-local-git-repository
译文链接 : http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030689
概观
Apache Zeppelin具有可插拔的笔记本存储机制,由zeppelin.notebook.storage
多个实现的配置选项控制。有几个笔记本电脑存储系统可供开箱即用:
- (默认)使用本地文件系统和版本它使用本地Git仓库 -
GitNotebookRepo
- 所有笔记都保存在本地文件系统中的笔记本文件夹中 -
VFSNotebookRepo
- 存储使用Amazon S3服务 -
S3NotebookRepo
- 使用Azure服务的存储 -
AzureNotebookRepo
可以通过在配置中提供逗号分隔的类名列表来同时使用多个存储系统。默认情况下,Zeppelin将仅自动保持前两个。
存储在本地Git存储库
为了通过标准的Git仓库启用所有本地笔记本电脑的版本控制 - 取消注释下一个属性zeppelin-site.xml
,以便使用GitNotebookRepo类:
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo</value>
- <description>notebook persistence layer implementation</description>
- </property>
存储在S3中
笔记本可以存储在S3中,并且可选地加密。该DefaultAWSCredentialsProviderChain
凭据提供用于凭据,并检查以下内容:
- 该
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
环境变量 - 该
aws.accessKeyId
和aws.secretKey
Java系统属性 - 凭证配置文件位于
~/.aws/credentials
AWS CLI使用的默认位置() - 通过Amazon EC2元数据服务提供的实例配置文件凭据
将在S3中创建以下文件夹结构:
- s3://bucket_name/username/notebook-id/
- 通过在zeppelin-env.sh文件中设置环境变量进行配置:
- export ZEPPELIN_NOTEBOOK_S3_BUCKET = bucket_name
- export ZEPPELIN_NOTEBOOK_S3_USER = username
- 或者使用文件zeppelin -site.xml取消注释并完成S3设置:
- <property>
- <name>zeppelin.notebook.s3.bucket</name>
- <value>bucket_name</value>
- <description>bucket name for notebook storage</description>
- </property>
- <property>
- <name>zeppelin.notebook.s3.user</name>
- <value>username</value>
- <description>user name for s3 folder structure</description>
- </property>
- 取消下一个属性的注释使用S3NotebookRepo类:
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.S3NotebookRepo</value>
- <description>notebook persistence layer implementation</description>
- </property>
- 注释下一个属性来禁用本地git笔记本存储(默认):
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo</value>
- <description>versioned notebook persistence layer implementation</description>
- </property>
S3中的数据加密
AWS KMS加密密钥
要使用AWS KMS加密密钥加密笔记本,请在文件zeppelin-env.sh中设置以下环境变量:
- export ZEPPELIN_NOTEBOOK_S3_KMS_KEY_ID = kms-key-id
- 或者在zeppelin -site.xml中使用以下设置:
- <property>
- <name>zeppelin.notebook.s3.kmsKeyID</name>
- <value>AWS-KMS-Key-UUID</value>
- <description>AWS KMS key ID used to encrypt notebook data in S3</description>
- </property>
- 要设置自定义KMS密钥区域,请在文件zeppelin-env.sh中设置以下环境变量:
- export ZEPPELIN_NOTEBOOK_S3_KMS_KEY_REGION = kms-key-region
- 或者在zeppelin -site.xml中使用以下设置:
- <property>
- <name>zeppelin.notebook.s3.kmsKeyRegion</name>
- <value>target-region</value>
- <description>AWS KMS key region in your AWS account</description>
- </property>
- 在第二列(例如)
target-region
中更详细地描述了格式。Region
us-east-1
自定义加密材料提供者类
EncryptionMaterialsProvider
只要在类路径中可用,并且可以从系统属性或其他机制初始化本身,您可以使用自定义类。要使用它,请在文件zeppelin-env.sh中设置以下环境变量:
- export ZEPPELIN_NOTEBOOK_S3_EMP = class-name
- 或者在zeppelin -site.xml中使用以下设置:
- <property>
- <name>zeppelin.notebook.s3.encryptionMaterialsProvider</name>
- <value>provider implementation class name</value>
- <description>Custom encryption materials provider used to encrypt notebook data in S3</description>
- </property>
存储在Azure中
使用AzureNotebookRepo
您可以连接您的Zeppelin与您的Azure帐户笔记本电脑存储。
首先,输入你的AccountName
,AccountKey
以及Share Name
在文件飞艇-site.xml中注释掉并完成下一个特性:
- <property>
- <name>zeppelin.notebook.azure.connectionString</name>
- <value>DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey></value>
- <description>Azure account credentials</description>
- </property>
- <property>
- <name>zeppelin.notebook.azure.share</name>
- <value>zeppelin</value>
- <description>share name for notebook storage</description>
- </property>
- 其次,您可以通过注释下一个属性来初始化zeppelin -site.xml
AzureNotebookRepo
文件中的类:
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo</value>
- <description>versioned notebook persistence layer implementation</description>
- </property>
- 并评论:
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.AzureNotebookRepo</value>
- <description>notebook persistence layer implementation</description>
- </property>
- 如果要同时使用本地git存储与Azure存储,请使用以下属性:
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo, apache.zeppelin.notebook.repo.AzureNotebookRepo</value>
- <description>notebook persistence layer implementation</description>
- </property>
- 或者,您可以通过注释掉下一个属性来指定文件zeppelin -site.xml中的Azure文件夹结构名称:
- <property>
- <name>zeppelin.notebook.azure.user</name>
- <value>user</value>
- <description>optional user name for Azure folder structure</description>
- </property>
存储在ZeppelinHub
ZeppelinHub存储层可以与您的ZeppelinHub帐户开箱即用的Zeppelin实例连接。首先,您需要在zeppelin -site.xml中注释掉以下属性:
- <!-- For connecting your Zeppelin with ZeppelinHub -->
- <!--
- <property>
- <name>zeppelin.notebook.storage</name>
- <value>org.apache.zeppelin.notebook.repo.GitNotebookRepo, org.apache.zeppelin.notebook.repo.zeppelinhub.ZeppelinHubRepo</value>
- <description>two notebook persistence layers (local + ZeppelinHub)</description>
- </property>
- -->
- 或者在文件zeppelin-env.sh中设置环境变量:
- export ZEPPELIN_NOTEBOOK_STORAGE="org.apache.zeppelin.notebook.repo.GitNotebookRepo, org.apache.zeppelin.notebook.repo.zeppelinhub.ZeppelinHubRepo"
其次,您需要在文件zeppelin-env.sh中设置环境变量:
- export ZEPPELINHUB_API_TOKEN = ZeppelinHub token
- export ZEPPELINHUB_API_ADDRESS = address of ZeppelinHub service (e.g. https://www.zeppelinhub.com)