Spark-beeline连接的目标可以是spark thrift server、也可以是kyuubi server。
我们以spark thrift server为例,提供链接流程如下:
-
首先配置spark thrift相关配置。
-
Spark-env.sh 中配置需要配置JAVA_HOME、HADOOP_HOME、HADOOP_CLASSPATH、HADOOP_CONF_DIR等环境变量。
-
SPARK_HOME/conf 路径下的hive-site.xml文件中,需要配置如下:
hive.server2.transport.mode - Set this to value: http hive.server2.thrift.http.port - HTTP port number to listen on; default is 10001
如果hive-site.xml是软连接,且spark和hive混布,那么需要直接cp该文件到SPARK_HOME/conf下面。
-
Spark-defaults.conf中如果hadoop集群开启了Kerberos认证,那么需要配置spark.sql。
-
-
启动spark thrift server。
SPARK_HOME/sbin/start-thriftserver.sh
-
如果当前集群已启用Kerberos认证,执行以下命令认证当前用户。如果当前集群未启用Kerberos认证,则无需执行此命令。
- 首先klist -kt <keytab文件路径>,获取keytab文件的principal,例如 klist -kt user.keytab 获得 user/hostname@realm。
- 然后kinit -kt <keytab文件路径> <获取到的principal>,例如 kinit -kt user.keytab user/hostname@realm。
- Kinit认证完成登录后,可以klist -l查看。
-
Beeline链接spark-thrift-server。
SPARK_HOME/bin -u ‘jdbc:hive2://<host>:<port>/<database>;principal=user/hostname@realm?spark.yarn.queue=root.default’ -n user
-
执行如下命令查询所有表,返回结果中存在表test,即表示访问OBS成功。
show databases