# Livy 解釋器
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/interpreter/livy.html](http://zeppelin.apache.org/docs/0.7.2/interpreter/livy.html)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030858](http://www.apache.wiki/pages/viewpage.action?pageId=10030858)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
## 概述
[Livy](http://livy.io/)是一個開源REST接口,用于與任何地方的Spark進行交互。它支持在本地運行或在YARN中運行的Spark上下文中執行代碼或程序片段。
* 交互式Scala,Python和R shell
* 在Scala,Java,Python中批量提交
* 多用戶可以共享相同的服務器(模擬支持)
* 可以使用REST從任何地方提交作業
* 不需要對程序進行任何代碼更改
### 要求
Livy解釋器的附加要求是:
* Spark 1.3或以上。
* Livy服務器。
## 組態?
我們為火花添加了一些常見的配置,您可以設置所需的任何配置。您可以在[這里](http://spark.apache.org/docs/latest/configuration.html#available-properties)找到所有的Spark配置。而不是用`spark.`它開始的財產應該被替換`livy.spark.`。例如:`spark.driver.memory`到`livy.spark.driver.memory`
| 屬性 | 默認 | 描述 |
| --- | --- | --- |
| zeppelin.livy.url | [http://localhost:8998](http://localhost:8998) | livy服務器正在運行的URL |
| zeppelin.livy.spark.maxResult | 1000 | 要顯示的Spark SQL結果的最大數量。 |
| zeppelin.livy.session.create_timeout | 120 | 會話創建超時秒數 |
| zeppelin.livy.displayAppInfo | false | 是否顯示應用信息 |
| zeppelin.livy.pull_status.interval.millis | 1000 | 檢查段執行狀態的間隔 |
| livy.spark.driver.cores | ? | 驅動核心?ex)1,2。 |
| livy.spark.driver.memory | ? | 驅動內存?ex)512m,32g。 |
| livy.spark.executor.instances | ? | 執行器實例。ex)1,4。 |
| livy.spark.executor.cores | ? | 每個執行者的數字核心。ex)1,4。 |
| livy.spark.executor.memory | ? | 每個worker實例的執行程序內存。ex)512m,32g。 |
| livy.spark.dynamicAllocation.enabled | ? | 使用動態資源分配。ex)是的,假的。 |
| livy.spark.dynamicAllocation.cachedExecutorIdleTimeout | ? | 刪除已緩存數據塊的執行器。 |
| livy.spark.dynamicAllocation.minExecutors | ? | 執行人數下限。 |
| livy.spark.dynamicAllocation.initialExecutors | ? | 運行的初始執行者數。 |
| livy.spark.dynamicAllocation.maxExecutors | ? | 上限為執行人數。 |
| livy.spark.jars.packages | ? | 向livy解釋器添加額外的庫 |
**我們刪除zeppelin-0.7中的livy.spark.master。因為我們建議用戶在zeppelin-0.7中使用livy 0.3。而livy 0.3不允許指定livy.spark.master,它強制執行紗線集群模式。**
## 添加外部庫
您可以通過set?`livy.spark.jars.packages`屬性將動態庫加載到livy解釋器,以逗號分隔的jars的maven坐標列表來包含在驅動程序和執行器類路徑上。坐標的格式應為groupId:artifactId:version。
案例
| 屬性 | 案例 | 描述 |
| --- | --- | --- |
| livy.spark.jars.packages | io.spray:spray-json_2.10:1.3.1 | 向livy解釋器添加額外的庫 |
## 如何使用
基本上可以使用
**spark**
```
%livy.spark
sc.version ?
```
**pyspark**
```
%livy.pyspark
print "1" ?
```
**sparkR**
```
%livy.sparkr
hello <- function( name ) {
sprintf( "Hello, %s", name );
}
hello("livy")?
```
## 模擬
當Zeppelin服務器運行時啟用身份驗證,則此解釋器利用Livy的用戶模擬功能,即為創建和運行會話(“proxyUser”:“$ {loggedInUser}”)發送額外的參數。這在多用戶共享一個Notebook服務器時特別有用。
## 應用Zeppelin動態表單
您可以利用[Zeppelin 動態表單](http://www.apache.wiki/pages/viewpage.action?pageId=10030585)。您可以同時使用`text input`和`select form`參數化功能。
```
%livy.pyspark
print "${group_by=product_id,product_id|product_name|customer_id|store_id}"?
```
## 常問問題
Livy調試:如果您在錯誤控制臺中看到這些錯誤
> 連接到?livyhost:8998 [livyhost/127.0.0.1, livyhost/0:0:0:0:0:0:0:1]?失敗:連接拒絕
看起來像livy服務器還沒有或配置是錯誤的
> 異常:會話未找到,Livy服務器將重新啟動或丟失會話。
會話將超時,您可能需要重新啟動解釋器。
> 會話配置中列出黑名單的配置值:spark.master
?`conf/spark-blacklist.conf`在livy服務器中編輯文件并注釋掉`#spark.master`。
如果您選擇在?[https://github.com/cloudera/hue](https://github.com/cloudera/hue)?中的`apps/spark/java`livy目錄中工作,請在livy服務器中復制`spark-user-configurable-options.template`到`spark-user-configurable-options.conf`文件并注釋掉`#spark.master`。
- 快速入門
- 什么是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) )