close
1.文檔編寫目的

本篇文章主要介紹如何使用解決CDP7.1.6的Hue中的Spark Notebook與Livy無法進行集成的問題。

文檔概述

1.Spark Notebook集成Livy

2.驗證

3.總結

測試環境

1.操作系統Redhat7.6

2.CDP7.1.6

3.使用root用戶操作

4.集群已啟用Kerberos

2.修改配置

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.重啟過時服務

3.驗證

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

4.總結

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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()