HIVE 0.14.0安装

本文原文出处: http://blog.csdn.net/bluishglc/article/details/41652111 严禁任何形式的转载,否则将委托CSDN官方维护权益!

0. 前置条件

    1. 集群已经安装好Hadoop
    2. 本次安装使用/usr/local作为安装目录
    3. 专门为HIVE建立用户和用户组:hive:hive

1.安装

从官网下载apache-hive-0.14.0-bin.tar.gz以及apache-hive-0.14.0-src.tar.gz,后者主要用于build IWH的war包。

将apache-hive-0.14.0-bin.tar.gz解压至/usr/local,同时将文件夹的owner和group改为hive:hive. 为了方便可以建立一个名为hive的软连接指向apache-hive-0.14.0,如下图:


2. 配置环境变量

#vim /etc/profile

在文件尾部添加:

#HADOOP ENV VARIABLES
JAVA_HOME=/usr/java/jdk1.7.0_71
HADOOP_HOME=/usr/local/hadoop
HIVE_HOME=/usr/local/hive
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HIVE_HOME/hcatalog/bin:$HIVE_HOME/hcatalog/sbin
export JAVA_HOME HADOOP_HOME HIVE_HOME PATH


3. 配置HIVE

首先我们需要hive-site.xml和hive-log4j.properties两个文件,可以从默认的模板文件复制而来:

cd $HIVE_HOME/conf
cp hive-default.xml.template hive-site.xml
cp hive-log4j.properties.template hive-log4j.properties

以下是一些配置文件的参考:

3.1 hive-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>
  <name>hive.metastore.execute.setugi</name>
  <value>true</value>
</property>

<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>

<!-- metadata database connection configuration -->

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mariadb://your-database-server/hivemetastoredb?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>org.mariadb.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
  <description>username to use against metastore database</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>your-password</value>
  <description>password to use against metastore database</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>

<!-- configure hwi war package location -->
<property>
  <name>hive.hwi.war.file</name>
  <value>lib/hive-hwi-0.14.0.war</value>
  <description>This is the WAR file with the jsp content for Hive Web Interface</description>
</property>

</configuration>

3.2  hive-log4j.properties

修改:

hive.log.dir=/var/hive/logs

3.3 webhcat-log4j.properties

修改:

webhcat.log.dir = /var/hive/logs

3.4 hcat_server.sh

在开头加上:

export HCAT_LOG_DIR=/var/hive/logs

3.5 webhcat_config.sh

在开头加上:

export WEBHCAT_LOG_DIR=/var/hive/logs
export WEBHCAT_PID_DIR=/tmp

4. 创建相关文件夹和设置权限

HIVE默认在HDFS上会使用/tmp和/user/hive/warehouse两个目录,如果我们以hive用户启动hive,它没有在根目录上的写权限,这样启动hive时就会报错, 所以需要我们通过hadoop的超级用户为hive建立这两个目录,并给赋予相应的权限给hive用户。

hadoop fs -mkdir -p /user/hive
hadoop fs -chgrp hive /user/hive
hadoop fs -chown hive /user/hive

hadoop fs -mkdir /tmp
hadoop fs -chmod a+w /tmp

另外,前面的很多配置项都使用了本地的一个/var/hive文件夹,这需要我们创建这个文件夹并assign给hive用户。

5. 构建hwi的war包

hive目前的发行包里没有hwi的war包文件,这个问题在0.13和0.14上都存在,没有这个war包就不能启动hwi服务。目前的解决方法是从源码手动build出这个war包,具体做法是:

5.1 下载hive 0.14.0的源码包并解压

5.2 解压后进入hwi子目录,该目录下的web文件夹正是war包的全部文件,我们需要做的就是通过jar命令把这个文件夹打包为war文件。在hwi目录下执行:

jar cvfM0 hive-hwi-0.14.0.war -C web/ .

执行之后 ,将生成的war文件拷贝至$HIVE_HOME/lib文件夹下,同时修改hive-site.xml文件夹中的:  hive.hwi.war.file,将其value改为lib/hive-hwi-0.14.0.war

6. 安装MariaDB/MySql

HIVE需要使用一个关系型数据库存储元数据,对于MariaDB/MySql的安装本文不做赘述,只给出两个小贴士:

设置root用户远程连接数据库

GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘your-password‘ WITH GRANT OPTION;

为root用户设置密码

$ mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("new-password") where User=‘root‘;
mysql> flush privileges;
mysql> exit

另外,有两个地方是需要特别注意的:

  • 必需要将数据库对应的JDBC驱动jar包拷贝至$HIVE_HOME/lib/目录下
  • hive-site.xml中javax.jdo.option.*的配置项都是在配置与这个数据库连接的JDBC属性,所以要对应好。比如server名,driver名等等。

7. 启动

#启动metastore服务
nohup $HIVE_HOME/bin/hive --service metastore > /dev/null 2> /dev/null &

#启动hiveserver服务
nohup $HIVE_HOME/bin/hive --service hiveserver > /dev/null 2> /dev/null &

#启动hwi服务
nohup $HIVE_HOME/bin/hive --service hwi > /dev/null 2> /dev/null &

#启动hcat_server服务
$HIVE_HOME/hcatalog/sbin/hcat_server.sh start

#启动webhcat_server服务
$HIVE_HOME/hcatalog/sbin/webhcat_server.sh start

8. 常见错误及解决方法

8.1 hcat_server.sh start报如下错误:

Missing hive-site.xml, expected at [/usr/local/hive/conf/hive-site.xml]
这时需要把${HIVE_HOME}}/conf/hive-default.xml.template文件复制一份更名为hive-site.xml

8.2 hcat_server.sh start报如下错误:

Started metastore server init, testing if initialized correctly...
/usr/local/hive/hcatalog/sbin/hcat_server.sh: line 91: /usr/local/hive/hcatalog/sbin/../var/log/hcat.out: No such file or directory.Metastore startup failed, see /usr/local/hive/hcatalog/sbin/../var/log/hcat.err

这是因为启动hive进程的用户(就是hive:hive)对指定的log文件或目录没有写权限。解决方法是指定一个hive用户具有写权限的位置,然后在启动脚本里export变量HCAT_LOG_DIR!具体命令如下:

#mkdir -p /var/hive/logs
#chgrp hive /var/hive
#chown hive /var/hive

#vim ${HIVE_HOME}/hcatalog/sbin/hcat_server.sh
#export HCAT_LOG_DIR=/var/hive/logs

8.3 在root下使用sudo启动,报错:

webhcat: starting ...
webhcat: /usr/local/hadoop/bin/hadoop jar /usr/local/apache-hive-0.14.0-bin/hcatalog/sbin/../share/webhcat/svr/lib/hive-webhcat-0.14.0.jar org.apache.hive.hcatalog.templeton.Main  
/usr/local/hive/hcatalog/sbin/webhcat_server.sh: line 143: ./webhcat-console.log: Permission denied
/usr/local/apache-hive-0.14.0-bin/hcatalog/sbin/webhcat_server.sh: failed to start. Check logs in  .

原因:hive默认在启动用户的home目录下生成日志文件,这时候需要修改hive的log4j的配置文件!

vim $HIVE_HOME/hcatalog/etc/webhcat/webhcat-log4j.properties
webhcat.log.dir = /var/hive/logs

8.4 执行hive --service hwi,报错

ls: cannot access /usr/local/hive/lib/hive-hwi-*.war: No such file or directory

这是没有hwi的war包或配置的war路径不对引起的,解决方法参考第5章节。

8.5 启动时报错:

Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/java/jdk1.7.0_71/jre"

解决方法:
cp $JAVA_HOME/lib/tools.jar $HIVE_HOME/lib/

时间: 2024-10-07 06:30:02

HIVE 0.14.0安装的相关文章

基于0.14.0版本配置HiveServer2

项目中需要访问hive作为mondrian的异种数据源执行MDX查询,而我一般使用hive的时候都是直接通过hive命令行的方式直接执行SQL,或者通过hive的jar包在程序中访问,在这种方式的使用过程中,访问的hadoop集群都是公司的集群,之前测试hive的过程中记得自己对hive的jdbc源码进行了修改,主要是修改了一些hive在实现jdbc中没有实现但是抛出异常的接口,而mondrian会调用这些接口导致下面的流程走不下去了,整体的修改应该说还是比较简单的.另外一个问题是当时的hive

Pig升级0.13.0踩过的一个坑

背景:之前的pig版本是0.12,看到社区的0.13.0已经发布好久了,有很多新的patch和feature.其中有一个feature是 设置jar包缓存的参数,pig.user.cache.enabled .这个参数可以提高pig的执行速度.具体看下: https://issues.apache.org/jira/browse/PIG-3954     User Jar Cache     Jars required for user defined functions (UDFs) are

hadoop: hive 1.2.0 在mac机上的安装与配置

环境:mac OS X Yosemite + hadoop 2.6.0 + hive 1.2.0 + jdk 1.7.0_79 前提:hadoop必须先安装,且处于运行状态(伪分式模式或全分布模式均可) hive官网地址:http://hive.apache.org/ 建议:经个人实践,在mac OS X Yosemite 环境下,如果使用apache下载的原始hadoop 2.6.0,不管jdk安装成什么版本(1.6\1.7\1.8都试过),hive 1.2.0启动时,始终报jdk版本不匹配,

在Hadoop2.6.0上安装Hive0.14.0

1.到http://www.apache.org/dyn/closer.cgi/hive/ 上下载hive0.14.0的版本 2.使用cp命令拷贝到Linux主机的hadoop用户下 我这里使用的hadoop用户为qhg 3.使用tar -zxvf 命令进行解压,解压完后由于名字太长,使用mv进行重命名 4.配置Hive的环境变量 在.bash_profile文件中添加HIVE_HOME,然后在PATH中加入HIVE_HOME/bin目录 然后source .bash_profile,使环境变量

Hadoop2.3.0+Hbase0.96.1.1+Hive0.14.0+Zookeeper3.4.6+Sqoop1.99.3安装配置流程

Hadoop2.3.0+Hbase0.96.1.1+Hive0.14.0+Zookeeper3.4.6+Sqoop1.99.3安装配置流程 linux环境:Oracle Linux Server release 6.3 (64位) 编译环境:由于公司服务器不能联网,故在本机win8下的虚拟机中编译(虚拟机中同样是Oracle Linux Server release 6.3 (64位)) 节点:一共配置了三个节点,主节点qzj05(ip:192.168.10.199),子节点qzj02(ip:1

Hive 0.14 + hadoop 2.4.1 环境下的 jdbc连接

本文记录在Hive 0.14 + hadoop 2.4.1 环境下,如何时用 jdbc连接到hive hive 的JDBC驱动还是比较好找的,在hive的包里就有 hive-jdbc-0.14.0-standalone.jar 是一个N合一的包,把它放到buildPath 除了这个包,还需要几个hadoop下的包,最后的buildpah如下图: 用服务模式启动hive,10010是监听的端口号 ? 1 hive --service hiveserver 10010 下面是个示例代码,连接到hiv

搭建hive的图形化界面hive-0.14.0版本

1.在hive的官网上下载源码,上传至服务器 2.进入目录进行解压 tar -zxvf apache-hive-0.14.0-src.tar.gz 3.进入web目录 cd apache-hive-0.14.0-src cd hwi/web 4.将web源码打成zip包 zip hive-hwi-0.14.0.zip ./*     //打包成.zip文件. 5.将zip后缀改为war hive-hwi-0.14.0.war 6.将war包复制到hive下的lib目录 cp hive-hwi-0

Win7机器上安装Ubuntu 14.0.4

折腾了两天,分享一下经历. 我需要在已经安装了win7的机器上安装Ubuntu 14.0.4 (两者共存),研究下来有如下几种方案, 都折腾了一遍,分享一下经验: 方式1: wubi.exe, 把Ubuntu安装到指定windows分区 我用这种方法安装完毕后,启动Ubuntu的时候每次都提示根目录"/"磁盘检查错误,忽略这个错误之后又出现"/tmp"不存在之类的错误,总之不成功,就不分析这种方式的优缺点了.不推荐.安装方法参考的下面的连接. http://www.

win10 64位 python3.6 django1.11 MysqlDB No module named &#39;MySQLdb&#39; 安装MysqlDB报错 Microsoft Visual C++ 14.0 is required

在python3.6中操作数据库,再按python2.7安装MySQLdb进行数据库连接已经不可用了,我使用的是另外一个方法:PyMySQL,安装好之后还是不能直接连接MySQL的,启动项目后报No module named 'MySQLdb' 解决方案: 在项目的__init__()文件中添加如下代码: import pymysql pymysql.install_as_MySQLdb() 这时再次启动项目正常 win10 64位 python3.6 django1.11 MysqlDB No