You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS EMR上搭建Spark Thrift Server并配置JDBC/ODBC连接及账号?

我来帮你梳理一下AWS EMR上Spark Thrift Server的重启步骤和用户名密码配置方法,这些都是我在实际运维EMR集群时踩过坑后总结的实用操作:

一、AWS EMR上重启Spark Thrift Server的正确步骤

Spark Thrift Server在EMR集群里通常单独运行在主节点上,和Hive Server2是相互独立的服务,所以不需要重启Hive相关服务,只需要针对Spark Thrift Server本身操作即可,不同EMR版本的管理命令略有差异:

  • 对于EMR 5.x及部分早期6.x版本:使用Spark自带的spark-daemon.sh脚本管理

    • 停止服务:
      sudo /usr/lib/spark/sbin/spark-daemon.sh stop thrift-server 1
      
    • 启动服务:
      sudo /usr/lib/spark/sbin/spark-daemon.sh start thrift-server 1
      
      (这里的1是实例编号,主节点上一般只会运行一个Thrift Server实例,所以用1即可)
  • 对于EMR 6.x后期及7.x版本:已经改用systemd服务管理

    • 停止服务:
      sudo systemctl stop spark-thrift-server
      
    • 启动服务:
      sudo systemctl start spark-thrift-server
      
    • 查看服务状态(验证是否正常运行):
      sudo systemctl status spark-thrift-server
      
二、配置Spark Thrift Server的用户名和密码认证

默认情况下,Spark Thrift Server是无认证的(NOSASL模式),如果需要开启用户名密码验证,可以通过兼容Hive Server2的配置来实现,以下是两种常见的配置方式:

1. 测试环境:简单文件密码认证(不推荐生产环境)

这种方式适合快速测试,不需要依赖外部认证服务:

  • 第一步:创建密码文件,比如/etc/hive/conf/passwd,格式为用户名:密码,示例内容:
    admin:MySecurePass_123
    analyst:AnalystPass_456
    
  • 第二步:设置文件权限,确保只有hive用户能访问:
    sudo chmod 600 /etc/hive/conf/passwd
    sudo chown hive:hive /etc/hive/conf/passwd
    
  • 第三步:修改/etc/hive/conf/hive-site.xml,添加认证配置:
    <property>
      <name>hive.server2.authentication</name>
      <value>PASSWORD</value>
    </property>
    <property>
      <name>hive.server2.authentication.password.file</name>
      <value>/etc/hive/conf/passwd</value>
    </property>
    
  • 第四步:修改/usr/lib/spark/conf/spark-defaults.conf,让Spark Thrift Server加载该认证配置:
    spark.sql.hive.thriftServer.singleSession true
    spark.hadoop.hive.server2.authentication PASSWORD
    

2. 生产环境:LDAP认证(推荐)

如果是生产集群,建议用LDAP来管理用户和密码,配置步骤如下:

  • 修改/etc/hive/conf/hive-site.xml,添加LDAP相关配置(根据你的LDAP服务调整参数):
    <property>
      <name>hive.server2.authentication</name>
      <value>LDAP</value>
    </property>
    <property>
      <name>hive.server2.authentication.ldap.url</name>
      <value>ldap://你的LDAP服务器地址:389</value>
    </property>
    <property>
      <name>hive.server2.authentication.ldap.baseDN</name>
      <value>dc=yourdomain,dc=com</value>
    </property>
    <property>
      <name>hive.server2.authentication.ldap.bindDN</name>
      <value>cn=admin,dc=yourdomain,dc=com</value>
    </property>
    <property>
      <name>hive.server2.authentication.ldap.bindPassword</name>
      <value>LDAP管理员密码</value>
    </property>
    
  • 同样修改/usr/lib/spark/conf/spark-defaults.conf添加Spark侧的配置:
    spark.sql.hive.thriftServer.singleSession true
    spark.hadoop.hive.server2.authentication LDAP
    

最后一步:重启Spark Thrift Server

完成配置后,用前面的重启命令重启服务,之后用beeline连接时就需要输入用户名和密码了:

beeline> !connect jdbc:hive2://10.253.3.5:10015
Enter username for jdbc:hive2://10.253.3.5:10015: admin
Enter password for jdbc:hive2://10.253.3.5:10015: MySecurePass_123

内容的提问来源于stack exchange,提问作者Saurav Bhowmick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:14:17