[Hadoop离线项目处理流程]

本文介绍企业级项目的开发流程,重点讲解大数据应用平台建设,包括数据分析、机器学习等关键技术。此外,还详细阐述了Hadoop生态下的离线项目处理流程和技术要点。

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方法中进行数据的清洗操作,清洗不符合规范的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值