• 企业级数据仓库-数仓实战


    数仓实战

    安装包大小

    在这里插入图片描述

    安装清单

    在这里插入图片描述

    环境搭建

    在这里插入图片描述

    一、环境搭建01(机器准备)

    准备好三台虚拟机,并进行修改hostname、在hosts文件增加ip地址和主机名映射 。

    1、设置每个虚拟机的hostname
    vi /etc/sysconfig/network 
    修改HOSTNAME=node02
    
    修改hostname
    hostnamectl set-hostname node02
    2、设置每个虚拟机的ip地址和主机名映射
    
    cat >>/etc/hosts<>/etc/hosts<>/etc/hosts<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    二、环境搭建02(脚本准备)
    在node01上操作:
    mkdir -p /home/hadoop
    unzip  automaticDeploy.zip -d /home/hadoop/
    
    cd /home/hadoop/automaticDeploy/
    vi host_ip.txt
    vi frames.txt
    上传frame.zip
    unzip frames.zip  -d /home/hadoop/automaticDeploy/
    
    chmod +x /home/hadoop/automaticDeploy/hadoop/*  /home/hadoop/automaticDeploy/systems/*
    
    ssh root@192.168.77.131 "mkdir -p /home/hadoop"
    ssh root@192.168.77.132 "mkdir -p /home/hadoop"
    
    scp -r /home/hadoop/automaticDeploy/ root@192.168.77.131:/home/hadoop/
    scp -r /home/hadoop/automaticDeploy/ root@192.168.77.132:/home/hadoop/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    三、环境搭建03(集群安装)
    在三台节点中执行
    cd /home/hadoop/automaticDeploy/systems/
    ./batchOperate.sh 
    
    安装Hadoop集群
    在三台节点中执行
    /home/hadoop/automaticDeploy/hadoop/installHadoop.sh 
    source /etc/profile
    
    安装下载失败的两个包
    scp -r /home/software/*.rpm root@192.168.77.131:/home/software/
    scp -r /home/software/*.rpm root@192.168.77.132:/home/software/
    rpm -ivh *.rpm
    
    三台都执行
    ssh-copy-id node01
    ssh-copy-id node02
    ssh-copy-id node03
    
    在node01上操作:初始化节点
    hadoop namenode -format
    #启动hadoop
    start-all.sh
    
    检查node01、node02、node03的jps(具体jps见下面截图)
    在node01上操作:
    curl http://node01:50070
    curl http://192.168.77.130:50070/
    
    在node02上执行
    /home/hadoop/automaticDeploy/hadoop/installMysql.sh
    测试MySQL
    mysql -uroot -p
    DBa2020*
    show databases;
    
    在node03执行
    /home/hadoop/automaticDeploy/hadoop/installHive.sh 
    
    /home/hadoop/automaticDeploy/hadoop/installSqoop.sh 
    source /etc/profile
    
    在三台节点中执行
    /home/hadoop/automaticDeploy/hadoop/installPresto.sh 
    
    在node03执行
    /home/hadoop/automaticDeploy/hadoop/installYanagishima.sh 
     
    所有节点都执行:
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    Hadoop log位置: /opt/app/hadoop-2.7.7/logs/

    在这里插入图片描述

    四、项目流程&数据生成
    Node02上执行:
    export MYSQL_PWD=DBa2020*
    mysql -uroot -e "create database mall;"
    
    mkdir -p /opt/app/scripts
    cd /opt/app/scripts/
    
    上传\数据生成脚本\*.sql到 /opt/app/scripts
    mysql -uroot mall <1建表脚本.sql 
    mysql -uroot mall <2商品分类数据插入脚本.sql 
    mysql -uroot mall <3函数脚本.sql 
    mysql -uroot mall <4存储过程脚本.sql 
    
    检查MySQL以上脚本执行结果:
    mysql
    
    use mall;
    #存储过程
    CALL init_data('2023-06-28',300,200,300,FALSE);
    select count(1) from user_info;
    show tables;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    在这里插入图片描述

    五、ETL数据导入
    node03上操作:
    mkdir -p  /home/warehouse/shell
    #文件路径:E:\1.后端培训\部署脚本\WarehouseScript
    vi /home/warehouse/shell/sqoop_import.sh
    cd /home/warehouse/shell
    chmod +x sqoop_import.sh
    #如果导入数据有问题,可以执行start-all.sh重启下hadoop集群重试
    ./sqoop_import.sh  all 2023-06-28
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    删除HDFS中文件夹
    hadoop fs -rm -r -skipTrash /origin_data/mall

    六、ODS层创建&数据接入
    node03上操作:
    hive --service hiveserver2  &
    hive --service metastore &
    在Hive中创建表
    mkdir -p  /home/warehouse/sql
    cd /home/warehouse/sql
    vi ods_ddl.sql
    hive -f  /home/warehouse/sql/ods_ddl.sql
    Hive如果有问题:jps找runjar kill -9 进程
    执行成功后从hive查看结果:
    hive
    show databases;
    use mall;
    show tables;
    cd /home/warehouse/shell
    chmod +x ods_db.sh 
    ./ods_db.sh  2023-06-28
    
    执行成功后到Hive查看结果:
    hive
    use mall;
    select count(1) from ods_user_info;
    结果为200条记录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述
    在这里插入图片描述

    七、DWD层创建&数据接入
    在Hive中创建表
    vi /home/warehouse/sql/dwd_ddl.sql
    
    hive -f  /home/warehouse/sql/dwd_ddl.sql 
    
    将数据导入到Hive
    cd /home/warehouse/shell
    chmod +x dwd_db.sh
    ./dwd_db.sh  2023-06-28
    
    执行成功后到Hive查看结果:
    hive
    use mall;
    select * from dwd_sku_info where dt='2023-06-28' limit 2;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    八、DWS层创建&数据接入
    在Hive中创建表(node03操作)
    vi /home/warehouse/sql/dws_ddl.sql 
    hive -f  /home/warehouse/sql/dws_ddl.sql 
    cd /home/warehouse/shell
    chmod +x dws_db.sh
    ./dws_db.sh  2023-06-28
    执行成功后到Hive查看结果
    hive
    use mall;
    select * from dws_user_action where dt='2023-06-28' limit 2;
    执行结果:
    1       1       189     1       189     2023-06-28
    100     1       85      1       85      2023-06-28
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    九、ADS层复购率统计
    在Hive中创建表(node03操作)
    vi /home/warehouse/sql/ads_sale_ddl.sql
    hive -f  /home/warehouse/sql/ads_sale_ddl.sql
    
    cd /home/warehouse/shell
    chmod +x ads_sale.sh
    ./ads_sale.sh  2023-06-28
    执行成功后到Hive查看结果
    hive
    use mall;
    select * from ads_sale_tm_category1_stat_mn limit 2;
    执行结果:
    NULL    NULL    NULL    152     140     0.92    100     0.78    2023-06 2023-06-28
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    十、ADS层数据导出
    node02上执行操作:
    mkdir -p /home/warehouse/sql
    cd /home/warehouse/sql
    
    export MYSQL_PWD=DBa2020*
    mysql -uroot mall 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    十一、Azkaban自动化调度
    在三台节点中执行
    /home/hadoop/automaticDeploy/hadoop/installAzkaban.sh
    source /etc/profile
    
    node02上执行操作:
    mysql
    use mall;
    CALL init_data('2023-09-09',300,300,300,FALSE);
    select count(1) from user_info WHERE create_time >= '2023-09-09' AND create_time < '2023-09-10';
    
    在三台节点中执行
    azkaban-executor-start.sh  &
    
    Node03上执行
    azkaban-web-start.sh  &
    使用Node03的IP地址
    在浏览器地址栏输入:https://192.168.77.132:8443
    用户名、密码都是:admin
    
    Flow Property Override
    dt  2023-09-09
    useExecutor  node03
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    重起集群
    需要先启动三台的hadoop
    
    #1、启动hadoop
    start-all.sh
    #2、启动hive
    node03上操作:
    hive --service hiveserver2  &
    hive --service metastore &
    #3、启动azkaban
    在三台节点中执行
    azkaban-executor-start.sh  &
    Node03上执行
    azkaban-web-start.sh  &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    windows系统使用软件异地同步数据(灾备)
    引擎之旅 Chapter.2 线程库
    2022鹏城杯web
    【STM32】入门(十一):初识uCOS-III
    SQL每日一题(多表查询 ==> 薪水高过经理的员工(自连接)
    11链表-迭代与递归
    Python 中的 Pandas(数据分析与处理)
    python 格式化字符串的方法
    进程信号详解
    《WEB前端框架开发技术》HTML5响应式旅游景区网站——榆林子州HTML+CSS+JavaScript
  • 原文地址:https://blog.csdn.net/zhuimeng_by/article/details/132924010