0%

Ubuntu 18.04 安装Hive

前言

Hive是一个基于Hadoop的数据仓库, 可以将结构化的数据映射为一张数据表, 并提供简单的SQL查询功能, 他会将SQL转化为MapReduce的方式运行, 因为它支持原生的SQL语句,并能够将它转变为MapReduce任务, 所以特别的方便, 十分适合统计任务.

安装

1. 下载HIVE

假设你的电脑已经安装了MySQL

我的Hadoop版本是2.9.2, 我下载的对应HIVE版本是1.2.2
之前下载了 2.3.4 结果版本太新不匹配

https://hive.apache.org/downloads.html

tar xvzf apache-hive-1.2.2-bin.tar.gz
sudo mv apache-hive-1.2.2-bin /opt/hive-1.2.2

2. 配置HIVE

2.1 配置环境变量

    vim ~/.bashrc

# Hive
export HIVE_HOME=/opt/hive-1.2.2
export PATH=${HIVE_HOME}/bin:$PATH

    source ~/.bashrc

2.2 修改HIVE配置文件

    cd $HIVE_HOME/conf
    vim 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?useSSL=false</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>
            <!--MySQL账号-->
            <value>root</value>
            <description>username to use against metastore database</description>
        </property>
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <!--MySQL密码-->
            <value>123456</value>
            <description>password to use against metastore database</description>
        </property>
    </configuration>

3. 下载MySQL连接器

https://dev.mysql.com/downloads/connector/j/

选择对应的版本下载:

tar xvzf mysql-connector-java-5.1.47.tar.gz
mv mysql-connector-java-5.1.47-bin.jar /opt/hive-1.2.2/lib/

测试

输入命令hive进入命令交互界面
创建测试表:

create table employee (name String, age int);

desc employee;

insert into employee values ("Ying", 18);

然后你就可以看到一个MapReduce任务正在运行, 在本地端口8088上也可以看得到任务