Windows10下Hadoop2.x环境配置Hive2.1遇启动错误求助
搞定Hive 2.1在Windows 10下启动的几个坑
刚看了你的报错信息,这是Windows环境下部署Hive 2.x常见的三类问题,咱们逐个解决:
1. 补全Log4j2配置文件
第一个报错ERROR StatusLogger No log4j2 configuration file found是因为Hive 2.x默认用Log4j2做日志,但你的Hive配置目录里缺了对应的配置文件。操作很简单:
- 跳转到
%HIVE_HOME%\conf文件夹 - 找到自带的
log4j2.properties.template模板文件 - 复制一份,重命名为
log4j2.properties就行,默认配置完全够用,不用改内容
2. 解决SLF4J多绑定冲突
SLF4J提示多个StaticLoggerBinder.class存在,这是Hadoop和Hive的依赖包撞车了——两边都带了SLF4J的实现类。解决方法:
- 找到Hadoop目录下的冲突jar包:
C:/Users/namaagarwal/Desktop/hadoop-2.6.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar - 别直接删,先把它移到备份文件夹或者重命名成
slf4j-log4j12-1.7.5.jar.bak - 这样SLF4J就会自动用Hive自带的Log4j2绑定,冲突就消了
3. 修复临时目录创建失败问题
Couldn't create directory ${system:java.io.tmpdir}\${hive.session.id}_resources这个错是Windows下变量解析或者权限的问题。咱们手动指定临时目录:
- 打开
%HIVE_HOME%\conf\hive-site.xml,添加或修改这两个配置项:<property> <name>hive.exec.local.scratchdir</name> <value>C:/tmp/hive/local</value> <description>本地Hive任务的临时工作目录</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>C:/tmp/hive/resources</value> <description>下载资源的临时存储目录</description> </property> - 手动创建
C:/tmp/hive/local和C:/tmp/hive/resources这两个文件夹,确保你的Windows用户有读写权限 - 顺便检查下系统默认的临时目录
C:\Users\你的用户名\AppData\Local\Temp是否存在且有权限,这个是java.io.tmpdir的默认值
完成这三步后,重新打开命令行执行hive命令,应该就能正常连接到Hive了。
内容的提问来源于stack exchange,提问作者Naman Agarwal
相关产品推荐
相关产品推荐

