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

目录

[第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

相关推荐
运器12320 分钟前
【一起来学AI大模型】PyTorch DataLoader 实战指南
大数据·人工智能·pytorch·python·深度学习·ai·ai编程
mit6.8242 小时前
[es自动化更新] Updatecli编排配置.yaml | dockerfilePath值文件.yml
大数据·elasticsearch·搜索引擎·自动化
Jinkxs2 小时前
Elasticsearch 简介
大数据·elasticsearch·搜索引擎
亮学长3 小时前
lodash不支持 Tree Shaking 而 lodash-es可以
大数据·前端·elasticsearch
risc1234564 小时前
Elasticsearch 线程池
java·大数据·elasticsearch
树谷-胡老师4 小时前
1965–2022年中国大陆高分辨率分部门用水数据集,包含:灌溉用水、工业制造用水、生活用水和火电冷却
大数据·数据库·arcgis
TDengine (老段)6 小时前
TDengine 集群部署及启动、扩容、缩容常见问题与解决方案
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
青云交8 小时前
Java 大视界 -- Java 大数据机器学习模型在电商用户复购行为预测与客户关系维护中的应用(343)
java·大数据·机器学习·数据安全·电商复购·地域适配·边疆电商
贝塔西塔8 小时前
PySpark中python环境打包和JAR包依赖
大数据·开发语言·python·spark·jar·pyspark
保持学习ing9 小时前
day4--上传图片、视频
java·大数据·数据库·文件上传·minio·分布式文件系统·文件存储