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

2021-12-07 17:36:43 浏览数 (1)

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节点的都进行修改)

代码语言:javascript复制
[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行后添加如下代码

代码语言:javascript复制
if isinstance(data,str):
        data=data.replace('sparksql', 'sql')
      LOG.exception('--------tpl data %s' % data)
      LOG.exception('--------tpl data type %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,在配置中添加如下内容

代码语言:javascript复制
[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

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认证。

0 人点赞