Hadoop之hive安装过程以及运行常见问题

Hive简介

1、数据仓库工具

2、支持一种与Sql类似的语言HiveQL

3、可以看成是从Sql到MapReduce的映射器

4、提供shall、Jdbc/odbc、Thrift、Web等接口

Hive嵌入式安装

1、下载。

下载地址:http://mirror.bit.edu.cn/apache/hive/hive-0.13.0/

我下载的是最新的版本,0.13.0版本

2、上传并解压

上传到Linux中,这里我放在了/usr/local目录下

解压hive,命令:tar -zxvf hive-0.13.0

解压完成后在目录下会多一个hive-0.13.0目录

重命名(配置环境变量方便,可不做),命令:mv hive-0.13.0 hive

3、配置环境变量

在/etc/profile 或者 ~/.bash_profile中配置都可以,任选一个。这里我选择的是.bash_profile

新增变量:export HIVE_HOME=/usr/local/hive

在PAHT路径中新增HIVE_HOME路径(红色部分):

PATH=$PATH:/usr/local/pig/bin:$HOME/bin:$HIVE_HOME/bin:$HIVE_HOME/conf

让环境变量生效命令:source .bash_profile

验证:set 

查看变量是否设置成功

4、修改hive配置

在目录hive/conf中

命令:cp hive-default.xml.template hive-site.xml

复制hive-default.xml.template为 hive-site.xml

命令:cp hive-env.sh.template hive-env.sh

修改hive-env.sh中的HADOOP_HOME=/usr/local/hadoop,这里我指向的是我Hadoop安装目录

5、运行测试

命令:hive

出现以下表示运行成功
Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.13.0.jar!/hive-log4j.properties
hive>

安装过程中可能遇到的问题:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf

解决方法:进入到Hadoop的安装目录,找到conf/hadoop-env.sh中修改export HADOOP_CLASSPATH

红色部分为增加的: export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/myclass

修改后保存在运行hive即可

hive 执行show tables;
 
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V
解决方法
hive的版本是0.13.0太高,hadoop的版本较低。 hadoop中没有对应的方法。降低hive的版本到0.11.0
 
执行show tables;
FAILED: Execution Error, return code 1 from org.apache.Hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

查看更详细报错:
hive -hiveconf hive.root.logger=DEBUG,console

出现Caused by: MetaException(message:Version information not found in metastore. )
错误。

解决方法:
修改属性:hive-site.xml
<name>hive.metastore.schema.verification</name>
<value>false</value>
原文地址:https://www.cnblogs.com/6tian/p/3768069.html