Livy配置Hive和kerberos

Livy配置说明

本文介绍的主要内容包括Livy如何开启Hive和Kerberos。作为补充文档,本文的重点在于说明Livy的关键配置项及记录一些常见问题,基本配置流程介绍请参考官方文档的介绍,在此不作赘述。

环境依赖

  • Spark
  • 本地需安装Spark2.*客户端
  • Hive
  • 若要连接到Hive数据库,需要集群需安装Hive数据库
  • Kerberos
  • 若要启用Kerberos认证,需要本地安装配置Kerberos客户端

基本配置说明

livy环境配置livy-env.conf
export LIVY_PID_DIR=/opt/livy-0.3.0-spark-2.0
export LIVY_LOG_DIR=/opt/livy-0.3.0-spark-2.0/logs
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export SPARK_HOME=/opt/cloudera/parcels/SPARK2/lib/spark2
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
说明:
SPARK_HOME为Spark的安装目录,Livy默认会读取$SPARK_HOME/conf目录下的配置文件,因此需确保$SPARK_HOME/conf目录下配置存在。
以上配置的路径以实际环境为准。
启用Spark集群模式,配置livy.conf
livy.spark.master = yarn
livy.spark.deployMode = cluster
说明:
以上配置,Spark将提交任务给yarn,并以cluster模式部署应用。

配置Hive

增加Hive配置到Livy和Spark配置目录
ln -s /etc/hive/conf.cloudera.hive/hive-site.xml $LIVY_HOME/conf
ln -s /etc/hive/conf.cloudera.hive/hive-site.xml $SPARK_HOME/conf
说明:
启用Hive时,需要保证$LIVY_HOME/conf和$SPARK_HOME/conf有hive-site.xml文件。hive-site.xml文件位置取决于实际环境。$LIVY_HOME和$SPARK_HOME的值以实际环境为准。
编辑livy.conf配置文件,开启HiveContext
livy.repl.enableHiveContext = true
说明:
Livy开启HiveContext。在Livy0.5版本之后,以配置项livy.repl.enable-hive-context = true替代。
开启Kerberos认证
Kerberos需先添加livy/cdh01.weijing.co和HTTP/cdh01.weijing.co(其中cdh01.weijing.co为Livy所在机器域名)账户,执行如下命令导出livy.keytab文件。
ktutil
addent -password -p livy/cdh01.weijing.co@WEIJING.C -k 1 -e rc4-hmac
addent -password -p livy/cdh01.weijing.co@WEIJING.COM -k 1 -e aes256-cts
wkt livy.keytab
quit
kinit -kt livy/cdh01.weijing.co@WEIJING.CO livy/cdh01.weijing.co

ktutil
addent -password -p HTTP/cdh01.weijing.co@WEIJING.CO -k 1 -e rc4-hmac
addent -password -p HTTP/cdh01.weijing.co@WEIJING.CO -k 1 -e aes256-cts
wkt livy.keytab
quit
kinit -kt HTTP/cdh01.weijing.co@WEIJING.CO HTTP/cdh01.weijing.com
配置livy.conf文件
livy.server.launch.kerberos.principal = livy/cdh01.test.com@TEST.COM
livy.server.launch.kerberos.keytab = /etc/security/keytabs/livy.keytab
livy.server.auth.type = kerberos
livy.server.auth.kerberos.principal = HTTP/cdh01.test.com@TEST.COM
livy.server.auth.kerberos.keytab = /etc/security/keytabs/livy.keytab
livy.impersonation.enabled = true
说明:
cdh01.weijing.co为域名,需根据实际Livy所在环境做相应的修改。
当连接到启用Kerberos的Hadoop集群时,需要配置
  • livy.server.launch.kerberos.principal
  • livy.server.launch.kerberos.keytab
当要求连接Livy的客户端需要提供Kerberos身份时,需要配置
  • livy.server.auth.type
  • livy.server.auth.kerberos.principal
  • livy.server.auth.kerberos.keytab。
当需要以Livy任务提交者身份创建Session时,需要配置
  • livy.server.auth.type = kerberos
在启用kerberos情况下,若livy.spark.master = yarn,则必须配置
  • livy.spark.deployMode = cluster

发表评论