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

目录

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

相关推荐
zhang98800001 小时前
储能领域大数据平台的设计中如何使用 Hadoop、Spark、Flink 等组件实现数据采集、清洗、存储及实时 / 离线计算,支持储能系统分析与预测
大数据·hadoop·spark
老蒋新思维1 小时前
存量竞争下的破局之道:品牌与IP的双引擎策略|创客匠人
大数据·网络·知识付费·创客匠人·知识变现
Lx3523 小时前
Hadoop日志分析实战:快速定位问题的技巧
大数据·hadoop
喂完待续6 小时前
【Tech Arch】Hive技术解析:大数据仓库的SQL桥梁
大数据·数据仓库·hive·hadoop·sql·apache
SelectDB6 小时前
5000+ 中大型企业首选的 Doris,在稳定性的提升上究竟花了多大的功夫?
大数据·数据库·apache
最初的↘那颗心6 小时前
Flink Stream API 源码走读 - window 和 sum
大数据·hadoop·flink·源码·实时计算·窗口函数
Yusei_05238 小时前
迅速掌握Git通用指令
大数据·git·elasticsearch
一只栖枝14 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
喂完待续19 小时前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
青云交19 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图