当前位置: 首页 > news >正文

室内设计师官网网站优化北京如何联系?

室内设计师官网,网站优化北京如何联系?,字体设计类网站,我想网目录 第7章 数据仓库环境准备 7.1 数据仓库运行环境 7.1.1 Hive环境搭建 7.1.2 Yarn环境配置 7.2 数据仓库开发环境 第8章 广告数仓ODS层 8.1 广告信息表 8.2 推广平台表 8.3 产品表 8.4 广告投放表 8.5 日志服务器列表 8.6 广告监测日志表 8.7 数据装载脚本 第7章…

目录

第7章 数据仓库环境准备

7.1 数据仓库运行环境

7.1.1 Hive环境搭建

7.1.2 Yarn环境配置

7.2 数据仓库开发环境

第8章 广告数仓ODS层

8.1 广告信息表

8.2 推广平台表

8.3 产品表

8.4 广告投放表

8.5 日志服务器列表

8.6 广告监测日志表

8.7 数据装载脚本


第7章 数据仓库环境准备

7.1 数据仓库运行环境

7.1.1 Hive环境搭建

1Hive安装

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

2Hive 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

添加如下内容。

# 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

添加如下内容(在执行任务时,会根据如下参数执行)。

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

添加如下内容。

<!--Spark依赖位置(注意:端口号8020必须和namenode的端口号一致)-->
<property><name>spark.yarn.jars</name><value>hdfs://hadoop102:8020/spark-jars/*</value>
</property><!--Hive执行引擎-->
<property><name>hive.execution.engine</name><value>spark</value>
</property>

3Hive 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');

若结果如下,则说明配置成功。

4)超时问题解决

如果出现超时问题,可以在hive-site.xml文件中添加连接超时的时间参数:

<property><name>hive.spark.client.connect.timeout</name><value>5000ms</value>
</property>

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

<property><name>yarn.scheduler.capacity.maximum-am-resource-percent</name><value>0.8</value>
</property

(2)分发capacity-scheduler.xml配置文件

[atguigu@hadoop102 hadoop]$ xsync capacity-scheduler.xml

(3)关闭正在运行的任务,重新启动yarn集群

[atguigu@hadoop103 hadoop]$ stop-yarn.sh

[atguigu@hadoop103 hadoop]$ start-yarn.sh

7.2 数据仓库开发环境

        数仓开发工具可选用DBeaver或者DataGrip。两者都需要用到JDBC协议连接到Hive,故需要启动HiveServer2。

1)启动HiveServer2

[atguigu@hadoop102 hive]$ hiveserver2

2)配置DataGrip连接

1)创建连接

2)配置连接属性

        所有属性配置,和Hive的beeline客户端配置一致即可。初次使用,配置过程会提示缺少JDBC驱动,按照提示下载即可。

3)测试使用

创建数据库ad,并观察是否创建成功。

1)创建数据库

2)修改数据库

第8章 广告数仓ODS层

ODS层的设计要点如下:

(1)ODS层的表结构设计依托于从业务系统同步过来的数据结构。

(2)ODS层要保存全部历史数据,故其压缩格式应选择压缩比较高的,此处选择gzip。

(3)ODS层表名的命名规范为:ods_表名_单分区增量全量标识(inc/full)。

8.1 广告信息表

建表语句

drop table if exists ods_ads_info_full;
create external table if not exists ods_ads_info_full
(id           STRING comment '广告编号',product_id   STRING comment '产品id',material_id  STRING comment '素材id',group_id     STRING comment '广告组id',ad_name      STRING comment '广告名称',material_url STRING comment '素材地址'
) PARTITIONED BY (`dt` STRING)row format delimited fields terminated by '\t'LOCATION '/warehouse/ad/ods/ods_ads_info_full';

8.2 推广平台表

建表语句

drop table if exists ods_platform_info_full;
create external table if not exists ods_platform_info_full
(id               STRING comment '平台id',platform_name_en STRING comment '平台名称(英文)',platform_name_zh STRING comment '平台名称(中文)'
) PARTITIONED BY (`dt` STRING)row format delimited fields terminated by '\t'LOCATION '/warehouse/ad/ods/ods_platform_info_full';

8.3 产品表

建表语句

drop table if exists ods_product_info_full;
create external table if not exists ods_product_info_full
(id    STRING comment '产品id',name  STRING comment '产品名称',price decimal(16, 2) comment '产品价格'
) PARTITIONED BY (`dt` STRING)row format delimited fields terminated by '\t'LOCATION '/warehouse/ad/ods/ods_product_info_full';

8.4 广告投放表

建表语句

drop table if exists ods_ads_platform_full;
create external table if not exists ods_ads_platform_full
(id          STRING comment '编号',ad_id       STRING comment '广告id',platform_id STRING comment '平台id',create_time STRING comment '创建时间',cancel_time STRING comment '取消时间'
) PARTITIONED BY (`dt` STRING)row format delimited fields terminated by '\t'LOCATION '/warehouse/ad/ods/ods_ads_platform_full';

8.5 日志服务器列表

建表语句

drop table if exists ods_server_host_full;
create external table if not exists ods_server_host_full
(id   STRING comment '编号',ipv4 STRING comment 'ipv4地址'
) PARTITIONED BY (`dt` STRING)row format delimited fields terminated by '\t'LOCATION '/warehouse/ad/ods/ods_server_host_full';

8.6 广告监测日志表

建表语句

drop table if exists ods_ad_log_inc;
create external table if not exists ods_ad_log_inc
(time_local  STRING comment '日志服务器收到的请求的时间',request_method STRING comment 'HTTP请求方法',request_uri        STRING comment '请求路径',status      STRING comment '日志服务器相应状态',server_addr   STRING comment '日志服务器自身ip'
) PARTITIONED BY (`dt` STRING)row format delimited fields terminated by '\u0001'LOCATION '/warehouse/ad/ods/ods_ad_log_inc';

8.7 数据装载脚本

1hadoop102/home/atguigu/bin目录下创建ad_hdfs_to_ods.sh

[atguigu@hadoop102 bin]$ vim ad_hdfs_to_ods.sh

2)编写如下内容

#!/bin/bashAPP=adif [ -n "$2" ] ;thendo_date=$2
elsedo_date=`date -d '-1 day' +%F`
fi#声明一个Map结构,保存ods表名与origin_data路径的映射关系
declare -A tableToPath
tableToPath["ods_ads_info_full"]="/origin_data/ad/db/ads_full"
tableToPath["ods_platform_info_full"]="/origin_data/ad/db/platform_info_full"
tableToPath["ods_product_info_full"]="/origin_data/ad/db/product_full"
tableToPath["ods_ads_platform_full"]="/origin_data/ad/db/ads_platform_full"
tableToPath["ods_server_host_full"]="/origin_data/ad/db/server_host_full"
tableToPath["ods_ad_log_inc"]="/origin_data/ad/log/ad_log"load_data(){sql=""for i in $*; do#判断路径是否存在hadoop fs -test -e ${tableToPath["$i"]}/$do_date#路径存在方可装载数据if [[ $? = 0 ]]; thensql=$sql"load data inpath '${tableToPath["$i"]}/$do_date' overwrite into table ${APP}.$i partition(dt='$do_date');"fidonehive -e "$sql"
}case $1 in"ods_ads_info_full")load_data "ods_ads_info_full";;"ods_platform_info_full")load_data "ods_platform_info_full";;"ods_product_info_full")load_data "ods_product_info_full";;"ods_ads_platform_full")load_data "ods_ads_platform_full";;"ods_server_host_full")load_data "ods_server_host_full";;"ods_ad_log_inc")load_data "ods_ad_log_inc";;"all")load_data "ods_ads_info_full" "ods_platform_info_full" "ods_product_info_full" "ods_ads_platform_full" "ods_server_host_full" "ods_ad_log_inc";;
esac

3增加脚本执行权限

[atguigu@hadoop102 bin]$ chmod +x ad_hdfs_to_ods.sh

4脚本用法

[atguigu@hadoop102 bin]$ ad_hdfs_to_ods.sh all 2023-01-07

运行结果:

前面章节:

大数据项目——实战项目:广告数仓(第一部分)-CSDN博客

大数据项目——实战项目:广告数仓(第二部分)-CSDN博客

大数据技术——实战项目:广告数仓(第三部分)-CSDN博客

http://www.yayakq.cn/news/980434/

相关文章:

  • 电子商务网站建设期中免费的h5制作软件app
  • 学校网站建设工作总结西青集团网站建设
  • 青岛企业网站制作公司装修免费设计
  • 苏华建设集团有限公司网站做古风文字头像的网站
  • 做婚恋网站挣钱吗化妆品网络营销策划书
  • html 图片展示网站校园网络设计报告
  • 网站链接交换ip地址直接访问网站
  • wordpress 大型站重庆建设工程岗位培训管理系统
  • 如何把购物网站做成非经营网站哪些网站做的好
  • 对亚马逊网站做简要分析与评价辽宁省工程招标网
  • 摄影网站都有什么专业微信网站建设价格
  • 北京用网站模板建站推广软件的渠道有哪些
  • seo技术自学新网站上线 怎么做seo
  • 网址站wordpress语音问答
  • 金融网站搭建做网站 报价
  • 旅游网站内容wordpress 编辑器 国外
  • 做网站选哪家公司好河南百度推广代理商
  • 新沂市网站建设详情页生成器
  • 电子商务网站概要设计海口模板网站建站
  • 商品网站建设实训报告景区网站建设策划方案
  • 个人网站名字取名怎么做设计投稿网站
  • html企业网站源码下载如何制作微信小程序教程
  • 如何做网站 frontpage电子商务网站建设课程标准
  • 制作网站建设拓扑图软件綦江集团网站建设
  • 优化网站教程澄迈网站建设
  • 在线做春节网站垂直外贸网站
  • ui设计做网站网站备案 优帮云
  • 网站的需求分析包括哪些做智能网站软件
  • 正能量网站不用下载直接进入自己怎么注册网站模板
  • 有那些猎头做单的网站在那些免费网站做宣传效果好