hive介绍

Hive是一款基于Hadoop的数据仓库工具,提供SQL-like查询功能,适用于大数据离线分析。它将SQL语句转换为MapReduce任务执行,简化了大数据处理的学习和开发。Hive不适于低延迟查询和行级更新,主要用于历史数据的分析。本文详述了Hive的安装步骤,包括下载安装包、配置环境变量、初始化元数据等,并介绍了如何将数据文件映射到Hive表。
摘要由CSDN通过智能技术生成

1. hive

1.1 Hive概述

1.1.1 Hive概述
  1. Hive是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张表,并提供完整的sql查询功能,本质上还是一个文件
  2. 底层是将sql语句转换为MapReduce任务进行运行
  3. 本质上是一种大数据离线分析工具
  4. 学习成本相当低,不用开发复杂的mapreduce应用,十分适合数据仓库的统计分析
  5. hive可以用来进行 数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop上的数据。
1.1.2 数据仓库
  1. 数据是集成的,数据的来源可能是:MySQL、oracle、网络日志、爬虫数据… 等多种异构数据源。Hadoop你就可以看成是一个数据仓库,分布式文件系统hdfs就可以存储多种不同的异构数据源

  2. 数据仓库不仅要存数据,还要管理数据,即:hdfs 和 mapreduce,从这个角度看之前的hadoop其实就是一个数据仓库,hive其实就是在hadoop之外包了一个壳子,hive是基于hadoop的数据仓库工具,不通过代码操作,通过类sql语言操作数据仓库中的数据。

    底层其实仍然是分布式文件系统和mapreduce,会把sql命令转为底层的代码

  3. 数据仓库的特征

    1. 数据仓库是多个异构数据源集成的
    2. 数据仓库存储的一般是历史数据,大多数的应用场景是读数据(分析数据)
    3. 数据库是为捕获数据而设计,而数据仓库是为了分析数据而设计
    4. 数据仓库是弱事务的,因为数据仓库存的是历史数据,一般都读(分析)数据场景
  4. OLTP系统(online transaction processing)

    1. 数据库属于OLTP系统,联机事务处理,涵盖了企业大部分的日常操作,比如购物、库存、制造、银行、工资、注册、记账等,比如mysql oracle等关系型数据库
    2. OLTP系统的访问由于要保证原子性,所以有事务机制和恢复机制
  5. OLAP系统(online analytical processing)

    1. 数据仓库属于OLAP系统,联机分析处理系统,hive等
    2. OLAP系统一般存储的是历史数据,所以大部分都是只读操作,不需要事务
1.1.3 Hive的HQL
  1. HQL - Hive通过类SQL的语法,来进行分布式的计算
  2. HQL用起来和SQL非常的类似,Hive在执行的过程中会将HQL转换为MapReduce去执行,所以Hive其实是基于Hadoop的一种分布式计算框架,底层仍然是MapReduce
1.1.4 Hive特点
  • Hive优点
    1. 学习成本低,只要会sql就能用hive
    2. 开发效率高,不需要编程,只需要写sql
    3. 模型简单,易于理解
    4. 针对海量数据的高性能查询和分析
    5. 与 Hadoop 其他产品完全兼容
  • Hive缺点
    1. 不支持行级别的增删改
    2. 不支持完整的在线事务处理
1.1.5 Hive适用场景
  1. Hive 构建在基于静态(离线)批处理的Hadoop 之上,Hadoop通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询因此,Hive并不适合那些需要低延迟的应用
  2. Hive并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的离线批处理作业,例如,网络日志分析。

1.2 Hive安装

1.2.1 详细安装步骤
  1. 下载hive安装包(2.3.7版本

    http://us.mirrors.quenda.co/apache/hive/

  2. 解压到 /usr/local/ 目录下

    sudo tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /usr/local

  3. 给文件夹重命名

    sudo mv /usr/local/apache-hive-2.3.7-bin /usr/local/hive2.3.7

  4. 设置环境变量

    sudo gedit /home/tarena/.bashrc
    在末尾添加如下内容

    export HIVE_HOME=/usr/local/hive2.3.7
    export PATH=.:${HIVE_HOME}/bin:$PATH
    
  5. 刷新环境变量

    source /home/tarena/.bashrc

  6. 下载并添加连接MySQL数据库的jar包(8.0.19 Ubuntu Linux Ubuntu Linux 18.04

    下载链接: https://downloads.mysql.com/archives/c-j/
    解压后找到 mysql-connector-java-8.0.19.jar
    将其拷贝到 /usr/local/hive2.3.7/lib
    sudo cp -p mysql-connector-java-8.0.19.jar /usr/local/hive2.3.7/lib/

  7. 创建hive-site.xml配置文件

    sudo touch /usr/local/hive2.3.7/conf/hive-site.xml

    sudo gedit /usr/local/hive2.3.7/conf/hive-site.xml
    并添加如下内容

    <configuration>
            <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
                <description>JDBC connect string for a JDBC metastore</description>
            </property>
            <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.cj.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>
    
  8. 在hive配置文件中添加hadoop路径

    cd /usr/local/hive2.3.7/conf
    sudo cp -p hive-env.sh.template hive-env.sh
    sudo gedit /usr/local/hive2.3.7/conf/hive-env.sh
    添加如下内容:

    HADOOP_HOME=/usr/local/hadoop2.10
    export HIVE_CONF_DIR=/usr/local/hive2.3.7/conf
    
  9. hive元数据初始化

    schematool -dbType mysql -initSchema

  10. 测试hive

    hive

    hive>show databases;

    如果能够正常显示内容,则hive安装并配置完毕

1.2.2 hive安装总结
  1. 安装JDK
  2. 安装Hadoop
  3. 配置JDK和Hadoop的环境变量
  4. 下载Hive安装包
  5. 解压安装hive
  6. 下载并安装MySQL连接器
  7. 启动Hadoop的HDFS和Yarn
  8. 启动hive

1.3 Hive基本操作

1.3.1 文件和表如何映射
  1. 流程操作准备

    mkdir hivedata
    cd /home/tarena/hivedata/
    vi t1.txt
    
    1,tom,23
    2,lucy,25
    3,jim,33
    
    hadoop fs -mkdir /hivedata
    hadoop fs -put t1.txt /hivedata
    
  2. 如何建立一张表和其对应

    【1】进入到hive的命令行进行建库建表操作
    	create database tedu;
    	use tedu;
    	create table t1(id int, name string, age int);
    
    【2】到hdfs中确认目录
    	/user/hive/warehouse/ 会有tedu.db
    
    【3】将本地t1.txt放到hdfs指定目录中
    	hadoop fs -put /home/tarena/hivedata/t1.txt /user/hive/warehouse/tedu.db/t1
    
    【4】在hive命令行进行查看测试
    	hive>select * from t1;
    	发现都是 NULL ,可能是分隔符的问题
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值