启动HIVE 服务报错 HWI WAR file not found

Hive Web Interface 配置与启动
本文介绍了解决 Hive Web Interface (HWI) 启动时找不到 WAR 文件的问题方法。通过在 hive-site.xml 中配置 hive.hwi.war.file 的路径及监听主机和端口,成功启动了 HWI 服务。

[root@idc01-vm-test-124 bin]# ./hive --service hwi
14/04/20 11:22:31 INFO hwi.HWIServer: HWI is starting up
14/04/20 11:22:31 WARN hwi.HWIServer: hive.hwi.listen.port was not specified defaulting to 9999
14/04/20 11:22:31 FATAL hwi.HWIServer: HWI WAR file not found at /usr/local/hadoop/hive-0.7.1-cdh3u6/lib/hive-hwi-0.7.1-cdh3u6.war

解决方法:

进入 conf 

vim  hive-site.xml

添加以下配置项

<property> 
  <name>hive.hwi.war.file</name>
    <value>lib/hive-hwi-0.7.1-cdh3u6.war</value>
      <description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description>
      </property>

<property>
  <name>hive.hwi.listen.host</name>
    <value>0.0.0.0</value>
      <description>This is the host address the Hive Web Interface will listen on</description>
      </property> 
    
<property>
  <name>hive.hwi.listen.port</name> 
    <value>9999</value> 
      <description>This is the port the Hive Web Interface will listen on</description>
      </property>

需要注意:配置hive.hwi.war.file的值 根据lib/下得hive-hwi-0.7.1-cdh3u6.war 对应。

接下来 启动下服务

./hive --service hwi
14/04/20 11:30:07 INFO hwi.HWIServer: HWI is starting up
14/04/20 11:30:07 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
14/04/20 11:30:07 INFO mortbay.log: jetty-6.1.14
14/04/20 11:30:07 INFO mortbay.log: Extract jar:file:/usr/local/hadoop/hive-0.7.1-cdh3u6/lib/hive-hwi-0.7.1-cdh3u6.war!/ to /tmp/Jetty_0_0_0_0_9999_hive.hwi.0.7.1.cdh3u6.war__hwi__co5uvf/webapp
14/04/20 11:30:07 INFO mortbay.log: Started SocketConnector@0.0.0.0:9999

DONE.

### Hive Metastore 启动失败常见问题及解决方案 在启动 Hive Metastore 服务时,可能会遇到多种报错信息。以下是几种常见的错误类型及其对应的解决方法: #### **1. Version information not found in metastore** 该错误通常表示当前使用的 Hive 版本与数据库中存储的 schema 版本不匹配。Hive 会通过 `metastore` 数据库记录 schema 的版本信息,并在启动时进行校验。如果发现版本不一致,就会抛出此异常。 **解决方案:** - 修改配置文件 `hive-site.xml` 中的以下参数: ```xml <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> ``` 该设置将跳过版本校验过程,适用于测试环境或临时修复[^1]。 - 如果是生产环境,建议使用 `schematool` 工具升级元数据 schema: ```bash schematool -dbType mysql -upgradeSchema ``` 请根据实际使用的数据库类型替换 `-dbType` 参数值。 #### **2. 数据库连接失败或驱动缺失** 当修改 `javax.jdo.option.ConnectionURL` 指向一个新的数据库后,可能出现连接失败或者缺少 JDBC 驱动的情况。 **解决方案:** - 确保 `hive-site.xml` 中的数据库连接信息正确无误,包括 URL、用户名和密码: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> </property> ``` - 确认 MySQL JDBC 驱动(如 `mysql-connector-java.jar`)已放置在 Hive 的 `lib` 目录下,且版本兼容当前 MySQL 服务器[^2]。 #### **3. 元数据验证失败** 有时会提示类似于 `DataNucleus` 元数据验证失败的问题,尤其是在切换数据库之后。 **解决方案:** - 在 `hive-site.xml` 中添加以下两个属性并将其值设为 `false`: ```xml <property> <name>datanucleus.metadata.validate</name> <value>false</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> ``` 这样可以禁用元数据验证机制,避免因 schema 不匹配导致启动失败[^2]。 #### **4. 初始化数据库 schema 失败** 如果目标数据库尚未初始化 schema,则可能导致启动失败。 **解决方案:** - 使用 `schematool` 初始化 schema: ```bash schematool -dbType mysql -initSchema ``` 该命令会在指定数据库中创建所需的表结构和初始数据。 #### **5. 权限不足** Hive 用户可能没有对目标数据库执行操作的权限。 **解决方案:** - 登录到数据库管理系统中,授予用户相应权限: ```sql GRANT ALL PRIVILEGES ON hive_metastore.* TO 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; FLUSH PRIVILEGES; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值