意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

0867-7.1.6-Hue中Spark Notebook与Livy集成问

来源:恒创科技 编辑:恒创科技编辑部
2024-02-01 20:08:59

1.文档编写目的




0867-7.1.6-Hue中Spark Notebook与Livy集成问



本篇文章主要介绍如何使用解决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@c1 rest]# vim resource.py


因为kind 类型只支持spark/pyspark/sparkr/sql,所以在该文件的1045行后添加如下代码

if isinstance(data,str):
data=data.replace('sparksql', 'sql')
LOG.exception('--------tpl data %s' % data)
LOG.exception('--------tpl data type %s' % type(data))

0867-7.1.6-Hue中Spark Notebook与Livy集成问_sql


2.修改Livy的配置

在Livy的配置页面搜索livy_spnego_enabled,关闭Livy的HTTP Kerberos

0867-7.1.6-Hue中Spark Notebook与Livy集成问_sql_02


3.启用Livy的用户模拟功能

在Livy的配置页面搜索livy.impersonation.enabled

0867-7.1.6-Hue中Spark Notebook与Livy集成问_spark_03


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.com
livy_server_port=8998
livy_server_session_kind=yarn
sql_server_host=c1.liuhao.com
#sql_server_port 需要的原因是sparksql 需要使用该端口
sql_server_port=10090
#security_enabled=true

[notebook]
show_notebooks=true
enable_external_statements=true
enable_batch_execute=true
[[interpreters]]
# Define the name and how to connect and execute the language.

[[[hive]]]
# The name of the snippet.
name=Hive
# The backend connection to use to communicate with the server.
interface=hiveserver2

[[[impala]]]
name=Impala
interface=hiveserver2

[[[sparksql]]]
name=SparkSql
interface=livy

[[[spark]]]
name=Spark
interface=livy

[[[pyspark]]]
name=PySpark
interface=livy

[[[r]]]
name=R
interface=livy

[[[jar]]]
name=Spark Submit Jar
interface=livy-batch


0867-7.1.6-Hue中Spark Notebook与Livy集成问_spark_04


6.修改Hue的配置

在Hue的配置中搜索hive-site.xml,添加如下配置设置访问hive的方式为Kerberos

<property><name>hive.server2.authentication</name><value>KERBEROS</value></property>

0867-7.1.6-Hue中Spark Notebook与Livy集成问_hive_05


7.重启过时服务

0867-7.1.6-Hue中Spark Notebook与Livy集成问_hive_06



3.验证




进入Hue的Web UI页面,执行一条Spark SQL语句

0867-7.1.6-Hue中Spark Notebook与Livy集成问_hive_07

0867-7.1.6-Hue中Spark Notebook与Livy集成问_sql_08


4.总结




1.Hue本身是模拟用户来执行的, 再通过安全认证的方式访问Livy再去让Livy模拟用户,这样就会导致一个问题, Livy只会认为你是Hue用户,而又要让Hue用户去模拟其他的用户,最终提示模拟不了的问题,所以要关闭Livy的HTTP Kerberos认证。

上一篇: count(1)比count(*)快吗 下一篇: 手机怎么远程登录云服务器?