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

Hive-入门

Hive-入门

一、 数据仓库

1. 数据仓库的基本概念

        简称DW,Data Houseware。专门存储数据,构建面向分析的集成化数据环境,主要职责是做数据分析以支持决策。

2.数据分析的特征:

        面向主题:数据分析有一定的范围,需要选择一定的主题进行分析

        集成性:集成各个其他方面关联的一些数据。比如分析订单购买人的情况,会涉及用户信息

        非易失性:数据分析主要是分析过去已经发生的数据,分析的数据都是确定的事实,不会再改变

        时变性:随着时间的发展,数据的形态也在发生变化,数据分析的手段也要进行相应的改变

3. 数据仓库与数据库区别 

        数据库:OLTP,联机事务处理;数据库主要的功能就是用来做事务处理,主要负责频繁的增删改查。

        数据仓库:OLAP(On-Line Analytical Processing),联机的分析处理,不需要做事务的保证,主要职责就是针对某些主题的历史数据进行分析,支持管理决策。

        数据库的数据,允许增删改;数据仓库的数据,一般不建议不允许增删改;

4、数据仓库分层架构

        按照数据流入流出的过程,数据仓库架构可分为三层——源数据、数据仓库、数据应用。

        第一层:源数据层,又叫ODS,产生数据的地方

        第二层:数据仓库层,又叫DW,主要集中存储数据,面向主题进行分析

        第三步:数据应用层,又叫APP层,主要用于展示分析之后的数据结果

        数据在这三层之间的一个流动,称之为ETL的过程

        ETL:extrat(抽取),transform(转换),load(加载)

        数据从源数据层流向数据仓库层再流向APP层

        数据仓库分层的目的:使每一层职责更清晰 

5、数据仓库元数据管理

        元数据(meta Date),定义数据架构,数据的位置,数据的信息,记录的是数据仓库当中的数据如何进行处理的一整套的过程

二、Hive基本概念 1.什么是Hive

         HIve是基于hadoop的一个数据仓库的处理工具,专门用于数据仓库的数据分析。它将结构化的数据映射成为一张数据库表,并提供类SQL查询功能。本质是将SQL语句转换为MapReduce的任务进行执行。

2.Hive当中的元数据信息

        主要描述了Hive表与HDFS的数据之间的映射关系,包括字段的映射,数据位置的保存。一般都保存在MySQL或者oracle里面等等。数据的存储:用的是HDFS;数据的计算:用的是MapReduce。

3.Hive架构

        用户接口:包括CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。

        元数据存储:通常是存储在关系数据库如mysql/derby中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

        解释器、编译器、优化器、执行器:完成HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS 中,并在随后有MapReduce 调用执行。

4.Hive与Hadoop的关系

        Hive利用HDFS存储数据,利用MapReduce查询分析数据

三.HIVE的安装部署 

  • 1.解压hive
    cd /opt/software
    tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../module/
    
    2.直接启动  bin/hive
    cd ../module/
    cd hive-1.1.0-cdh5.14.0/
    bin/hive
    
    3.Linux-MySQL安装

            1.新建文件夹/opt/mysql,并cd进去

           2.运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包

            PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。

            3.运行tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

            4.运行rpm -qa|grep mari,查询mariadb相关安装包

            5.运行rpm -e --nodeps mariadb-libs,卸载

            6.然后开始真正安装mysql,依次运行以下几条

                    rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

                    rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

                    rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

                    rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

           7. 运行systemctl start mysqld.service,启动mysql

           8.然后开始设置root用户密码

           Mysql自动给root用户设置随机密码,运行grep "password" /var/log/mysqld.log可看到当前密码

            9.运行mysql -u root  -p,用root用户登录,提示输入密码可用上述的,可以成功登陆进入mysql命令行

            10.设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行set global validate_password_policy=0;提示密码设置策略(validate_password_policy默认值1,)

            11.set password for 'root'@'localhost' =password('12345678');

            12.授权MySQL允许远程连接

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

            13.运行flush privileges;使密码设置生效

    4.修改hive的配置文件

    修改hive-env.sh 

    cd  /opt/module/hive-1.1.0-cdh5.14.0/conf
    cp hive-env.sh.template hive-env.sh
    vim hive-env.sh
    

    HADOOP_HOME=/opt/module/hadoop-2.6.0-cdh5.14.0

    # Hive Configuration Directory can be controlled by:

    export HIVE_CONF_DIR=/opt/module/hive-1.1.0-cdh5.14.0/conf

     修改hive-site.xml

    cd /opt/module/hive-1.1.0-cdh5.14.0/conf
    vim hive-site.xml
    
    
    
            
                    javax.jdo.option.ConnectionURL
                    jdbc:mysql://hadoop104:3306/hive?createDatabaseIfNotExist=true
            
    
            
                    javax.jdo.option.ConnectionDriverName
                    com.mysql.jdbc.Driver
            
            
                    javax.jdo.option.ConnectionUserName
                    root
            
            
            
                    javax.jdo.option.ConnectionPassword
                    12345678
            
            
                    hive.cli.print.current.db
                    true
            
            
                    hive.cli.print.header
                    true
            
            
                    hive.server2.thrift.bind.host
                    node03.hadoop.com
            
    
    
    

     上传MySQL的lib驱动包

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

    cd /opt/module/hive-1.1.0-cdh5.14.0/lib

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

    四.使用方式 第一种交互方式:Hive交互shell
    cd /opt/module/hive-1.1.0-cdh5.14.0
    
    bin/hive

    查看所有的数据库

    hive (default)> show databases;

    创建一个数据库

    hive (default)> create database myhive;

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

    hive (default)> use myhive;
    
    hive (myhive)> create table test(id int,name string);
    第二种交互方式:Hive JDBC服务 启动hiveserver2服务

            a.连接服务端

    前台启动

    cd  /opt/module/hive-1.1.0-cdh5.14.0
    bin/hive --service hiveserver2
    
    后台启动

            b.连接客户端

    beeline连接hiveserver2

    bin/beeline
    beeline> !connect jdbc:hive2://hadoop103:10000
    
    第三种交互方式:Hive命令

    使用 –e  参数来直接执行hql的语句

    bin/hive -e "use myhive;select * from test;"

    使用 –f  参数通过指定文本文件来执行hql的语句

    vim hive.sql
    
    use myhive;select * from test;
    
    bin/hive -f hive.sql

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

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

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