Hive+Spark离线数仓工业项目实战--项目介绍及环境构建(1)

news2024/11/21 0:15:36

项目简介

通过大数据技术架构,解决工业物联网制造行业的数据存储和分析、可视化、个性化推荐问题。一站制造项目主要基于Hive数仓分层来存储各个业务指标数据,基于sparkSQL做数据分析。核心业务涉及运营商、呼叫中心、工单、油站、仓储物料。

推荐教程:大数据Hive+Spark离线数仓工业项目实战

项目介绍及环境构建

1. 项目目标
   - 项目1:在线教育
     - 学习如何做项目,项目中大数据工程师要负责实现的内容和流程
     - 学习数仓基础理论:建模、分层
   - 项目2:一站制造
     - 企业中项目开发的落地:代码开发
       - 代码开发:SQL【DSL + SQL】
         - SparkCore
         - SparkSQL
     - 数仓的一些实际应用:分层体系、建模实现
2. 内容目标
   - 项目业务介绍:背景、需求
   - 项目技术架构:选型、架构
   - 项目环境测试

- **目标**:了解项目应用背景

- **实施**

  - **工业**

    - 产业分类
      - 第一产业:植业、林业、畜牧业、水产养殖业等直接以自然物为生产对象的产业
      - 第二产业:工业、建筑业
      - 第三产业:交通运输业、通讯产业、商业、餐饮业、金融业、教育产业
    - 定义:属于第二产业,指的是采集原料,并把它们加工成产品的工作和过程
    - 划分
      - 开采业:对自然资源的开采,对采矿、晒盐、森林采伐等
      - 加工业:粮油加工、食品加工、 轧花、缫丝、纺织、制革等
      - 制造业:炼铁、炼钢、化工生产、 石油加工、机器制造、木材加工等,以及电力、自来水、煤气的生产和供应等
      - 机修业:对工业品的修理、翻新,如机器设备的修理、 交通运输工具的修理等

物理网:IOT**(Internet Of Things)

    - 定义:指的是互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络
    - 特点
      - 物物相连
      - 远程监控和设备控制
      - 设备自动化,提升用户体验
      - 设备故障分析处理
    - 场景
      - 智能设备:手机、平板、手表、眼镜、汽车
      - 智能家居:门、空调、洗衣机、水壶、窗帘、灯具、马桶、牙刷
      - 智能机器人:语音助手、家庭管家、工业机器手臂、快递机器人
      - ……

  - **工业物联网:IIOT**(Industrial Internet of Things)

    - 定义:指数以亿计的工业设备,在这些设备上装置传感器,连接到网络以收集和共享数据

    - 发展

      - IDC预测,**到2024年全球物联网的联接量将接近650亿,是手机联接量的11.4倍**

小结

  - 了解项目应用背景

- **目标**:**掌握项目业务需求**

  - 这个项目属于哪个行业?
  - 为什么要做这个项目?
  - 这个项目的目的是什么?

- **实施**

  - **项目行业**:工业大数据

  - **项目名称**:加油站服务商数据运营管理平台 

    - 中石化,中石油,中海油、壳牌,道达尔……

  - **整体需求**
    基于加油站的设备安装、维修、巡检、改造等数据进行统计分析
    支撑加油站站点的设备维护需求以及售后服务的呼叫中心数据分析
    提高服务商服务加油站的服务质量
    保障零部件的仓储物流及供应链的需求
    实现服务商的所有成本运营核算
    ```

  - **具体需求**

    - 运营分析:呼叫中心服务单数、设备工单数、参与服务工程师个数、零部件消耗与供应指标等
    - 设备分析:设备油量监控、设备运行状态监控、安装个数、巡检次数、维修次数、改造次数
    - 呼叫中心:呼叫次数、工单总数、派单总数、完工总数、核单次数
    - 员工分析:人员个数、接单次数、评价次数、出差次数
    - 报销统计分析、仓库物料管理分析、用户分析

  - **报表**

 

- **小结**

  - 这个项目属于哪个行业?
    - 工业化大数据平台
    - 行业:加油站服务商运营数据分析平台
  - 为什么要做这个项目?
    - 基于所有设备的安装、维修、巡检、改造的工单数据,辅助公司的运营,提高服务质量,做合理的成本预算
  - 这个项目具体需求是什么?
    - 提高服务质量,做合理的成本预算
    - 需求一:对所有工单进行统计分析
      - 安装工单、维修工单、巡检工单、改造工单、回访分析
    - 需求二:付费分析、报销分析
      - 安装人工费用、安装维修材料费用、差旅交通费用

业务流程

- **目标**:**掌握加油站设备维护的主要业务流程**

- **实施**

 - step1:加油站服务商联系呼叫中心,**申请服务**:安装/巡检/维修/改造加油机
  - step2:呼叫中心联系对应服务站点,**分派工单**:联系站点主管,站点主管分配服务人员
  - step3:服务人员**确认工单**和加油站点信息
  - step4:服务人员在指定日期到达加油站,进行**设备检修**
  - step5:如果为安装或者巡检服务,安装或者巡检成功,则服务完成
  - step6:如果为维修或者改造服务,需要向服务站点**申请物料**,物料到达,实施结束,则**服务完成**
  - step7:服务完成,与加油站站点服务商确认服务结束,完成**订单核验**
  - step8:工程师**报销**过程中产生的费用
  - step9:呼叫中心会定期对该工单中的工程师的服务做**回访**

- **小结**

  - 掌握加油站设备维护的主要业务流程
  - **工单分析、费用分析、物料分析、回访分析**

技术选型

- **目标**:**掌握加油站服务商数据运营平台的技术选型**

- **实施**

  - **数据生成**:业务数据库系统

    - Oracle:工单数据、物料数据、服务商数据、报销数据等

  - **数据采集**

    - Sqoop:离线数据库采集

  - **数据存储**

    - Hive【HDFS】:离线数据仓库【表】

  - **数据计算**

    - **SparkCore**:类MR开发方式【写代码调用方法函数来处理:面向对象 + 面向函数】
      - 对非结构化数据进行代码处理
      - 场景:ETL
    - **SparkSQL**:类HiveSQL开发方式【面向表】
      - 对数据仓库中的结构化数据做处理分析
      - 场景:统计分析
      - 开发方式
        - DSL:使用函数【DSL函数 + RDD函数】
        - SQL:使用SQL语句对表的进行处理
      - 功能:离线计算 + 实时计算
    - 注意:SparkSQL可以解决所有场景的分布式计算,离线计算的选型不仅仅是SparkSQL
      - SparkSQL/Impala/Presto
    - 使用方式
      - Python/Jar:spark-submit
        - ETL
      - **==ThriftServer:SparkSQL用于接收SQL请求的服务端,类似于Hive的Hiveserver2==**
        - **PyHive :Python连接SparkSQL的服务端,提交SQL语句**
        - JDBC:Java连接SparkSQL的服务端,提交SQL语句
        - spark-sql  -f :运行SQL文件,类似于hive -f
        - beeline:交互式命令行,一般用于测试

  - **数据应用**

    - MySQL:结果存储
    - Grafana:数据可视化工具

  - **监控工具**

    - Prometheus:服务器性能指标监控工具

  - **调度工具**

    - AirFlow:任务流调度工具

  - **技术架构**

 小结

  - 本次项目的技术架构是什么?

    - Lambda架构:离线计算层 + 实时计算层 + 数据服务层

  - 项目中用到了哪些技术?

    - 数据生成:Oracle

    - 数据采集:Sqoop

    - 数据存储:Hive

    - 数据处理:SparkSQL

    - 数据应用:MySQL + Grafana

    - 数据监控:Prometheus
  
    - 任务调度:AirFlow
  
    - 版本控制:Git + Gitee
    
    - 资源容器:Docker
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DSP_TMS320F28377D_eCAP学习笔记

博主学习eCAP的使用主要是用于处理霍尔传感器,计算电机的电角度以及角速度。首先还是看了点哔哩哔哩的学习视频。 eCAP介绍 脉冲量的输入是在数字控制系统中最常见的一类输入量,控制器专门设置了脉冲捕获模块 (eCAP)来处理脉冲量,通过脉冲捕…

路由器的工作原理(计算机网络-网络层)

目录 路由器的构成 转发和路由选择的区别 典型的路由器结构 交换结构 输出端口 路由器与交换机的比较 两种基于存储转发的分组交换设备的比较 交换机和路由器各有的应用场合 三层交换机 三层交换机的应用 路由器的构成 路由器的任务 路由器是一种具有多个输入端口和多…

MT8385 Android AB分区系统升级(命令模式)

AB系统分区升级使用的是update_engine,RecoverySystem 只适用于单分区的系统升级 1.解压开update.zip 可以查看到palyload的属性 2.使用ADB命令update_engine_client即可对AB分区进行升级 使用adb shell 命令进行升级 update_engine_client --payload xxx --update --header…

【TypeScript】TS类型声明(二)

🐱个人主页:不叫猫先生 🙋‍♂️作者简介:前端领域新星创作者、华为云享专家、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏&#xff…

k8s HPA升级 KEDA 基于prometheus的数据指标进行弹性伸缩

说明:KEDA有啥用,相对HPA有啥优势。HPA针对于cpu,内存来进行弹性伸缩,有点不太精确。KEDA可以接入prometheus,根据prometheus的数据指标进行弹性伸缩,相比更加的精准实用。 安装k8s环境部署prometheus 创建ns&#xf…

【软件测试】那些35岁以上的测试人哪去了?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 先根据大体年龄阶段…

B+树详解,一次就懂

⭐注意:不会直接讲 B树的结构,会从最简单的二叉树开始讲起来。如果认真看完,我想你对树类型的数据结构的理解又上了一个新的台阶。 ⭐如果有误,请大家指出。下文均是在B站学习的过程中,总结的笔记和心得体会 索引结构 …

四、网络层(五)IP组播

目录 5.1 组播的概念 5.2 IP组播的地址 5.3 因特网组管理协议(IGMP) 5.4 组播路由算法 5.1 组播的概念 为了更好地支持像视频会议这类一对多的通信,需要源主机一次发送的单个分组,能抵达用一个组地址标识的若干台目的主…

【老保姆教程】:Tesseract-OCR图片文字识别

文章目录🌟介绍一波🌟小安装🌟配置环境变量⭐️tesseract-ocr配置⭐️tessdata语言配置⭐️检测环境变量是否安装成功🌟语言包的配置使用🌟CMD命令框中进行图片识别操作⭐️举例一:识别数字⭐️举例二&…

@PostConstruct(重点,初始化加载)和@PreDestroy 注解

PostConstruct和PreDestroy 注解 PostConstruct和PreDestroy都是属于Bean生命周期的一部分; PostConstruct:在bean创建完成并且属性赋值完成之后来执行初始化方法,常用于:项目启动完成后的初始化操作,比如不经常变的Redis缓存Pr…

二、LVS的安装部署

LVS的安装部署LVS的安装部署一、LVS的安装1、yum安装2、源码包安装二、ipvsadm命令详解LVS 相关软件ipvsadm 命令ipvsadm 工具用法:防火墙标记LVS 持久连接三、部署LVS NAT1、LVS NAT模式注意事项2、实验环境3、部署RS1和RS2的nginx4、将RS1和RS2的网关配置为DR的内…

maven私服

分模块开发时,被引用的模块不可能拷来拷去,应该放在单位内部的某一个服务器上,这就是私服。这里使用nexus作为私服软件。 Nexus ● Nexus是Sonatype公司的一款maven私服产品 ●下载地址 Nexus安装、启动与配置 ● 解压即安装 ● 修改基…

我国登山鞋行业参与者越发广泛带来广阔潜在需求 女性市场值得期待

登山鞋属于户外运动鞋,是专门为爬山和旅行而设计制造的鞋子,具有防水性、防滑性、足部保护功能、耐用性等功能,其中防水性是现代登山鞋的首要功能。 资料来源:中国登山鞋行业发展趋势研究与未来投资分析报告(2022-2029…

StarRocks Join Reorder 源码解析

导读:欢迎来到 StarRocks 源码解析系列文章,我们将为你全方位揭晓 StarRocks 背后的技术原理和实践细节,助你逐步了解这款明星开源数据库产品。 本期 StarRocks 技术内幕将介绍 Join Reorder 算法如何找到最优解的原理。 背景介绍 多表 Join…

vue之watchEffect

在Options API中,我们可以通过watch选项来侦听data或者props的数据变化,当数据变化时执行某一些操作。 在Composition API中,我们可以使用watchEffect和watch来完成响应式数据的侦听。 watchEffect用于自动收集响应式数据的依赖,需…

Jmeter实现websocket协议接口测试

一.为了方便使用,首先将jmeter设置成中文,有两种方法: 1.在Jmeter界面进行设置,Options ->Choose Language ->Chinese(Simplified),这种方法在关闭jmeter重启后又会恢复成默认的英文,如果…

学习Python编程好找工作吗?

说起编程语言,不少人都会推荐学习Python,但很多人对Python不太了解,所以比较好奇“学习Python编程是否好找工作”,关于这个问题,小编通过下文为大家详细解答一下。 从市场情况来讲,Python职位比较多&…

阿里内部进阶学习SpringBoot+Vue全栈开发实战文档

前言 Spring 作为一个轻量级的容器,在JavaEE开发中得到了广泛的应用,但是Spring 的配置烦琐臃肿,在和各种第三方框架进行整合时代码量都非常大,并且整合的代码大多是重复的,为了使开发者能够快速上手Spring&#xff0…

105.(leaflet之家)leaflet态势标绘-聚集地修改

地图之家总目录(订阅之前请先查看该博客) 地图之家:cesium+leaflet+echart+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html>…

Python函数总结

在Python中&#xff0c;函数是一个带有名字的代码块&#xff0c;可以被反复调用。函数可以帮助你组织和重用代码&#xff0c;使你的程序更整洁&#xff0c;更易于维护。本文将会深入探索Python的秘密 目录 定义函数 自定义函数 内置函数 函数式方程 高阶函数 函数标注 …