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
相关产品推荐
相关产品推荐

