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

目录

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

相关推荐
IT成长日记3 小时前
【Hadoop入门】Hadoop生态之MapReduce简介
大数据·hadoop·mapreduce
Apache Flink3 小时前
Dinky 和 Flink CDC 在实时整库同步的探索之路
大数据·flink
成长之路5144 小时前
【实证分析】数智化转型对制造企业全要素生产率的影响及机制探究(1999-2023年)
大数据
黑眼圈的小熊猫5 小时前
Git开发
大数据·git·elasticsearch
涛思数据(TDengine)5 小时前
虚拟表、TDgpt、JDBC 异步写入…TDengine 3.3.6.0 版本 8 大升级亮点
大数据·数据库·tdengine
goTsHgo6 小时前
Flink的 RecordWriter 数据通道 详解
大数据·flink
Romantic Rose7 小时前
你所拨打的电话是空号?手机状态查询API
大数据·人工智能
随缘而动,随遇而安7 小时前
第四十六篇 人力资源管理数据仓库架构设计与高阶实践
大数据·数据库·数据仓库·sql·数据库架构
小宋10218 小时前
Linux安装Elasticsearch详细教程
大数据·elasticsearch·搜索引擎