Apache Hive在CentOS6上的安装与配置

最近在上Hadoop相关的课程,有一个实验要用到Hive这一组件,然而参考网络上的各种安装配置教程却老是出现问题,经过在网上找各种解决方案,终于配置成功能运行了,于是写下这篇文章记录一下,防止以后再踩坑。

首先介绍一下Hive:hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

我的各软件版本:

CentOS 6.10
Hadoop 2.6.1
Hive 2.3.3
MySQL 5.1.73

Hive安装配置当中最重要的是配置Metastore的位置,Metastore是Hive元数据的集中存放地,默认是存放在derby中的,derby是Apache下的一个开源关系型数据库,这里我没有用derby,替换成了MySQL。

首先从官方网站下载Hive的压缩包,解压之后配置环境:

vim ~/.bashrc

添加:

export HIVE_HOME=你的hive安装位置
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=你的hadoop安装位置

然后安装mysql,并创建数据库hive和一个角色hive,密码hive,把数据库hive的所有权限授权给hive。

将 $HIVE_HOME/conf 文件夹中的hive-default.xml.template改名为hive-default.xml

在  $HIVE_HOME/conf 文件夹中新建文件hive-site.xml,添加如下内容(根据你的相关配置修改数据库的名字、角色、密码等参数):




  
    javax.jdo.option.ConnectionURL
    jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
    JDBC connect string for a JDBC metastore
  
  
    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver
    Driver class name for a JDBC metastore
  
  
    javax.jdo.option.ConnectionUserName
    hive
    username to use against metastore database
  
  
    javax.jdo.option.ConnectionPassword
    hive
    password to use against metastore database
  

  hive.metastore.schema.verification
  false
   
   Enforce metastore schema version consistency.
   True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures proper metastore schema migration. (Default)
   False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
   



然后从mysql官网下载连接mysql的jar包,拷贝至$HIVE_HOME/lib文件夹中。

运行 $HIVE_HOME/bin/schematool -dbType mysql -initSchema来完成metastore的初始化。

再运行$HIVE_HOME/bin/hive 就能成功运行hive了!

你可能感兴趣的:(开发环境)