栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive安装测试使用记录

Hive安装测试使用记录

Hive安装与测试记录
    • 安装前准备
    • 安装Hive
    • 创建Hbase映射表
    • 将Hive以服务形式后台启动
    • 使用beeline方式连接
    • 使用DBeaver可视化工具链接Hive
    • JAVA使用JDBC连接Hive

安装前准备
需要装的软件版本
mysql5.7.24
hadoop3.0.0
hbase1.3.1
zookeeper3.4.11

因为服务器是公司测试服务器 , 所以这四个都已经是安装好的了 , 不做过多介绍 , 安装教程自行百度

安装Hive

下载地址 : https://dlcdn.apache.org/hive/

下载安装一定要找到和你的hadoop , hbase , zookeeper匹配的版本
第一次安装了3.1.2 可以正常运行 , 但是在建和hbase的映射表的时候会找不到表和列族

具体版本对照可参考这篇文章:
https://cloud.tencent.com/developer/article/1084829

我们选择2.3.9版本
将下载好的包解压在/opt/software目录下

tar -zxvf apache-hive-2.3.9-bin.tar.gz -C /opt/software/

将文件夹名称修改为hive

mv apache-hive-2.3.9-bin hive

最后得到下列文件

在/etc/profile中添加环境变量

export HIVE_HOME=/opt/software/hive
export PATH=$PATH:$HIVE_HOME/bin

执行加载配置文件命令

source /etc/profile

执行命令

 hive --version

有如下信息则安装成功

如果执行命令不成功 , 请切换root账户下并携带环境变量 , 再尝试

我们进入conf目录下 , 将hive-default.xml.template文件复制并重命名为hive-site.xml

cp hive-default.xml.template hive-site.xml

我们在mysql中创建hive数据库 , 用户管理hive
创建后修改hive-site.xml配置文件

在配置文件中添加如下配置
添加后为防止出现问题需要把该文件同一个name的配置注释掉或删掉

  
    system:java.io.tmpdir
    /usr/local/hive/tmp
  
  
    system:user.name
    /usr
  

  
      javax.jdo.option.ConnectionUserName
      root
      数据库username
  
  
      javax.jdo.option.ConnectionPassword
      1234
      数据库password
  
  
      javax.jdo.option.ConnectionURL
      jdbc:mysql://123.456.789.111:1234/hive
      JDBC元存储的JDBC连接字符串
  
  
      javax.jdo.option.ConnectionDriverName
      com.mysql.cj.jdbc.Driver
      JDBC驱动类名
  

我们在建表时可能会出现奇奇怪怪的异常 , 建议在配置文件中添加如下配置 , 使其Hbase , ZK的链接使用我们安装好的Hbase和ZK中的链接

  
    hive.aux.jars.path
    
      file:///opt/software/hive/lib/hive-hbase-handler-3.1.2.jar,
      file:///opt/software/zookeeper-3.4.11/zookeeper-3.4.11.jar,
      file:///opt/software/hbase-1.3.1/lib/hbase-client-1.3.1.jar,
      file:///opt/software/hbase-1.3.1/lib/hbase-common-1.3.1.jar,
      file:///opt/software/hbase-1.3.1/lib/hbase-server-1.3.1.jar,
      file:///opt/software/hbase-1.3.1/lib/hbase-common-1.3.1-tests.jar,
      file:///opt/software/hbase-1.3.1/lib/hbase-protocol-1.3.1.jar,
      file:///opt/software/hbase-1.3.1/lib/htrace-core-3.1.0-incubating.jar
    
  

配置好后下载mysql的链接驱动
下载地址 : https://dev.mysql.com/downloads/connector/j/
或者https://repo1.maven.org/maven2/mysql/mysql-connector-java/


将驱动中的jar包拷贝在hive目录中的lib目录下

在hive目录的bin目录下执行初始化和数据库的链接

schematool -dbType mysql -initSchema

完成后数据库hive库会生成如下表

我们运行hive

hive的命令基本和sql一样 , 我们创建一个库

create database hive_test;

查询所有库

show databases;


使用hive_test库

use hive_test;

创建一张表

create table test(id int,value string);

注意 : 这里的字符型是string相当于mysql中的varchar
显示所有的表

show tables;

创建Hbase映射表

创建Hbase外部表的Hql:

CREATE EXTERNAL TABLE test007 (rowkey string,name string,age string) 
STORED BY 'org.apache.hadoop.hive.hbase.HbaseStorageHandler' 
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,Info:name,Info:age") 
TBLPROPERTIES ("hbase.table.name" = "test007");
  • 第一行是数创建表及属性,这个rowkey是必须要写的,其他字段及类型加在key的后边,这里定义的是hive的字段及类型
  • 第二行是固定写法
  • 第三行是每个字段与Hbase中的映射关系 , 等号前边是固定写法 , 后边冒号前边为列族名 , 后边为列名
  • 第四行等号左边是固定写法 , 右边为Hbase中的表名

EXTERNAL关键字建立的就是外部表,如果Hbase中已经存在了test007这个表不加这个关键字会报错

我们关联表建好后可以进行查询

select * from test007;


到这里说明我们完成了Hive的所有安装步骤 , 可以正常使用

将Hive以服务形式后台启动

我们刚刚成功安装了Hive , 但是只能在黑框框里面命令行形式操作 , 实际运用中我们需要像mysql一样连接做一些操作 , 接下载我们就修改一下Hive 的配置达到我们的目的

添加如下配置

  
    hive.server2.enable.doAs
    false
    
      Setting this property to true will have HiveServer2 execute
      Hive operations as the user making the calls to it.
    
  

  
    hive.server2.thrift.bind.host
    123.456.789.111
    Hive所在服务器地址
  

  
    hive.server2.thrift.port
    1234
    监听一个端口
  

启动Hive元数据库

hive --service metastore & 

开启hiveserver2服务

hive --service hiveserver2 &

至此Hive以服务形式启动

使用beeline方式连接

执行命令

beeline

再执行

!connect jdbc:hive2://123.456.789.111:1234

之后会提示输入账号密码默认账号是root密码是没有的可以直接回车

使用DBeaver可视化工具链接Hive

下载DBeaver , 下载地址 : https://dbeaver.io/download/
安装成功后打开如下界面

新建连接 , 选择hive

添加对应信息

我们将Hive目录下的jdbc目录中的hive-jdbc-2.3.9-standalone.jar下载下来 , 在编辑驱动设置中添加进去

配置完成后我们打开操作类似于Navicat , 找到我们的库和表打开就可以看到我们的数据了

JAVA使用JDBC连接Hive

java使用起来也是非常的简单的

pom导入依赖:

        
            org.apache.hive
            hive-jdbc
            2.3.9
        

版本和安装的Hive尽量一致

代码:

package com.dataojo.testdemo.hive;

import java.sql.*;


public class HiveDemo {

    private static String driveName = "org.apache.hive.jdbc.HiveDriver";

    private static String ip = "123.456.789.111";

    private static String prot = "1234";

    private static String lib = "hive_test";

    private static String username = "root";

    private static String password = "";

    private static Connection con = null;

    static {
        try {
            Class.forName(driveName);
            con = DriverManager.getConnection("jdbc:hive2://" + ip + ":" + prot + "/" + lib, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        ResultSet res = null;
        Statement stmt = null;
        try {
            stmt = con.createStatement();
            String sql = "select * from test007";
            res = stmt.executeQuery(sql);
            while (res.next()) {
                System.out.println(res.getString(1) + "t" + res.getString(2) + "t" + res.getString(3));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (res != null) {
                    res.close();
                }
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422599.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号