Spark & Zeppelin
zeppelin 為互動式分析查詢提供了視覺化介面。 在zeppelin上使用spark NoteBook,有spark和livy兩種方式。
軟體版本
zeppelin版本:從zeppelin-master編譯(已釋出0.6)
spark版本: 1.6.2
livy版本: livy 0.2.0
一. 編譯部署zeppelin
git clone zeppelin-master mvn clean package -Pspark-1.6 -Dhadoop.version=2.4.1 -Pyarn -Ppyspark -DskipTests -Pbuild-distr
編譯後的包在 zeppelin-distribution/target
目錄下
二. Spark Interpreter for Apache Zeppelin
1. 配置
設定spark Home
vim conf/zeppelin-env.shexport HADOOP_CONF_DIR=/usr/install/hadoopexport SPARK_HOME=/usr/install/spark
啟動zeppelin
bin/zeppelin-daemon.sh start
預設透過8080埠訪問zeppelin。可以在conf/zeppelin-env.sh
或conf/zeppelin-site.xml
中進行修改
2. 設定Spark Interpreter
主要就是master的設定。
在zeppelin interpreter中設定spark master
的引數,目前支援所有的spark master :
mesos
模式中使用mesos://zk://zk1:2181,zk2:2182,zk3:2181/mesos
或mesos://host:5050
standalone
模式中使用spark://master:7077
yarn
模式中使用yarn-client
在
local
模式中使用local[*]
預設引數會從 SPARK_HOME/conf/spark-default.conf
中讀取
3. 常見錯誤解決:
spark notebook執行報錯
sc.makeRDD(1 to 100) com.fasterxml.jackson.databind.JsonMappingException: Could not find creator property with name 'id' (in class org.apache.spark.rdd.RDDOperationScope)
jackson版本衝突導致,zepplin中的版本為2.5,spark使用的為2.4,更換zepplin/lib下jackson-databind的版本重啟即可。
ls zeppelin-0.6.0-bin-all/lib/ | grep jackson jackson-annotations-2.5.0.jar jackson-core-2.5.3.jar jackson-databind-2.5.3.jar
獲取jackson-databind-2.4.4
wget
4. 新增外部依賴
spark的外部依賴可以透過 zeppelin-env.sh新增。spark-default.conf
以及zeppelin-env.sh
中一些引數的對應關係。
spark-defaults.conf | SPARK_SUBMIT_OPTIONS | Applicable Interpreter |
---|---|---|
spark.jars | --jars | %spark |
spark.jars.packages | --packages | %spark |
spark.files | --files | %pyspark |
eg.
export SPARK_SUBMIT_OPTIONS="--jars /usr/install/libs/mysql-connector-java-5.1.34.jar,/usr/install/spark/lib/influxdbSink-byHost.jar"
5. spark Interpreter 目前存在的一些坑
不支援user proxy,意味著所有在notebook上執行的任務提交到叢集中的許可權都是啟動zeppelin 服務的使用者,存在安全問題。
三. Livy Interpreter for Apache Zeppelin
1. livy的使用
Impersonation機制
livy為多使用者使用同一server提供了代理服務(相當於spark-submit
的--user-proxy
),
需要開啟zeppelin的authentication機制來實現
livy的配置
一般只需要在Interpreters
中配置livy.url
和livy.spark.master
livy支援所有spark的配置引數,只需要在配置前加入livy
字首即可。
2. livy Interpreter 目前存在的一些坑
1. 404 bad request
每個session存在空閒過期時間(預設為1小時),session過期後,重新使用時會得到該提示。
這個問題在
中有更具體的描述。
這個時候只有新建notebook使用或是重啟livy interpreter解決。
2. %livy.spark
和%livy.sql
預設使用的是sqlContext,%livy.pyspark
預設使用的是HiveContext
因此直接使用%livy.sql
查詢hive表將會提示
org.apache.spark.sql.AnalysisException: Table not found:
可以透過修改原始碼LivyHelper
中initializeSpark
方法,將初始化的SQLContext改為HiveContext,重新編譯即可。
四. 一些使用介面
這裡寫圖片描述
作者:breeze_lsw
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2819001/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AI開源專案 - ZeppelinAI
- [ 安裝 ] Zeppelin安裝步驟!
- PyFlink 開發環境利器:Zeppelin Notebook開發環境
- 通過 Apache Zeppelin深入瞭解Delta LakeApache
- Spark之spark shellSpark
- Spark on Yarn 和Spark on MesosSparkYarn
- Spark系列 - (3) Spark SQLSparkSQL
- Spark學習進度-Spark環境搭建&Spark shellSpark
- 【Spark】Spark容錯機制Spark
- sparkSpark
- spark學習筆記--Spark SQLSpark筆記SQL
- spark學習筆記-- Spark StreamingSpark筆記
- Spark 系列(十四)—— Spark Streaming 基本操作Spark
- Spark 系列(十五)—— Spark Streaming 整合 FlumeSpark
- 【Spark篇】---Spark故障解決(troubleshooting)Spark
- Spark記錄(一):Spark全景概述Spark
- 原始碼以500美元的價格出售,Zeppelin勒索軟體可能重新面世原始碼
- Spark SQL | Spark,從入門到精通SparkSQL
- spark2.2.0 配置spark sql 操作hiveSparkSQLHive
- Hello Spark! | Spark,從入門到精通Spark
- Spark 系列(九)—— Spark SQL 之 Structured APISparkSQLStructAPI
- Spark文件閱讀之一:Spark OverviewSparkView
- Spark學習筆記(三)-Spark StreamingSpark筆記
- Spark —— Spark OOM Error問題排查定位SparkOOMError
- Zeppelin:用於區塊鏈應用的開源安全智慧合約架構區塊鏈架構
- spark with hiveSparkHive
- spark MapPartitionsRDDSparkAPP
- Spark 加入Spark
- Spark StageSpark
- Spark入門(四)--Spark的map、flatMap、mapToPairSparkAPTAI
- Spark in action on Kubernetes - Spark Operator的原理解析Spark
- Spark API 全集(1):Spark SQL Dataset & DataFrame APISparkAPISQL
- Spark SQL:4.對Spark SQL的理解SparkSQL
- Spark入門(五)--Spark的reduce和reduceByKeySpark
- Spark 系列(十一)—— Spark SQL 聚合函式 AggregationsSparkSQL函式
- Spark 以及 spark streaming 核心原理及實踐Spark
- 【Spark篇】---Spark中Shuffle檔案的定址Spark
- Spark Streaming + Spark SQL 實現配置化ETSparkSQL