大数据技术——实战项目:广告数仓(第四部分)

目录

[第7章 数据仓库环境准备](#第7章 数据仓库环境准备)

[7.1 数据仓库运行环境](#7.1 数据仓库运行环境)

[7.1.1 Hive环境搭建](#7.1.1 Hive环境搭建)

[7.1.2 Yarn环境配置](#7.1.2 Yarn环境配置)

[7.2 数据仓库开发环境](#7.2 数据仓库开发环境)

[第8章 广告数仓ODS层](#第8章 广告数仓ODS层)

[8.1 广告信息表](#8.1 广告信息表)

[8.2 推广平台表](#8.2 推广平台表)

[8.3 产品表](#8.3 产品表)

[8.4 广告投放表](#8.4 广告投放表)

[8.5 日志服务器列表](#8.5 日志服务器列表)

[8.6 广告监测日志表](#8.6 广告监测日志表)

[8.7 数据装载脚本](#8.7 数据装载脚本)


第7章 数据仓库环境准备

7.1 数据仓库运行环境

7.1.1 Hive 环境搭建

1 Hive 安装

大数据技术------Hive的安装与部署-CSDN博客

2 Hive on Spark 配置

本项目使用Spark最为Hive的计算引擎。

1 )兼容性说明

注意:官网下载的Hive3.1.3和Spark3.3.0默认是不兼容的。因为Hive3.1.3支持的Spark版本是2.3.0,所以需要我们重新编译Hive3.1.3版本。

编译步骤:官网下载Hive3.1.3源码,修改pom文件中引用的Spark版本为3.3.0,如果编译通过,直接打包获取jar包。如果报错,就根据提示,修改相关方法,直到不报错,打包获取jar包。

2 )在 Hive 所在节点部署 spark-3.3.1-bin-hadoop3.tgz

①Spark官网下载安装包地址:

Downloads | Apache Spark

②上传并解压解压spark-3.3.1-bin-hadoop3.tgz

atguigu@hadoop102 software\]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/ \[atguigu@hadoop102 software\]$ mv /opt/module/ spark-3.3.1-bin-hadoop3.tgz /opt/module/spark ③修改spark-env.sh配置文件 修改文件名。 \[atguigu@hadoop102 software\]$ mv /opt/module/spark/conf/spark-env.sh.template /opt/module/spark/conf/spark-env.sh 编辑文件 \[atguigu@hadoop102 software\]$ vim /opt/module/spark/conf/spark-env.sh 增加如下内容。 export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop/ **(** **3** **)配置** **SPARK_HOME** **环境变量** \[atguigu@hadoop102 software\]$ sudo vim /etc/profile.d/my_env.sh 添加如下内容。 ```bash # SPARK_HOME export SPARK_HOME=/opt/module/spark export PATH=$PATH:$SPARK_HOME/bin ``` source 使其生效。 \[atguigu@hadoop102 software\]$ source /etc/profile.d/my_env.sh **(** **4** **)在** **hive** **中创建** **spark** **配置文件** \[atguigu@hadoop102 software\]$ vim /opt/module/hive/conf/spark-defaults.conf 添加如下内容(在执行任务时,会根据如下参数执行)。 ```XML spark.master yarn spark.eventLog.enabled true spark.eventLog.dir hdfs://hadoop102:8020/spark-history spark.executor.memory 1g spark.driver.memory 1g spark.yarn.populateHadoopClasspath true ``` 在HDFS创建如下路径,用于存储历史日志。 \[atguigu@hadoop102 software\]$ hadoop fs -mkdir /spark-history **(** **5** **)向** **HDFS** **上传** **Spark** **纯净版** **jar** **包** 说明1:采用Spark纯净版jar包,不包含hadoop和hive相关依赖,能避免依赖冲突。 说明2:Hive任务最终由Spark来执行,Spark任务资源分配由Yarn来调度,该任务有可能被分配到集群的任何一个节点。所以需要将Spark的依赖上传到HDFS集群路径,这样集群中任何一个节点都能获取到。 **Ⅰ、在HDFS创建路径** \[atguigu@hadoop102 software\]$ hadoop fs -mkdir /spark-jars **Ⅱ、解压Spark纯净版** \[atguigu@hadoop102 software\]$ tar -zxvf spark-3.3.1-bin-without-hadoop.tgz **Ⅲ、上传纯净版jar包** \[atguigu@hadoop102 spark\]$ hadoop fs -put spark-3.3.1-bin-without-hadoop/jars/\* /spark-jars **(** **6** **)修改** **hive-site.xml** **文件** \[atguigu@hadoop102 \~\]$ vim /opt/module/hive/conf/hive-site.xml 添加如下内容。 ```XML spark.yarn.jars hdfs://hadoop102:8020/spark-jars/* hive.execution.engine spark ``` **3** **)** **Hive on Spark** **测试** (1)启动hive客户端 \[atguigu@hadoop102 hive\]$ hive (2)创建一张测试表 hive (default)\> create table student(id int, name string); (3)通过insert测试效果 hive (default)\> insert into table student values(1,'abc'); 若结果如下,则说明配置成功。 ![](https://i-blog.csdnimg.cn/direct/62e70a5d50e54ca7b0c43b9776a52a5d.png) **4** **)超时问题解决** 如果出现超时问题,可以在hive-site.xml文件中添加连接超时的时间参数: ```XML hive.spark.client.connect.timeout 5000ms ``` #### **7.1.2 Yarn** **环境配置** **1** **)增加** **ApplicationMaster** **资源比例** 容量调度器对每个资源队列中同时运行的Application Master占用的资源进行了限制,该限制通过yarn.scheduler.capacity.maximum-am-resource-percent参数实现,其默认值是0.1,表示每个资源队列上Application Master最多可使用的资源为该队列总资源的10%,目的是防止大部分资源都被Application Master占用,而导致Map/Reduce Task无法执行。 生产环境该参数可使用默认值。但学习环境,集群资源总数很少,如果只分配10%的资源给Application Master,则可能出现,同一时刻只能运行一个Job的情况,因为一个Application Master使用的资源就可能已经达到10%的上限了。故此处可将该值适当调大。 (1)在hadoop102的/opt/module/**hadoop/etc/hadoop/capacity-scheduler.xml** 文件中**修改**如下参数值 \[atguigu@hadoop102 hadoop\]$ vim capacity-scheduler.xml ```XML yarn.scheduler.capacity.maximum-am-resource-percent 0.8

相关推荐
字节跳动数据平台16 小时前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术17 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
武子康19 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康2 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天2 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康4 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康5 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库5 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟5 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体