离线项目下的Hadoop生态栈
Hadoop生态离线项目
Hadoop:(无论什么大数据项目Hadoop是少不了的)
HDFS MapReduce(主要是做清洗) YARN (大数据项目基本都是跑在yarn资源框架上)
Hadoop集群
Hive:(主要是做计算)
外部表 (会使用)
SQL (会使用)
数据倾斜 (会遇到的问题)
优化
基于元数据管理 (需要拿到元数据管理)
SQL ==> MapReduce (hive不仅仅是写sql,重要的是给一个sql语句如何分析生成的stage)
Flume
调度:(作业的调度)
crontab、shell
Azkaban
HUE:可视化的notebook CM
主要用于排查数据(相对于命令行形式来讲非常方便)
项目:通用
集群规模==>每台机器的配置==>机型 (CDH博客介绍里会有详细讲解)
离线处理架构
domain traffic
1、集群内的可以用flume,beat,logstash等等采集工具
2、集群外的数据可以通过sqoop或者spark等一些平台或者框架来导入(如果从sql来解决就是平台型的,如果从代码来解决就是业务型的)这里都是平台型来解决。
3、大部分公司都是以天级别来分log文件的;支持各种文本格式。
4、清洗过后的数据一般都是落在hive之上;ETL(mapreduce)出来之后是一个分区表
5、步骤是:数据清洗=》移动数据到数仓=》刷元数据信息 最后用hue等工具展示数据
流程简述:【重心为2,3,4】 {mapreduce chain是mapreduce链,一个作业紧接一个作业}(图中逻辑只需要map即可)
1、数据采集,外部数据和内部数据(对于sqoop能做的就是字段的选择和行的过滤实际也就是select和while【也就是只有map】)【sqoop的map是固定的4个,这个要做适当的调整】
2、做一个etl操作【一端到远端去读;把数据读过来后写入hdfs;图中红字部分就是etl】
3、把原始数据移到target(外部表的位置)【开发来讲就是到此为止】
4、业务统计:SQL(根据业务来定)不同维度不同的表
5、webui展示