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

Ubuntu 20.04.6搭建Hive Server连接3节点Hadoop集群遇错求助

问题描述

已在Ubuntu 20.04.6 LTS机器上配置并运行3节点Hadoop集群,同区域另一节点运行MySQL服务器。现需搭建单节点Hive Server,使其与Hadoop集群通信并使用MySQL存储元数据,使用apache-hive-3.1.2-bin时遇到问题。

配置信息

hive-site.xml配置

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>hive.metastore.uri</name>
        <value>thrift://192.XXX.XX.XX:9083</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.XXX.XX.XX:3306/metastore?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>user</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>pass123</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>192.XXX.XX.XX</value>
    </property>
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value> 
    </property>
    <property>
        <name>hive.metastore.sasl.enabled</name>
        <value>false</value>
        <description>If true, the metastore Thrift interface will be secured with SASL. Clients must authenticate with Kerberos.</description>
    </property>
    <property>
        <name>hive.server2.enable.doAs</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.authentication</name>
        <value>NONE</value>
    </property>
</configuration>

hive-env.sh内容

export HADOOP_HOME=/home/user/hadoopnode
export HIVE_CONF_DIR=/home/user/apache-hive-3.1.2-bin/conf

Hive服务器的.bashrc文件内容

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

######################### HIVE #######################################
export HIVE_HOME=/home/user/apache-hive-3.1.2-bin
export HIVE_CONF_DIR=/home/user/apache-hive-3.1.2-bin/conf
export PATH=$PATH:$HIVE_HOME/bin

报错信息

运行$HIVE_HOME/bin/schematool时出现以下错误:

Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path
解决方案

报错核心原因是运行schematool时HADOOP_HOME环境变量未被正确加载,可通过以下方式解决:

  • 永久配置环境变量
    编辑Hive服务器的~/.bashrc文件,添加Hadoop相关配置:

    export HADOOP_HOME=/home/user/hadoopnode
    export PATH=$PATH:$HADOOP_HOME/bin
    

    保存后执行source ~/.bashrc使配置生效,再重新运行schematool。

  • 临时指定变量运行
    若不想修改.bashrc,可在运行schematool前临时设置HADOOP_HOME:

    export HADOOP_HOME=/home/user/hadoopnode && $HIVE_HOME/bin/schematool -dbType mysql -initSchema
    
  • 验证hive-env.sh加载
    确保hive-env.sh文件拥有可读权限,手动执行source /home/user/apache-hive-3.1.2-bin/conf/hive-env.sh后,再运行schematool验证。

额外注意:

  • 确认Hive服务器上已安装Hadoop客户端(无需启动Hadoop服务,仅需完整安装包),schematool依赖Hadoop工具。
  • 检查/home/user/hadoopnode目录是否存在,且包含bin、etc等Hadoop核心子目录。

内容的提问来源于stack exchange,提问作者Muhammad Affan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:04:49