【离线数仓-5-数据仓库环境准备】

离线数仓-5-数据仓库环境准备

  • 离线数仓-5-数据仓库环境准备
    • 1.数据仓库运行环境
      • 1.Hive环境搭建
        • 1.Hive引擎
        • 2.Hive on Spark配置
        • 2.Yarn环境配置
    • 2.数据仓库开发环境
    • 3.模拟数据准备

离线数仓-5-数据仓库环境准备

1.数据仓库运行环境

  • 数仓之外需要做的事情:
    • 数据安全认证:在大数据层面:1.用户认证:Kerberos来管理认证 2.用户授权:Ranger来管理授权
    • 数据质量监控
    • 大数据集群监控
  • HDFS超级用户:是由启动NameNode的用户来决定的,谁启动了NameNode谁就是超级用户。

1.Hive环境搭建

1.Hive引擎

  • Hive引擎包括:默认MR、Tez、Spark。
  • Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。
  • Spark on Hive : Hive只作为存储元数据,Spark负责SQL解析优化,语法是Spark SQL语法,Spark负责采用RDD执行。

2.Hive on Spark配置

  • hive中两个服务:
    hiveserver2服务
    metostore服务
  • hive on spark 环境下面,一个hive会话对应一个spark任务,打开一个会话框执行第一个任务的时候,需要启动spark相关的服务:Exector/Driver,启动这些服务需要损耗时间,所以执行第一个任务的时候,需要耗费一些时间,后面再执行任务的话,就不需要损耗启动服务的时间了。
  • hive on mapreduce 环境下面,一个sql对应一个mr任务。
  • 1.兼容性说明
    • 注意:官网下载的Hive3.1.2和Spark3.0.0默认是不兼容的。因为Hive3.1.2支持的Spark版本是2.4.5,所以需要我们重新编译Hive3.1.2版本。
      编译步骤:官网下载Hive3.1.2源码,修改pom文件中引用的Spark版本为3.0.0,如果编译通过,直接打包获取jar包。如果报错,就根据提示,修改相关方法,直到不报错,打包获取jar包。
  • 2.在Hive所在节点部署Spark
  • 3.配置SPARK_HOME环境变量
  • 4.在hive中创建spark配置文件
  • 5.向HDFS上传Spark纯净版jar包
  • 6.修改hive-site.xml文件,添加如下内容:

<property>
    <name>spark.yarn.jarsname>
    <value>hdfs://hadoop102:8020/spark-jars/*value>
property>
  

<property>
    <name>hive.execution.enginename>
    <value>sparkvalue>
property>

2.Yarn环境配置

  • 1.增加ApplicationMaster资源比例 (仅在测试环境调整,正式上线环境不需要调整)

    • 1)在hadoop102的/opt/module/hadoop-3.1.3/etc/hadoop/capacity-scheduler.xml文件中修改如下参数值
      [atguigu@hadoop102 hadoop]$ vim capacity-scheduler.xml
      yarn.scheduler.capacity.maximum-am-resource-percent 0.8

    • 2)分发capacity-scheduler.xml配置文件
      [atguigu@hadoop102 hadoop]$ xsync capacity-scheduler.xml

    • 3)关闭正在运行的任务,重新启动yarn集群
      [atguigu@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
      [atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

  • 2.yarn上的Memory Total这个参数对应的12G,是通过配置每台节点的yarn-site.xml中的这个参数,然后相加到一起的结果。
    【离线数仓-5-数据仓库环境准备】_第1张图片
    【离线数仓-5-数据仓库环境准备】_第2张图片

2.数据仓库开发环境

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

3.模拟数据准备

  • 通常企业在开始搭建数仓时,业务系统中会存在历史数据,一般是业务数据库存在历史数据,而用户行为日志无历史数据。

    • 1)用户行为日志 文件–>Flume -->Kafka–> Flume -->Hdfs
    • 2)业务数据
      • 全量表同步 mysql --> DataX --> Hdfs
      • 增量表同步
        • 增量表首日全量同步 mysql -->Maxwell的bootStrap功能 --> Kafka --> Flume --> Hdfs
        • 增量表实时同步 mysql -->Maxwell实时功能 --> Kafka --> Flume --> Hdfs
  • mysql数据使用maxwell进行同步,maxwell监控的是mysql的binlog日志,其中maxwell支持断点续传功能,实际上是将binlog位置存放在对应mysql的positions中,记录了位置信息。【离线数仓-5-数据仓库环境准备】_第3张图片

    • mysql中也记录了当前数据的binlog位置信息,直接在mysql中使用命令查看:show master status;在这里插入图片描述

你可能感兴趣的:(数据仓库,大数据,数据治理,数据仓库,大数据)