# 配置
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/install/configuration.html](http://zeppelin.apache.org/docs/0.7.2/install/configuration.html)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030540](http://www.apache.wiki/pages/viewpage.action?pageId=10030540)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
## Zeppelin Properties
有兩個位置可以配置Apache Zeppelin。
* **環境變量**可以被定義`conf/zeppelin-env.sh`(`conf\zeppelin-env.cmd`適用于Windows)。
* **Java屬性**可以定義在`conf/zeppelin-site.xml`。
如果兩者都被定義,則**環境變量**將被優先考慮。
| zeppelin-env.sh | zeppelin-site.xml | 默認值 | 描述 |
| --- | --- | --- | --- |
| ZEPPELIN_PORT | zeppelin.server.port | 8080 | Zeppelin服務器端口注意:請確保您沒有使用與[Zeppelin Web應用程序開發端口](https://zeppelin.apache.org/contribution/webapplication.html#dev-mode)相同的[端口](https://zeppelin.apache.org/contribution/webapplication.html#dev-mode)(默認值:9000)。 |
| ZEPPELIN_SSL_PORT | zeppelin.server.ssl.port | 8443 | Zeppelin Server ssl端口(當ssl環境/屬性設置為true時使用) |
| ZEPPELIN_MEM | N/A | -Xmx1024m -XX:MaxPermSize=512m | JVM mem 選項 |
| ZEPPELIN_INTP_MEM | N/A | ZEPPELIN_MEM | 用于解釋程序的JVM mem選項 |
| ZEPPELIN_JAVA_OPTS | N/A | ? | JVM 選項 |
| ZEPPELIN_ALLOWED_ORIGINS | zeppelin.server.allowed.origins | * | 啟用一種方式來指定REST和Websockets的允許起源的“,”分隔列表。例如: [http://localhost:8080](http://localhost:8080) |
| N/A | zeppelin.anonymous.allowed | true | 默認情況下允許匿名(anonymous)用戶。 |
| ZEPPELIN_SERVER_CONTEXT_PATH | zeppelin.server.context.path | / | Web應用程序的上下文路徑 |
| ZEPPELIN_SSL | zeppelin.ssl | false | ? |
| ZEPPELIN_SSL_CLIENT_AUTH | zeppelin.ssl.client.auth | false | ? |
| ZEPPELIN_SSL_KEYSTORE_PATH | zeppelin.ssl.keystore.path | keystore | ? |
| ZEPPELIN_SSL_KEYSTORE_TYPE | zeppelin.ssl.keystore.type | JKS | ? |
| ZEPPELIN_SSL_KEYSTORE_PASSWORD | zeppelin.ssl.keystore.password | ? | ? |
| ZEPPELIN_SSL_KEY_MANAGER_PASSWORD | zeppelin.ssl.key.manager.password | ? | ? |
| ZEPPELIN_SSL_TRUSTSTORE_PATH | zeppelin.ssl.truststore.path | ? | ? |
| ZEPPELIN_SSL_TRUSTSTORE_TYPE | zeppelin.ssl.truststore.type | ? | ? |
| ZEPPELIN_SSL_TRUSTSTORE_PASSWORD | zeppelin.ssl.truststore.password | ? | ? |
| ZEPPELIN_NOTEBOOK_HOMESCREEN | zeppelin.notebook.homescreen | ? | 顯示Apache Zeppelin主屏幕上的注釋ID,例如: 2A94M5J1Z |
| ZEPPELIN_NOTEBOOK_HOMESCREEN_HIDE | zeppelin.notebook.homescreen.hide | false | 隱藏在`ZEPPELIN_NOTEBOOK_HOMESCREEN`Apache Zeppelin主屏幕上設置的音符ID?。有關更多信息,請參閱[自定義您的Zeppelin主頁](http://zeppelin.apache.org/docs/0.7.1/manual/notebookashomepage.html)。 |
| ZEPPELIN_WAR_TEMPDIR | zeppelin.war.tempdir | webapps | jetty臨時目錄的位置 |
| ZEPPELIN_NOTEBOOK_DIR | zeppelin.notebook.dir | notebook | 保存筆記本電腦目錄的根目錄 |
| ZEPPELIN_NOTEBOOK_S3_BUCKET | zeppelin.notebook.s3.bucket | zeppelin | 將存儲筆記本文件的S3 Bucket |
| ZEPPELIN_NOTEBOOK_S3_USER | zeppelin.notebook.s3.user | user | S3桶的用戶名,例如: `bucket/user/notebook/2A94M5J1Z/note.json` |
| ZEPPELIN_NOTEBOOK_S3_ENDPOINT | zeppelin.notebook.s3.endpoint | s3.amazonaws.com | 桶的端點 |
| ZEPPELIN_NOTEBOOK_S3_KMS_KEY_ID | zeppelin.notebook.s3.kmsKeyID | ? | 用于S3中加密數據的AWS KMS密鑰ID(可選) |
| ZEPPELIN_NOTEBOOK_S3_EMP | zeppelin.notebook.s3.encryptionMaterialsProvider | ? | 用于S3中加密數據的自定義S3加密資料提供者實現的類名稱(可選) |
| ZEPPELIN_NOTEBOOK_AZURE_CONNECTION_STRING | zeppelin.notebook.azure.connectionString | ? | Azure存儲帳戶連接字符串例如:`DefaultEndpointsProtocol=https;
AccountName=<accountName>;
AccountKey=<accountKey>` |
| ZEPPELIN_NOTEBOOK_AZURE_SHARE | zeppelin.notebook.azure.share | zeppelin | Azure共享筆記本文件將被保存 |
| ZEPPELIN_NOTEBOOK_AZURE_USER | zeppelin.notebook.azure.user | user | Optional user name of an Azure file sharee.g.?`share/user/notebook/2A94M5J1Z/note.json` |
| ZEPPELIN_NOTEBOOK_STORAGE | zeppelin.notebook.storage | org.apache.zeppelin.notebook.repo.GitNotebookRepo | 逗號分隔的筆記本存儲位置列表 |
| ZEPPELIN_NOTEBOOK_ONE_WAY_SYNC | zeppelin.notebook.one.way.sync | false | 如果有多個筆記本電腦存儲位置,我們應該把第一個視為真理的唯一來源嗎? |
| ZEPPELIN_NOTEBOOK_PUBLIC | zeppelin.notebook.public | true | `owners`創建/導入默認情況下,將筆記本設為公開(僅限設置)。如果設置為`false`將添加`user`到`readers`和`writers`為好,使其成為私人和無形的給其他用戶,除非授予權限。 |
| ZEPPELIN_INTERPRETERS | zeppelin.interpreters | org.apache.zeppelin.spark.SparkInterpreter,org.apache.zeppelin.spark.PySparkInterpreter,org.apache.zeppelin.spark.SparkSqlInterpreter,org.apache.zeppelin.spark.DepInterpreter,org.apache.zeppelin.markdown.Markdown,org.apache.zeppelin.shell.ShellInterpreter,... | 逗號分隔的解釋器配置[Class]?
注意:此屬性自Zeppelin-0.6.0起已棄用,Zeppelin-0.7.0將不受支持。 |
| ZEPPELIN_INTERPRETER_DIR | zeppelin.interpreter.dir | interpreter | Interpreter 目錄 |
| ZEPPELIN_INTERPRETER_DEP_MVNREPO | zeppelin.interpreter.dep.mvnRepo | http://repo1.maven.org/maven2/ | 解釋器附加依賴加載的遠程主體存儲庫 |
| ZEPPELIN_DEP_LOCALREPO | zeppelin.dep.localrepo | local-repo | 依賴加載器的本地存儲庫。
ex)npm的可視化模塊。 |
| ZEPPELIN_HELIUM_NPM_REGISTRY | zeppelin.helium.npm.registry | http://registry.npmjs.org/ | Helium依賴加載器的遠程Npm注冊表 |
| ZEPPELIN_WEBSOCKET_MAX_TEXT_MESSAGE_SIZE | zeppelin.websocket.max.text.message.size | 1024000 | 可以由websocket接收的最大文本消息的大小(字符)。 |
## SSL配置
啟用SSL需要進行一些配置更改。首先,您需要創建證書,然后更新必要的配置,以啟用服務器端SSL和/或客戶端證書身份驗證。
### 創建和配置證書
信息如何生成證書和密鑰庫可以在[這里](https://wiki.eclipse.org/Jetty/Howto/Configure_SSL)找到。
這個[StackOverflow帖子](http://stackoverflow.com/questions/4008837/configure-ssl-on-jetty)的頂部答案中可以找到一個精簡的例子。
密鑰庫在服務器端保存私鑰和證書。trustore擁有可信賴的客戶端證書。請確保在以下密碼字段中正確配置了這兩個存儲區的路徑和密碼。他們可以使用Jetty密碼工具進行混淆。之后,Maven引用了所有依賴關系構建Zeppelin,其中一個Jetty jar包含了密碼工具。使用適當的版本,用戶和密碼從Zeppelin home構建目錄調用此命令。
```
java -cp ./zeppelin-server/target/lib/jetty-all-server-<version>.jar org.eclipse.jetty.util.security.Password <user> <password>
```
如果您使用自簽名,由不受信任的CA簽名的證書,或者啟用客戶端身份驗證,則客戶端必須具有瀏覽器才能為正常的HTTPS端口和WebSocket端口創建異常。這可以通過嘗試在瀏覽器中建立到兩個端口的HTTPS連接(例如,如果端口是443和8443,然后訪問[https://127.0.0.1:443和https://127.0.0.1:8443)。](https://127.0.0.1:443和https:)如果服務器證書由受信任的CA簽名并且客戶端驗證被禁用,則可以跳過此步驟。
### 配置服務器端SSL
需要更新以下屬性`zeppelin-site.xml`才能啟用服務器端SSL。
```
<property>
<name>zeppelin.server.ssl.port</name>
<value>8443</value>
<description>Server ssl port. (used when ssl property is set to true)</description>
</property>
<property>
<name>zeppelin.ssl</name>
<value>true</value>
<description>Should SSL be used by the servers?</description>
</property>
<property>
<name>zeppelin.ssl.keystore.path</name>
<value>keystore</value>
<description>Path to keystore relative to Zeppelin configuration directory</description>
</property>
<property>
<name>zeppelin.ssl.keystore.type</name>
<value>JKS</value>
<description>The format of the given keystore (e.g. JKS or PKCS12)</description>
</property>
<property>
<name>zeppelin.ssl.keystore.password</name>
<value>change me</value>
<description>Keystore password. Can be obfuscated by the Jetty Password tool</description>
</property>
<property>
<name>zeppelin.ssl.key.manager.password</name>
<value>change me</value>
<description>Key Manager password. Defaults to keystore password. Can be obfuscated.</description>
</property>
```
### 啟用客戶端證書認證
`zeppelin-site.xml`為了啟用客戶端證書認證,需要更新以下屬性。
```
<property>
<name>zeppelin.server.ssl.port</name>
<value>8443</value>
<description>Server ssl port. (used when ssl property is set to true)</description>
</property>
<property>
<name>zeppelin.ssl.client.auth</name>
<value>true</value>
<description>Should client authentication be used for SSL connections?</description>
</property>
<property>
<name>zeppelin.ssl.truststore.path</name>
<value>truststore</value>
<description>Path to truststore relative to Zeppelin configuration directory. Defaults to the keystore path</description>
</property>
<property>
<name>zeppelin.ssl.truststore.type</name>
<value>JKS</value>
<description>The format of the given truststore (e.g. JKS or PKCS12). Defaults to the same type as the keystore type</description>
</property>
<property>
<name>zeppelin.ssl.truststore.password</name>
<value>change me</value>
<description>Truststore password. Can be obfuscated by the Jetty Password tool. Defaults to the keystore password</description>
</property>
```
### 使用Jetty密碼工具模糊密碼
安全最佳做法建議不要使用純文本密碼,Jetty提供了一個密碼工具來幫助模糊用于訪問KeyStore和TrustStore的密碼。
密碼工具文檔可以在[這里](http://www.eclipse.org/jetty/documentation/current/configuring-security-secure-passwords.html)找到。
使用該工具后:
```
java -cp $ZEPPELIN_HOME/zeppelin-server/target/lib/jetty-util-9.2.15.v20160210.jar \
org.eclipse.jetty.util.security.Password \
password
2016-12-15 10:46:47.931:INFO::main: Logging initialized @101ms
password
OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v
MD5:5f4dcc3b5aa765d61d8327deb882cf99?
```
使用模糊密碼更新您的配置:
```
<property>
<name>zeppelin.ssl.keystore.password</name>
<value>OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v</value>
<description>Keystore password. Can be obfuscated by the Jetty Password tool</description>
</property>?
```
**注意:**更新這些配置后,需要重新啟動Zeppelin服務器。
- 快速入門
- 什么是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) )