day13


    -》重难点
    -》二次排序、HA、yarn、hdfs
    -》MarkDown/有道笔记
 

一、介绍Hive
    -》来源:Facebook
        -》2008年
        -》原因:
            -》MapReduce编程十分麻烦
                -》driver、Mapper、reduce
                -》java 开发
            -》缺少大量的开发人员,DBA(数据分析)
    -》发展以及版本
        -》0.x:0.13.1        
        -》1.x:1.2.1        常见
            MapReduce/Tez/Spark
        -》2.x:2.1.0         生产环境中很少见
            hive MLlib
        
        -》区别:
            -》性能越来越高效
            -》越来越像关系型数据库
            
    -》应用场景
        -》使用SQL来解决大数据存储及大数据分析问题
        -》直接使用SQL就可以对数据进行分析开发
        
        hadoop    hbase    spark
        hive    hadoop        
        mapreduce:java 100行
            hadoop,1    
            hbase,1
            spark,1
            hive,1
            hadoop,1
            分组:将相同key的value合并
        SQL:wordcount:每个单词出现的次数
select
    word,count(word) as cnt
from
    testSql
group by 
    word
order by 
    cnt desc;
    -》应用
        -》构建数据仓库
        -》用户画像
        -》ETL(抽取、转换、加载)
            -》数据采集:hdfs
            -》数据清洗:etl
            -》数据分析
            -》数据展示
        -》结构化数据
            -》结构化:固定行和列
            -》半结构化
            -》非结构化

-》如何在hive中实现wordcount
        hadoop    hbase    spark
        hive    hadoop
    -》将一行转为多行,一行一个单词
        explode:行列转换的函数
    -》对单词进行分组统计
        hadoop
        hbase
        spark
        hive
        hadoop

    -》原理
        -》基于hadoop之上
            -》存储:hdfs/hbase(hdfs)
            -》计算:MapReduce
        -》功能:
            -》将SQL语句转换为MapReduce程序
                MapReduce默认输入读hdfs文件来进行处理
                ||
                SQL处理的数据也是hdfs文件
                ||
                SQL处理表中的数据
                
            -》将hdfs文件变成表格
                表格:固定的行和列
                       ||
                日志:固定的行和列
            -》hive:hdfs+mapreduce
                -》hadoop的客户端(SQL)
            
    -》特点:
        -》数据仓库/数据集市/数据仓库建模
        -》使用SQL对大数据进行分析
            -》SQL:DDL/DML
                数据定义语言:create
                数据操作语言:update、delete、select、insert
                SQL:mysql、oracle
                    create、update、delete、select、insert
                HQL:Hive、spark SQL
                    create、select、insert(不做行级的事务)
                
            -》hadoop
                -》hdfs:分布式存储
                -》MapReduce:分布式计算
            -》SQL on Hadoop = Hive
                -》presto:京东
                -》impala:cloudera
        -》存储:hdfs
        -》计算:
            MapReduce    =》 java、scala、Python
            Hive        =》    HQL(SQL)
        -》地址:hive.apache.org
            hadoop.apache.org
            flume.apache.org
            spark.apache.org
            sqoop.apache.org
            oozie.apache.org
        -》支持udf/自定义存储格式
            -》user define function
                -》自己开发一个函数,打成jar包
                -》放入hive中,使用自己开发的函数
                
二、安装部署hive
    -》简单安装
        -》下载解压
            apache-hive-1.2.1-bin.tar.gz 
            tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/modules/
        -》修改配置
            mv hive-env.sh.template hive-env.sh
            mv hive-log4j.properties.template hive-log4j.properties
            mv beeline-log4j.properties.template beeline-log4j.properties
            mv hive-exec-log4j.properties.template hive-exec-log4j.properties
            
            -》修改hive-env.sh
            HADOOP_HOME=/opt/modules/hadoop-2.7.3
            export HIVE_CONF_DIR=/opt/modules/hive-1.2.1-bin/conf
        -》配置hdfs
            -》hive的数据仓库结构(与数据库类似)
                -》数据库(目录)、表(目录)、表的数据(文件)
                -》给定hive在HDFS上数据仓库的地址
                  bin/hdfs dfs -mkdir       /tmp
                  bin/hdfs dfs -mkdir  -p /user/hive/warehouse
                  bin/hdfs dfs -chmod g+w   /tmp
                  bin/hdfs dfs -chmod g+w   /user/hive/warehouse
        -》启动服务
            -》启动客户端直接连接服务端
                bin/hive
        -》测试
            -》SQL
            
    -》怎么学习hive
        -》Hadoop:hdfs+MapReduce+Yarn
            -》将hdfs上的文件变成了表格
            -》将SQL转换为MapReduce程序提交给yarn去执行
        -》HQL:SQL
        
create database if not exists wordcount;
use wordcount;

drop table if exists wc;
create table wc(
id int,
word string
)
row format delimited fields terminated by '\t'
LINES TERMINATED BY '\n';

-》把文件映射成表
    -》怎么将文件中每一列与表格中的每一列一一对应
        -》在创建表时,根据文件行和列的分割符来指定表创建时的分隔符
            指定列:row format delimited fields terminated '\t'
            指定行:LINES TERMINATED BY '\n'
            
        -》查看表的信息
            desc wc;
            desc formatted wc;
        -》加载数据到表中
            load data local inpath '/opt/datas/hivetest.txt' into table wc;
        
        
    -》hive实现的原理
        -》用户提交SQL语句
        -》hive判断SQL语句是否合法
            -》语法是否正确?
            -》表、数据库、是否存在?
        -》hive根据表和数据库的信息到hdfs上查找对应的文件
        -》hive将表目录下所有的文件作为MapReduce程序的输入
        -》封装好底层的MapReduce程序提交给yarn去执行
        -》将处理后的结果返回
    -》hive将所有表、数据库、文件等一一对应的信息存在数据库中
        -》hive的元数据:默认情况使用hive自带的derby数据库进行存储
            -》表、文件、数据库等等之间的关系
            -》所有表、文件、数据库在hdfs上的位置
            -》默认的Derby数据库不适合生产环境
                -》文本数据库
        -》工作中一般使用mysql来存储hive的元数据
    
    
    -》hive的组成
        -》hadoop
            -》文件的存储:hdfs
            -》数据的计算:MapReduce、yarn
        -》metastore:元数据
            -》表、文件、数据库等等之间的关系
            -》所有表、文件、数据库在hdfs上的位置
        -》Driver:将SQL语句转换为MapReduce程序

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值