搜索
当前位置:首页 > 时尚 > hive环境搭建

hive环境搭建

发表于 2026-10-17 02:19:13 来源:烟消火灭网

装Hive最烦的环境不是配环境,是搭建版本对不上。我见过太多人卡在启动metastore时报ClassNotFoundException,环境折腾一下午发现是搭建Hadoop和Hive差了半个大版本。所以先把结论摆这儿:Hive 3.1.3配Hadoop 3.1.4,环境JDK用8,搭建MySQL 5.7存元数据,环境这套组合我跑过不下十次,搭建稳。环境

先说前置条件。搭建JDK装好,环境java -version能出结果。搭建Hadoop得是环境能跑起来的伪分布式或完全分布式,hdfs dfs -ls /不报错才行。搭建MySQL装完记得建个库,环境字符集用utf8mb4,不然中文注释乱码。这三样缺一个,后面全是坑。

Hive安装包解压与目录规划

下载apache-hive-3.1.3-bin.tar.gz,扔到/opt/module下面。解压完改个名,叫hive。我习惯把Hadoop、Hive、JDK都放/opt/module,统一管理,找起来方便。别放/usr/local,权限问题能烦死你。

解压后第一件事——删掉自带的guava。Hive的lib里有个guava-19.0.jar,Hadoop 3.1.4用的是guava-27.0-jre.jar。不删的话,启动时直接给你甩个NoSuchMethodError。命令很简单:

rm -rf /opt/module/hive/lib/guava-19.0.jar cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive/lib/

这步不做,后面hive启动必挂。别问我是怎么知道的。

配置文件修改

进conf目录,cp hive-env.sh.template hive-env.sh,然后改两行:

export HADOOP_HOME=/opt/module/hadoop export HIVE_CONF_DIR=/opt/module/hive/conf

接着新建hive-site.xml。这个文件是核心,连MySQL的URL、驱动、用户名密码都写这儿。注意连接串后面加?useSSL=false,MySQL 5.7默认开SSL,不加会报连接警告,虽然不影响用,但日志里一堆红字看着难受。

<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property>

还有两个临时目录得配,hive.exec.scratchdir和hive.metastore.warehouse.dir,指向HDFS路径。配完记得在HDFS上建目录并给权限:

hdfs dfs -mkdir -p /user/hive/warehouse hdfs dfs -chmod g+w /user/hive/warehouse

MySQL驱动与元数据初始化

把mysql-connector-java-5.1.37.jar丢进hive/lib。版本别用8.x,Hive 3.1.3对8.x驱动兼容性一般,容易出时区问题。5.1.37够用。

然后初始化元数据库:

schematool -dbType mysql -initSchema

看到schemaTool completed就算成了。如果报错,八成是MySQL权限没给够。登进MySQL执行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;

启动验证

直接敲hive。第一次启动会慢,要连MySQL、起metastore服务。看到hive>提示符就说明成了。跑个show databases;,能出default库就稳了。

有个细节:如果Hadoop是HA模式,core-site.xml和hdfs-site.xml得软链到hive/conf下,不然Hive找不到NameNode。我吃过这个亏,日志里一直报Connection refused,查了半天才发现是配置文件没同步。

另外,Hive 3.1.3默认用Tez引擎,但Tez得单独装。不装也能跑,就是走MapReduce,慢得让你怀疑人生。想快的话,Tez配一下,或者临时切回MR:set hive.execution.engine=mr;。

整套流程走下来,顺利的话半小时。不顺利的话,多半卡在guava冲突或者MySQL连接上。遇到报错先看日志,/tmp/root/hive.log,里面写得比搜索引擎清楚。

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by hive环境搭建,烟消火灭网   sitemap

回顶部