學習 Livy(一):初識 Livy
除了 Apache Spark 本身提供的 spark-submit 、 spark-shell 和 ThriftServer 之外, ofollow,noindex" target="_blank">Apache Livy 提供了另一種與 Spark 叢集互動的方式,通過 REST 介面。
此外,Apache Livy 支援同時維護多個會話。
可以通過 REST 介面、Java/Scala 庫和 Apache Zeppelin 訪問 Apache Livy。
部署
下載
進入 下載頁面 下載最新版本的 Apache Livy 分發包,當前最新版本為 0.5.0。下載成功,執行 unzip
解壓縮。
配置
進入 conf 目錄,執行 cp livy-env.sh.template livy-env.sh
,編輯 livy-env.sh 檔案配置環境變數:
export HADOOP_CONF_DIR=/etc/hadoop/conf export SPARK_HOME=/var/lib/spark_2.1.3
其它可選的環境變數有:
- SPARK_CONF_DIR Spark 環境變數目錄,預設為
${SPARK_HOME}/conf
; - LIVY_PID_DIR Livy pid 檔案儲存目錄,預設為
/tmp
;
執行 cp livy.conf.template livy.conf
,編輯 livy.conf 檔案配置 Livy:
livy.spark.master = yarn livy.spark.deploy-mode = cluster livy.repl.enable-hive-context = true
其它可選的配置有:
- livy.server.host 主機地址,預設為 0.0.0.0;
- livy.server.port 埠號,預設為 8998;
- livy.server.session.timeout-check 是否檢測會話超時,預設為 true;
- livy.server.session.timeout 會話超時時間,預設為 1h;
- livy.server.session.state-retain.sec 已完成會話保留時間,預設為 600s;
- livy.rsc.jars RSC JAR 包位置,快取在 HDFS 上,可以加速會話的啟動速度;
- livy.repl.jars REPL JAR 包位置,快取在 HDFS 上,可以加速會話的啟動速度;
- livy.server.yarn.poll-interval YARN 狀態重新整理頻率,預設為 5s;
- livy.ui.enabled 是否啟動 UI 介面,預設為 true;
服務啟停
啟動服務:
bin/livy-server start
停止服務:
bin/livy-server stop
Trouble Shooting
啟動會話報錯 livy java.lang.NoSuchMethodException: org.apache.spark.ui.SparkUI.appUIAddress()
Apache Livy 0.5.0 + Apache Spark 2.2.0
產生這個問題的原因是 Apache Spark 版本過高,該方法已經作廢,降級到 Apache Spark 2.1.3 及之前的版本即可。