本篇文章主要介紹如何使用解決CDP7.1.6的Hue中的Spark Notebook與Livy無法進行集成的問題。
文檔概述
1.Spark Notebook集成Livy
2.驗證
3.總結
測試環境
1.操作系統Redhat7.6
2.CDP7.1.6
3.使用root用戶操作
4.集群已啟用Kerberos
1.修改Hue的源碼(Hue Server節點的都進行修改)
[root@c1~]#cd/opt/cloudera/parcels/CDH/lib/hue/desktop/core/src/desktop/lib/rest/[root@c1rest]#vimresource.py因為kind 類型只支持spark/pyspark/sparkr/sql,所以在該文件的1045行後添加如下代碼
ifisinstance(data,str):data=data.replace('sparksql','sql')LOG.exception('--------tpldata%s'%data)LOG.exception('--------tpldatatype%s'%type(data))
2.修改Livy的配置
在Livy的配置頁面搜索livy_spnego_enabled,關閉Livy的HTTP Kerberos

3.啟用Livy的用戶模擬功能
在Livy的配置頁面搜索livy.impersonation.enabled

4.修改Hue配置
5.在Hue的配置中搜索hue_server_hue_safety_valve,在配置中添加如下內容
[desktop]app_blacklist=zookeeper,oozie,jobsub,pig,pig,sqoop,security[spark]livy_server_host=c1.liuhao.comlivy_server_port=8998livy_server_session_kind=yarnsql_server_host=c1.liuhao.com#sql_server_port需要的原因是sparksql需要使用該端口sql_server_port=10090#security_enabled=true[notebook]show_notebooks=trueenable_external_statements=trueenable_batch_execute=true[[interpreters]]#Definethenameandhowtoconnectandexecutethelanguage.[[[hive]]]#Thenameofthesnippet.name=Hive#Thebackendconnectiontousetocommunicatewiththeserver.interface=hiveserver2[[[impala]]]name=Impalainterface=hiveserver2[[[sparksql]]]name=SparkSqlinterface=livy[[[spark]]]name=Sparkinterface=livy[[[pyspark]]]name=PySparkinterface=livy[[[r]]]name=Rinterface=livy[[[jar]]]name=SparkSubmitJarinterface=livy-batch
6.修改Hue的配置
在Hue的配置中搜索hive-site.xml,添加如下配置設置訪問hive的方式為Kerberos
<property><name>hive.server2.authentication</name><value>KERBEROS</value></property>

7.重啟過時服務

進入Hue的Web UI頁面,執行一條Spark SQL語句


1.Hue本身是模擬用戶來執行的, 再通過安全認證的方式訪問Livy再去讓Livy模擬用戶,這樣就會導致一個問題, Livy只會認為你是Hue用戶,而又要讓Hue用戶去模擬其他的用戶,最終提示模擬不了的問題,所以要關閉Livy的HTTP Kerberos認證。