Hive模式

  • 内嵌模式:数据储存于默认的Derby数据库,每次只能访问一个数据文件,不支持多会话连接。
  • 本地模式:数据储存于单独的数据库中(MySQL),每个用户必须拥有MySQL的用户名与密码才能进行操作。
  • 远程模式:把MySQL数据库独立,元数据保存于远程独立的MySQL服务器,无需知道MySQL的用户名与密码。

内嵌模式

Hive安装

解压Hive的安装文件:

1
2
cd /root/software
tar -zxvf apache-hive-2.3.4-bin.tar.gz

配置环境变量:
vim /etc/profile
1
2
3
4
# 配置Hive的安装目录   
export HIVE_HOME=/root/software/apache-hive-2.3.4-bin
# 在原PATH的基础上加入Hive的bin目录
export PATH=$PATH:$HIVE_HOME/bin

使环境变量生效并测试:
1
2
source /etc/profile
hive --version

内嵌模式安装

复制Hive的环境配置文件:

1
2
cd ${HIVE_HOME}/conf 
cp hive-env.sh.template hive-env.sh

配置Hive的环境配置文件:vim hive-env.sh

1
2
3
4
5
6
7
8
# 配置Hadoop安装路径  
HADOOP_HOME=/root/software/hadoop-2.7.7

# 配置Hive配置文件存放路径
export HIVE_CONF_DIR=/root/software/apache-hive-2.3.4-bin/conf

# 配置Hive运行资源库路径
export HIVE_AUX_JARS_PATH=/root/software/apache-hive-2.3.4-bin/lib

初始化Hive,数据库选为Derby:
1
2
schematool -dbType derby -initSchema
hive

本地模式

MySQL安装

tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

MySQL组件安装

标准安装使用:mysql-community-server、mysql-community-client、mysql-community- libs、mysql-community-common 和 mysql-community-libs-compat包。

  • 安装mysql-community-common(服务器与客户端库公共文件):rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
  • 安装mysql-community-libs(MySQL数据库客户端应用程序共享库):rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
  • 安装mysql-community-libs-compat(MySQL共享兼容库):rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
  • 安装mysql-community-client(客户端程序与工具):rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
  • 安装mysql-community-server(数据库服务器与工具):rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

MySQL登录

  • 初始化数据库:/usr/sbin/mysqld --initialize-insecure --user=mysql,不生成随机密码。
  • 启动MySQL服务:/usr/sbin/mysqld --user=mysql &

MySQL Client操作

  • 无密码登录:mysql -uroot
  • 重置密码:mysql> alter user 'root'@'localhost' identified by '123456';
  • 增加远程访问权限,将user列表里的host项由localhost改为%即可。
    1
    2
    3
    4
    mysql> use mysql;  # 切换成mysql数据库
    mysql> select user,host from user; # 查询用户信息
    mysql> update user set host='%' where host='localhost'; # 设置远程登录权限
    mysql> flush privileges; # 刷新配置信息

Hive安装

tar -zxvf apache-hive-2.3.4-bin.tar.gz

  • 配置环境变量vim /etc/profile,添加如下内容后source /etc/profile生效变量。
    1
    2
    3
    4
    # 配置Hive的安装目录		
    export HIVE_HOME=/root/software/apache-hive-2.3.4-bin
    # 在原PATH的基础上加入Hive的bin目录
    export PATH=$PATH:$HIVE_HOME/bin
  • 配置hive-nev:
    1
    2
    3
    cd ${HIVE_HOME}/conf
    cp hive-env.sh.template hive-env.sh
    vim hive-env.sh
    然后配置HADOOP_HOME、HIVE_CONF_DIR 以及HIVE_AUX_JARS_PATH 参数:
    1
    2
    3
    4
    5
    6
    7
    8
    # 配置Hadoop安装路径
    HADOOP_HOME=/root/software/hadoop-2.7.7

    # 配置Hive配置文件存放路径
    export HIVE_CONF_DIR=/root/software/apache-hive-2.3.4-bin/conf

    # 配置Hive运行资源库路径
    export HIVE_AUX_JARS_PATH=/root/software/apache-hive-2.3.4-bin/lib

拷贝Hive配置至MySQL

  • 拷贝驱动
    1
    2
    cd /root/software/
    cp mysql-connector-java-5.1.47-bin.jar apache-hive-2.3.4-bin/lib/
  • Metastore配置,新建并编辑hive-site.xml:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <configuration>
    <!--连接元数据库的链接信息 -->
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</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>root</value>
    <description>username to use against metastore database</description>
    </property>
    <!--连接数据库用户密码 -->
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
    </property>
    </configuration>
  • 数据库初始化:schematool -dbType mysql -initSchema

然后使用hive即可连接。