# 筆記本存儲
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/storage/storage.html#notebook-storage-in-local-git-repository](http://zeppelin.apache.org/docs/0.7.2/storage/storage.html#notebook-storage-in-local-git-repository)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030689](http://www.apache.wiki/pages/viewpage.action?pageId=10030689)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
## 概觀
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`](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html)憑據提供用于憑據,并檢查以下內容:
* 該`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](https://aws.amazon.com/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`](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/EncryptionMaterialsProvider.html)只要在類路徑中可用,并且可以從系統屬性或其他機制初始化本身,您可以使用自定義類。要使用它,請在文件**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.xmlAzureNotebookRepo文件中的類:?
```
```
<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)
```
```
您可以token在相應的幫助頁面上獲取有關生成和使用身份驗證的更多信息。
```
- 快速入門
- 什么是Apache Zeppelin?
- 安裝
- 配置
- 探索Apache Zeppelin UI
- 教程
- 動態表單
- 發表你的段落
- 自定義Zeppelin主頁
- 升級Zeppelin版本
- 從源碼編譯
- 使用Flink和Spark Clusters安裝Zeppelin教程
- 解釋器
- 概述
- 解釋器安裝
- 解釋器依賴管理
- 解釋器的模擬用戶
- 解釋員執行Hook(實驗)
- Alluxio 解釋器
- Beam 解釋器
- BigQuery 解釋器
- Cassandra CQL 解釋器
- Elasticsearch 解釋器
- Flink 解釋器
- Geode/Gemfire OQL 解釋器
- HBase Shell 解釋器
- HDFS文件系統 解釋器
- Hive 解釋器
- Ignite 解釋器
- JDBC通用 解釋器
- Kylin 解釋器
- Lens 解釋器
- Livy 解釋器
- Markdown 解釋器
- Pig 解釋器
- PostgreSQL, HAWQ 解釋器
- Python 2&3解釋器
- R 解釋器
- Scalding 解釋器
- Scio 解釋器
- Shell 解釋器
- Spark 解釋器
- 系統顯示
- 系統基本顯示
- 后端Angular API
- 前端Angular API
- 更多
- 筆記本存儲
- REST API
- 解釋器 API
- 筆記本 API
- 筆記本資源 API
- 配置 API
- 憑據 API
- Helium API
- Security ( 安全 )
- Shiro 授權
- 筆記本 授權
- 數據源 授權
- Helium 授權
- Advanced ( 高級 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虛擬機上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 貢獻 )
- Writing a New Interpreter ( 寫一個新的解釋器 )
- Writing a new Visualization (Experimental) ( 編寫新的可視化(實驗) )
- Writing a new Application (Experimental) ( 寫一個新的應用程序( 實驗 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 貢獻( 代碼 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 貢獻(website) )