hive-2.1.1整合hbase-2.1.0

一、环境准备

1、软件版本

  • hadoop-2.7.4
  • hbase-2.1.0
  • hive-2.1.1

2、hbase与hive的版本兼容

  • hive0.90 与 hbase0.92是兼容的,早期的hive版本与hbase0.89/0.90兼容
  • hive1.x 与 hbase0.98.x或更低版本是兼容的
  • hive2.x 与 hbase1.x及hbase1.x更高版本兼容

提示:hive 1.x 与 hbase 1.x整合时,需要自己编译

二、hive与hbase整合环境配置

1、修改hive-site.xml文件,添加配置属性(zookeeper的地址)

  <property>
         <name>hive.zookeeper.quorum</name>
         <value>node01,node02,node03</value>
  </property>
  <property>
        <name>hive.server2.enable.doAs</name>
        <value>false</value>
        <description>
      Setting this property to true will have HiveServer2 execute
      Hive operations as the user making the calls to it.
        </description>
  </property>

注意:hive.server2.enable.doAs必须配置,否则无法使用官方推荐的hiveserver2 / beeline的方式操作,在利用HQL语句创建HBase时会出现异常,解决方案:https://blog.csdn.net/jinYwuM/article/details/83506749

2、拷贝hive的jar包

由于hive与hbase通信主要是依靠hive_hbase-handler.jar工具包,因此需要将hive中的jar包拷贝到$HBASE_HOME/lib下

cp hive-hbase-handler-2.1.1.jar /export/servers/hbase-2.1.0/lib/

 三、整合后功能测试

采用hiveserver2 / beeline的方式启动

1、首先启动Hbase集群

 

2、启动hive

 

 3、利用HQL语句创建hbase 表

创建Hbase表的语法介绍

# Hive中的表名test_tb
CREATE TABLE test_tb(key int, value string) 
# 指定存储处理器
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
# 声明列族,列名
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") 
# hbase.table.name声明HBase表名,为可选属性默认与Hive的表名相同
# hbase.mapred.output.outputtable指定插入数据时写入的表,如果以后需要往该表插入数据就需要指定该值
TBLPROPERTIES ("hbase.table.name" = "test_tb", "hbase.mapred.output.outputtable" = "test_tb");  

4、插入数据并查询

put 'test_tb','98','cf1:val','val_98'
put 'test_tb','99','cf1:val','val_99'
put 'test_tb','100','cf1:val','val_100'

 5、查询Hive及Hbase表中数据

1)、HBase表数据

2)、Hive表数据

提示:还有一种hive与hbase映射方式,Hive映射HBase中已经存在的表,即使用HQL创建hive外部表,映射HBase已存在的表,进行关联操作。

四、使用java连接hive操作hbase

1、依赖

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-metastore</artifactId>
            <version>2.1.0</version>
        </dependency>

    </dependencies>

2、Java代码

package com.theone.hive;

import java.sql.*;

public class Hive_Hbase {

    private static String Driver = "org.apache.hive.jdbc.HiveDriver";
    private static String URL = "jdbc:hive2://192.168.17.101:10000/hivedb";
    private static String name = "root";
    private static String password = "123";

    public static void main(String[] args) throws SQLException {
        try {
            Class.forName(Driver);
            Connection connection = DriverManager.getConnection(URL, name, password);
            Statement statement = connection.createStatement();
            String sql = "select * from test_tb";
            ResultSet res = statement.executeQuery(sql);
            while (res.next()) {
                System.out.println(res.getInt(1) + "\t==> " + res.getString(2));
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

3、运行结果

### 回答1: Apache Hive是一个开源的数据仓库基础设施,可以通过使用SQL来查询和分析大规模的数据集。apache-hive-2.1.1-bin.tar.gz是Hive2.1.1版本的二进制安装包。这个安装包包含了Hive运行所需的所有文件。 在安装Hive之前,我们需要确保已经安装了Java Development Kit (JDK),因为Hive是在Java环境下运行的。然后,我们可以通过以下步骤来安装apache-hive-2.1.1-bin.tar.gz: 1. 首先,我们需要下载apache-hive-2.1.1-bin.tar.gz文件。我们可以从Apache Hive官方网站下载这个文件。 2. 下载完成后,我们需要将下载的文件解压缩。可以使用以下命令进行解压缩:tar -zxvf apache-hive-2.1.1-bin.tar.gz 3. 解压缩完成后,我们需要配置Hive的环境变量。我们可以打开.bashrc或.bash_profile文件,并添加以下配置行: export HIVE_HOME=/path/to/hive export PATH=$PATH:$HIVE_HOME/bin 请将上述配置行中的"/path/to/hive"替换为您解压缩Hive的路径。 4. 保存文件,然后加载这些配置。我们可以使用以下命令加载.bashrc文件:source ~/.bashrc 5. 现在,我们可以启动Hive了。使用以下命令启动:hive 这将启动Hive的命令行界面,我们可以在其中执行Hive的SQL查询和操作。 这就是安装apache-hive-2.1.1-bin.tar.gz的基本步骤。安装完成后,您可以开始使用Hive来查询和分析大规模的数据集。希望这个回答能对您有帮助! ### 回答2: Apache Hive是一个基于Hadoop的数据仓库解决方案,它可以提供结构化查询语言(SQL),以便从大规模分布式数据集中检索和分析数据。hive-2.1.1-bin.tar.gz是Hive的一个版本,其中的bin表示该文件包含了Hive的可执行脚本和二进制文件。 在解压和安装这个tar.gz文件之后,我们可以通过运行Hive的命令行界面来开始使用HiveHive提供了类似于SQL的查询语言,称为HiveQL,它允许用户使用SQL语句来查询和分析存储在Hadoop集群上的数据。 Hive可以处理各种类型的数据,包括结构化数据、半结构化数据和非结构化数据。它允许用户定义表结构,将数据导入表中,并执行类SQL查询来处理这些表。Hive使用Hadoop的MapReduce框架来执行查询,因此具有良好的可扩展性和容错性。 除了基本的查询功能外,Hive还支持用户自定义函数(UDFs),以便根据特定需求编写自定义的函数,并将其应用于查询中。此外,Hive还支持分区和分桶的概念,以改进查询性能。 通过使用Hive,用户可以利用Hadoop集群的强大计算能力和存储能力来处理大规模数据集。它提供了一种简化和抽象化的方式来处理和查询大数据,对于那些熟悉SQL语法的用户来说,学习和使用Hive相对容易。 总之,apache-hive-2.1.1-bin.tar.gz是Apache Hive的一个版本,它提供了一个基于Hadoop的数据仓库解决方案,可以通过HiveQL语言来查询和分析大规模分布式数据集。 ### 回答3: apache-hive-2.1.1-bin.tar.gz 是Apache Hive项目的二进制压缩文件。Apache Hive是一个基于Hadoop的数据仓库基础架构工具,用于提供数据的存储、查询和分析。通过Hive,用户可以使用类SQL语言在Hadoop集群中执行数据查询,并将查询结果转换为MapReduce任务进行处理。 Apache Hive提供了一个类似于关系型数据库的查询语言,称为HiveQL,它使用了SQL语法来查询和操作存储在Hadoop HDFS或Hive表中的数据。HiveHiveQL查询转换为MapReduce任务或Tez DAG(有向无环图)任务,让用户可以轻松地利用Hadoop集群的并行处理能力进行大规模数据处理。 通过Apache Hive,用户可以在不需要掌握复杂的MapReduce编程技术的情况下,利用简单的SQL语法进行数据分析和挖掘。用户可以创建Hive表,将数据加载到表中,并使用HiveQL进行查询和处理。此外,Hive还提供了用户定义函数(UDF)、用户定义聚合函数(UDAF)和用户定义转换函数(UDTF)的能力,让用户可以按照自己的需求扩展和定制Hive的功能。 apache-hive-2.1.1-bin.tar.gz是Hive 2.1.1版本的二进制分发文件。用户可以下载并解压此文件,即可在本地环境中部署和运行Apache HiveHive还有其他版本和分发文件可供选择,用户可以根据自己的需求选择适合的版本进行使用。对于想要在Hadoop集群中快速搭建和使用数据仓库工具的用户,Apache Hive提供了一个强大而灵活的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值