微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

2021-05-22

2号晚上12点之前提交Hadoop笔记
    -》重难点
    -》二次排序、HA、yarn、hdfs
    -》MarkDown/有道笔记
    -》提交方式:邮箱,姓名+hadoop笔记
    
    
    
一、介绍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
                sqlMysqL、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程序
        
    
    
    
    
            
            
        
    
    
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐