MHuiG

「看庭前花开花落,望天上云卷云舒」

安装部署

# Hive 安装部署

我们在此处选择第三台机器作为我们 hive 的安装机器

## derby 版 hive 直接使用

### 解压 hive

    cd /export/softwares
    tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/

### 直接启动 bin/hive

    cd /export/servers/hive-1.1.0-cdh5.14.0/
    bin/hive
    hive> create database mytest;

    bin/hive

    show databases;

    create database mytest;

    show databases;

    cd /export/servers/hive-1.1.0-cdh5.14.0/bin
    ./hive

    show databases;

刚才创建的 mytest 呢？

    create database mytest2;

缺点：多个地方安装 hive 后，每一个 hive 是拥有一套自己的元数据，大家的库、表就不统一；

## 使用 mysql 共享 hive 元数据

mysql 数据库的安装（使用 yum 源进行安装，强烈推荐）

### 第一步：在线安装 mysql 相关的软件包

    yum install mysql mysql-server mysql-devel

### 第二步：启动 mysql 的服务

    /etc/init.d/mysqld start

### 第三步：通过 mysql 安装自带脚本进行设置

    /usr/bin/mysql_secure_installation

### 第四步：进入 mysql 的客户端然后进行授权

    mysql -uroot -p

    grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    flush privileges;

### 修改 hive 的配置文件

#### 修改 hive-env.sh

添加我们的 hadoop 的环境变量

    cd /export/servers/hive-1.1.0-cdh5.14.0/conf
    cp hive-env.sh.template hive-env.sh
    vim hive-env.sh

hive-env.sh

    HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf

#### 修改 hive-site.xml

    cd /export/servers/hive-1.1.0-cdh5.14.0/conf
    vim hive-site.xml

hive-site.xml

    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
      <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true</value>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
      </property>
      <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
      </property>
      <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
      </property>
      <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
      </property>
      <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>node03.hadoop.com</value>
      </property>
    </configuration>

### 上传 mysql 的 lib 驱动包

将 mysql 的 lib 驱动包上传到 hive 的 `lib` 目录下

    cd /export/servers/hive-1.1.0-cdh5.14.0/lib

将 `mysql-connector-java-5.1.38.jar` 上传到这个目录下

## 使用方式

### 第一种交互方式：Hive 交互 shell

    cd /export/servers/hive-1.1.0-cdh5.14.0
    bin/hive

查看所有的数据库

    hive (default)> show databases;

创建一个数据库

    hive (default)> create database mydb;

使用该数据库并创建数据库表

    hive (default)> use mydb;
    hive (myhive)> create table test(id int,name string);

以上命令操作完成之后，一定要确认 mysql 里面出来一个数据库 hive

### 第二种交互方式：Hive JDBC 服务

启动 hiveserver2 服务
后台启动

    cd /export/servers/hive-1.1.0-cdh5.14.0
    nohup bin/hive --service hiveserver2 &

beeline 连接 hiveserver2
注意：如果使用 beeline 方式连接 hiveserver2，一定要保证 hive 在 mysql 当中的元数据库已经创建成功，不然就会拒绝连接

    nohup bin/hive --service metastore &

    bin/beeline
    beeline> !connect jdbc:hive2://node03.hadoop.com:10000

设置 mysql 的开机启动

    chkconfig --add mysqld
    chkconfig mysqld on
    service mysqld start
    service mysqld status

Hive基本概念

Overview Hive 基本概念 什么是 HiveHive 是基于 Hadoop 的一个数据仓库工具，可以将结构化的数据文件映射为一张数据库表，并提供类 SQL 查询功能。其本质是...

留言区

Notes
Hive
本文目录
Are You A Robot?