1.企业级项目开发流程
绿色字体
红色字体
粉色字体
蓝色字体
项目调研:技术?业务?
产品经理、非常熟悉业务、项目经理
需求分析:做什么 做成什么样
用户提出来的:显式
隐式
方案设计
概设
详设
系统设计
功能开发
开发
测试:单元测试 CICD
测试
功能
联调
性能
用户 试用
部署上线
试运行 DIFF 稳定性
正式上线 灰度
后期
2 3 4 运维保障 功能开发 bug修复
企业级大数据应用平台:
数据分析:自研 + 商业
搜索/爬虫
机器学习/深度学习
人工智能
离线
实时
2.Hadoop生态离线项目
涉及到的技术
Hadoop生态离线项目
Hadoop:
HDFS MapReduce(清洗) YARN
Hadoop集群
Hive:
外部表
SQL
数据倾斜
优化
基于元数据管理
SQL ==> MapReduce
Flume
调度:
crontab、shell
Azkaban
HUE:可视化的notebook CM
排查数据
面试会问: 你们的集群规模是多少?=>每台机器的配置是什么?=>机型(物理机)是什么?
3.离线处理架构:
需要先将日志用Flume方式从某个server上采集日志信息到hdfs上(建议压缩的文本格式),或者用Sqoop/Spark技术从RDBMS上采集过来。
原始的日志信息不规整,需要有一个ETL操作,(比如MapReduce或者Sqark来实现),有一个解析、规则匹配的过程。
清洗之后的数据放在hdfs上的一个地方,对应分区表。(hive外部表)
(分区其实就是hdfs上的一个key=value的目录,外加一批元数据信息。)
还要通过alter刷一下元数据信息才能通过hive查到表里的数据。
最后通过 Web UI 界面(比如HUE、Zeppelin、BI展示工具),把结果展示出来。
整个流程步骤:
①数据采集:从Web server用Flume采集到hadoop
②做一个ETL过程
③把清洗后的数据移到目标目录(外部表)
④业务统计:考验SQL的能力 执行的结果放在dest table里。
⑤web UI界面展示
开发的重点是②③④
关于ETL过程:(在这里先用MapReduce来进行操作)
对于之前的用sqoop从RDBMS抽数据到hadoop上,ETL操作只涉及到Map,而不涉及reduce。
这个过程其实是字段的选择和行的过滤,就是select where
MapReduce的两个阶段,map阶段处理后的数据,会经过shuffle端,到reduce端,由reduce端进行统一的规约的操作。
而sqoop只是数据的导入和导出,可以研究一下sqoop的工作原理。所以只是涉及map。
1)Map去HDFS的input文件夹(原始的日志数据)下读取数据
2)map方法中进行数据的清洗操作,清洗不符合规范的数据
本文介绍企业级项目的开发流程,重点讲解大数据应用平台建设,包括数据分析、机器学习等关键技术。此外,还详细阐述了Hadoop生态下的离线项目处理流程和技术要点。

2万+

被折叠的 条评论
为什么被折叠?



