企业级数据仓库-数仓实战
数仓实战
安装包大小
安装清单
环境搭建
一、环境搭建01(机器准备)
准备好三台虚拟机,并进行修改hostname、在hosts文件增加ip地址和主机名映射 。
1、设置每个虚拟机的hostname
vi /etc/sysconfig/network
修改HOSTNAME=node02修改hostname
hostnamectl set-hostname node02
2、设置每个虚拟机的ip地址和主机名映射cat >>/etc/hosts<<EOF
192.168.77.130 node01
EOFcat >>/etc/hosts<<EOF
192.168.77.131 node02
EOFcat >>/etc/hosts<<EOF
192.168.77.132 node03
EOF检查结果
ping `cat /etc/hostname`
二、环境搭建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/
三、环境搭建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
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以上脚本执行结果:
mysqluse mall;
#存储过程
CALL init_data('2023-06-28',300,200,300,FALSE);
select count(1) from user_info;
show tables;
五、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
删除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条记录
七、DWD层创建&数据接入
在Hive中创建表
vi /home/warehouse/sql/dwd_ddl.sqlhive -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;
八、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
九、ADS层复购率统计
在Hive中创建表(node03操作)
vi /home/warehouse/sql/ads_sale_ddl.sql
hive -f /home/warehouse/sql/ads_sale_ddl.sqlcd /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
十、ADS层数据导出
node02上执行操作:
mkdir -p /home/warehouse/sql
cd /home/warehouse/sqlexport MYSQL_PWD=DBa2020*
mysql -uroot mall </home/warehouse/sql/mysql_sale_ddl.sqlnode03上执行操作:
cd /home/warehouse/shell
chmod +x sqoop_export.sh
./sqoop_export.sh all到mysql查看执行结果(node02上执行操作):
export MYSQL_PWD=DBa2020*
mysql
use mall;
select * from ads_sale_tm_category1_stat_mn;
十一、Azkaban自动化调度
在三台节点中执行
/home/hadoop/automaticDeploy/hadoop/installAzkaban.sh
source /etc/profilenode02上执行操作:
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
用户名、密码都是:adminFlow Property Override
dt 2023-09-09
useExecutor node03
重起集群
需要先启动三台的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 &
相关文章:

企业级数据仓库-数仓实战
数仓实战 安装包大小 安装清单 环境搭建 一、环境搭建01(机器准备) 准备好三台虚拟机,并进行修改hostname、在hosts文件增加ip地址和主机名映射 。 1、设置每个虚拟机的hostname vi /etc/sysconfig/network 修改HOSTNAMEnode02修改hostna…...

Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等)
Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等) 准备文件,这里我放在resource下的templates路径 在pom中配置构建打包的资源,更新maven 如果使用了assembly打包插件这样配置可能仍不生效&#…...

Ansible数组同步至Shell脚本数组中
1、ansible中定义数组,我以 ccaPojectList 数组为例子,如下图数组内容 2、需要写一个j2模板的Shell脚本,在j2模板的Shell脚本中引用ansible的 ccaPojectList 数组,大致如下图: {% for item in ccaPojectList %} "{{ item }…...

私域流量的优势
私域流量是指由自身品牌或个人拥有并具备完全掌控权的流量资源。它相比于传统的广告推广,拥有独特的优势。 首先,私域流量能够更加精准地定位目标用户,实现精准传播。不再盲目投放广告,而是通过建立自身社群、粉丝群,获…...
Java 中“1000==1000”为false,而”100==100“为true?
如果你运行下面的代码: Integer a 1000, b 1000; System.out.println(a b);//1Integer c 100, d 100; System.out.println(c d);//2你会得到: false true基本知识:我们知道,如果两个引用指向同一个对象,用表示它们是相等的。如果两…...

片上网络(1)概述
前言 NoC:On-Chip Networks,片上网络。 由于多核乃至众核时代的到来,用于连接它们的可扩展、低延迟、大带宽的通信结构变得至关重要。 在核心较少时,总线Bus和矩阵/交叉开关Crossbar是主要的互联结构。总线可以提供较低的传输延迟…...

使用 React Native 针对 Android 进行开发
🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 概述 通过安装所需工具开始使用 React Native 创建新的 React Native 项目 本指南将有助于开始使用 Windows 上的…...
LeetCode 每日一题 2023/9/11-2023/9/17
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/11 630. 课程表 III9/12 1462. 课程表 IV9/13 2596. 检查骑士巡视方案9/14 1222. 可以攻击国王的皇后9/15 LCP 50. 宝石补给9/16 198. 打家劫舍9/17 9/11 630. 课程表 II…...
Linux系统调试篇——GDBSERVER远程调试
文章目录 安装 GDBSERVERgdbserver 用法具体步骤 本篇讲解如何使用gdbserver对目标开发板上的程序进行远程调试。 安装 GDBSERVER 首先在开发板上安装 gdbserver: apt install gdbservergdbserver 用法 gdbserver用法描述: Usage: gdbserver [OPTION…...

前端实现打字效果
前端实现打字效果 不带光标 只一次播放 HTML <!-- 需要在初始化的时候不显示文字 --> <div id"typing"></div>CSS #typing {position: relative;font-size: 24px;font-family: Arial, sans-serif;padding: 10px; }JS const text "要显…...
Unix和Linux、GNU和GPL、RHEL和Centos、Debian和Ubuntu
文章目录 Unix和LinuxGNU和GPLGNU/Linux名称的来源RHEL和CentosDebian和Ubuntu 以上都是操作系统,服务器操作系统、桌面操作系统。 对于刚刚接触Linux系统或者从事运维相关工作的人来说,肯定会听过很多名词,但是不知道他们的区别和联系&#…...

InfiniBand vs 光纤通道,存储协议的选择
数字时代,数据量爆发增长,企业越来越迫切地追求高吞吐量、低延迟和更高性能的网络基础设施,存储协议的选择变得愈发至关重要。在众多存储协议中,InfiniBand和光纤通道备受关注。本文旨在深入探讨InfiniBand和光纤通道作为存储协议…...

第2章_freeRTOS入门与工程实践之单片机程序设计模式
本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id724601559592 配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…...
python LeetCode 刷题记录 58
题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 输入:s "Hello World" 输出:5 解释&am…...

HarmonyOS开发:那些开发中常见的问题汇总(一)
前言 本来这篇文章需要讲述静态共享包如何实现远程依赖和上传以及关于静态共享包私服的搭建,非常遗憾的告诉大家,由于组织管理申请迟迟未通过,和部分文档官方权限暂未开放,关于这方面的讲解需要延后了,大概需要等到202…...

新能源汽车驱动电机的基本知识
学习目标:了解电机的基本知识。能力目标:培养学生搜集和整理相关资料的能力。素质目标:培养学生良好的职业素养。额定电店.在夫见定条件下电池工作的*于佳 电压知识准备术语和定义。 (1)驱动电机系统 通过有效的控制策略将动力蓄电池提供的直流电转化为交流实现电机的正转以及反…...
流媒体协议——RTSP
RTSP RTSP(Real Time Streaming Protocol):实时流媒体协议,是基于文本的协议,采用ISO10646字符集,使用UTF-8编码 RTSP-over-TCP,默认端口554 RTSP-over-HTTP,默认端口为8080 RTSP OVER WebSocket 默认端口为 80&am…...

Arcgis提取点数据经纬度
Arcgis提取点数据经纬度 现已打开tiff影像和采样点的shape文件。目标是提取采样点的经纬度信息然后导出。 打开数据管理工具-要素-添加XY坐标 在点的图层上右击打开属性表时,经纬度信息已经添加到属性表中。 在属性表的左上角中点击导出,导出为文本文…...

【小记录】jupyter notebook新版本
手欠升级 😅今天手贱,在anaconda navigator里面更新了最新版本的spyder,然后莫名奇妙地jupyter notebook就打不开了😅,报错说缺少模块”ModuleNotFoundError: No module named jupyter_server.contents“,…...

Ubuntu安装深度学习环境相关(yolov8-python部署)
Ubuntu安装深度学习环境相关(yolov8-python部署) 本文将从如下几个方面总结相关的工作过程: Ubuntu系统安装(联想小新pro16) 2.显卡驱动安装3.测试深度学习模型 1. Ubunut 系统安装 之前在台式机上安装过Ubuntu,以为再在笔记本上安装会是小菜一碟&…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...