macOS Hive安装配置教程

大数据学习路线图

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

Hive要运行Hadoop伪分布式上,请确保Hadoop已经成功运行。
hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表、字段转换为HDFS中的文件(夹)以及文件中的列。
这套映射工具称之为metastore,一般存放在derby、mysql中。
Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。而在HDFS中,Hive的数据就存储在这里,利用MapReduce来调用执行。
默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持。

安装Hive

brew install hive

配置Hive

  1. JDBC驱动放置在hive/lib目录下(JDBC驱动程序mysql-connector-java-x.x.x-bin.jar文件的下载地址),还要把jline-2.12.jar拷贝到hadoop相应目录下命令如下:
    # Mac中利用Homebrew安装Hive,目录跟随所安装的Hive目录变动
    mv ~/下载/mysql-connector-java*.jar /usr/local/Cellar/hive/2.1.0/libexec/lib
    # 把jline-2.12.jar拷贝到hadoop相应目录下
    cp /usr/local/Cellar/hive/2.1.0/libexec/lib/jline-2.12.jar /usr/local/Cellar/hadoop/2.8.2/libexec/share/hadoop/yarn/lib
    
  2. 修改hive配置文件
    Hive安装好后,是没有自带hive-site.xml文件。
    首先复制hive-default.xml.template到hive-default.xml作为全局配置文件.自己创建hive-site.xml作为可覆盖配置文件。

    cd /usr/local/Cellar/hive/2.1.0/libexec/conf
    cp ./hive-default.xml.template ./hive-default.xml
    touch hive-site.xml
    

    hive在hdfs中的默认位置是/user/hive/warehouse,是由配置文件hive-conf.xml中属性hive.metastore.warehouse.dir决定的.这里不做改动。
    编辑hive-site.xml文件,添加如下内容:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
            <description>JDBC connect string for a JDBC metastore</description>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
            <description>Driver class name for a JDBC metastore</description>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>hive</value>
            <description>username to use against metastore database</description>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>hive</value>
            <description>password to use against metastore database</description>
        </property>
    </configuration>
    

    在确保mysql已正常运行,执行如下命令检测hive是否安装成功。

    hive
    

    安装成功后,mysql的hive元数据存在如下表格: