魏长东

weichangdong

Linux下装hive之最后装hive

下载apache-hive-1.0.0-bin.tar.gz

cd /usr/hive

[root@db96 local]# tar -zxvf apache-hive-1.0.0-bin.tar.gz

 

# add by wcd for hive

export PATH=$PATH:/usr/hive/apache-hive-1.0.0-bin/bin

HADOOP_HOME=/usr/

export HADOOP_HOME PATH

root@db96 conf]# cp hive-env.sh.template hive-env.sh

[root@db96 conf]# cp hive-default.xml.template hive-site.xml

Hive的配置:

配置hive-env.sh  添加hadoop_home路径:

将export HADOOP_HOME前面的#号去掉,

并让它指向您所安装hadoop的目录 (就是切换到这个目录下有hadoop的conf,lib,bin 等文件夹的目录),

(我的:HADOOP_HOME=/usr)

其实在安装hive时需要指定HADOOP_HOME的原理基本上与

在安装Hadoop时需要指定JAVA_HOME的原理是相类似的。

Hadoop需要java作支撑,而hive需要hadoop作为支撑。

将export HIVE_CONF_DIR=/usr/hive/conf,并且把#号去掉

将export HIVE_AUX_JARS_PATH=/usr/hive/lib

 

source /hive-env.sh(生效文件)

[root@db96 conf]# vim hive-env.sh

HADOOP_HOME=/usr/local/hadoop/

export HIVE_CONF_DIR=/usr/local/hive/conf                                                                                    

export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

 

 

在修改之前,要相应的创建目录,以便与配置文件中的

路径相对应,否则在运行hive时会报错的。

mkdir -p /usr/hive/warehouse

mkdir -p /usr/hive/tmp

mkdir -p /usr/hive/log

进入hive安装目录下的conf文件夹下:

cp  hive-default.xml.template

这个文件中的配置项很多,篇幅也很长,所以要有耐心看。

当然也可以使用搜索匹配字符串的方式进行查找:

键入/hive.metastore.warehouse.dir(回车)

就会锁定到所需要的字符串上。

其中有三处需要修改:

<property>

<name>hive.metastore.warehouse.dir</name>

<value>/usr/hive/warehouse</value>

</property>

这个是设定数据目录

-------------------------------------

//这个在笔者的文件中没有可以自己添加

<property>

<name>hive.exec.scratdir</name>

<value>/usr/hive/tmp</value>

</property>

这个是设定临时文件目录

--------------------------------------

<property>

<name>hive.querylog.location</name>

<value>/usr/hive/log</value>

</property>

这个是用于存放hive相关日志的目录

其余的不用修改。

 

 

cp hive-log4j.properties.template  hive-log4j.proprties

vi hive-log4j.properties

hive.log.dir=

这个是当hive运行时,相应的日志文档存储到什么地方

(mine:hive.log.dir=/usr/hive/log/${user.name})

hive.log.file=hive.log

这个是hive日志文件的名字是什么

默认的就可以,只要您能认出是日志就好,

只有一个比较重要的需要修改一下,否则会报错。

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

如果没有修改的话会出现:

WARNING: org.apache.hadoop.metrics.EventCounter is deprecated.

please use org.apache.hadoop.log.metrics.EventCounter  in all the  log4j.properties files.

(只要按照警告提示修改即可)。

 

执行hive命令老是报错,

Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path

主要是卡在了这里,在网上找了好多,但是都没有解决,最后发现hive

就是/usr/hive/apache-hive-1.0.0-bin/bin/hive这个shell文件,根据报错找到报错的行,然后逐步调试,最后发现是 HADOOP_HOME的变量在//etc/profile和hive-env.sh文件

设置的有问题,根据在hive逐步调试,最后设置成【    HADOOP_HOME=/usr/】,问题解决了。

Hadoop-hive1.png