zoukankan      html  css  js  c++  java
  • Apache Hive 简介及安装

    简介

    Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件 映射为一张数据库表,并提供类 SQL 查询功能。

    本质是将 SQL 转换为 MapReduce 程序。

    主要用途:用来做离线数据分析,比直接用 MapReduce 开发效率更高。Hive 利用 HDFS 存储数据,利用 MapReduce 查询分析数据。

    数据库和数据仓库的区别在于:

    • 数据库是面向事务的设计,数据仓库是面向主题设计的
    • 数据库一般存储业务数据,数据仓库存储的一般是历史数据。
    • 数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的 User 表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
    • 数据库是为捕获数据而设计,数据仓库是为分析数据而设计

    Hive优缺点

    优点

    • 可扩展性,横向扩展,Hive 可以自由的扩展集群的规模,一般情况下不需要重启服务 横向扩展:通过分担压力的方式扩展集群的规模 纵向扩展:一台服务器cpu i7-6700k 4核心8线程,8核心16线程,内存64G => 128G
    • 延展性,Hive 支持自定义函数,用户可以根据自己的需求来实现自己的函数
    • 良好的容错性,可以保障即使有节点出现问题,SQL 语句仍可完成执行

    缺点

    • Hive 不支持记录级别的增删改操作,但是用户可以通过查询生成新表或者将查询结 果导入到文件中(当前选择的 hive-2.3.2 的版本支持记录级别的插入操作)
    • Hive 的查询延时很严重,因为 MapReduce Job 的启动过程消耗很长时间,所以不能 用在交互查询系统中。
    • Hive 不支持事务(因为不没有增删改,所以主要用来做 OLAP(联机分析处理),而 不是 OLTP(联机事务处理),这就是数据处理的两大级别)。

    Hive架构

     hive client我们一般用shell,hive metastore 我们一般配置成mysql。

    Hive数据模型

    Hive 中所有的数据都存储在 HDFS 中,没有专门的数据存储格式
    在创建表时指定数据中的分隔符,Hive 就可以映射成功,解析数据。

    Hive 中包含以下数据模型:

    • db :在 hdfs 中表现为 hive.metastore.warehouse.dir 目录下一个文件夹
    • table :在 hdfs 中表现所属 db 目录下一个文件夹
    • external table :数据存放位置可以在 HDFS 任意指定路径
    • partition :在 hdfs 中表现为 table 目录下的子目录
    • bucket :在 hdfs 中表现为同一个表目录下根据 hash 散列之后的多个文件
    • view:与传统数据库类似,只读,基于基本表创建

    Hive安装部署

    1,Hive 安装前需要安装好 JDK 和 Hadoop。配置好环境变量。

    2,上传安装文件 apache-hive-x.x.x-bin.tar.gz,并解压。

    3,配置HIVE_HOME环境变量

    vi  /export/servers/hive/conf/hive-env.sh 
    
    配置其中的HADOOP_HOME
    export HADOOP_HOME=/export/servers/hadoop-2.7.4

    4,配置元数据库信息,在conf文件夹内新添加hive-site.xml文件(分别配置mysql的位置,mysql的Driver,mysql的账号和密码)

    vi  hive-site.xml
    
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://192.168.44.31: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.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>root</value>
            <description>password to use against metastore database</description>
        </property>
    </configuration>

    5,把mysql-connector-java-5.1.32.jar上传到  Hive的lib文件夹中

    6,启动hive,我们一般把Hive当做服务启动

    启动Hive
    bin/hiveserver2
    
    启动成功后,可以在别的节点上用beeline去连接
    [root@bigdata-02 bin]# ./beeline 
    Beeline version 1.2.1 by Apache Hive
    beeline> ! connect jdbc:hive2://bigdata-01:10000
    Connecting to jdbc:hive2://bigdata-01:10000
    Enter username for jdbc:hive2://bigdata-01:10000: root
    Enter password for jdbc:hive2://bigdata-01:10000: ******
    Connected to: Apache Hive (version 1.2.1)
    Driver: Hive JDBC (version 1.2.1)
    Transaction isolation: TRANSACTION_REPEATABLE_READ
  • 相关阅读:
    Oracle工具的探索之旅(一)
    对ODB管理工具(EM,SQL Plus,Net Manager,Net Configuration Assistant,Administration Assistant for Windows,Database Configuration Assistant......)的简单认识
    偶然发现的VS2010的调试Watch查看也有F11的调试功能
    安装和卸载Oracle 10g数据库
    对Oracle的初步了解
    Oracle工具的探索之旅(二)
    对Oracle的初步认识
    [HDL]4/8/16/32/64位乘法器的设计(转)
    用ASP.NET WebForm的FileUpload控件上传文件
    C#图片和byte[]的互相转换
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9689398.html
Copyright © 2011-2022 走看看