基于Hadoop生态的离线项目梳理

一、离线项目整体技术

二、离线项目功能演示

三、离线项目步骤处理

一、离线项目整体技术

对于Hadoop离线项目来说:

1、存储

  • 存储在Hadoop集群

2、Hive计算(面试的时候问你Hive的认识,如果你说就是写sql,基本人没了)

  • 使用MapReduce对数据进行清洗,清洗后的数据存储在hdfs上,在Hive中创建一张分区表,分区字段(day=20200416),清洗完的数据需要使用:alter table order_partiiton ADD IF NOT EXISTS PARTITION(day=‘20200416’); 而不能使用msck来刷新元数据信息(因为msck是一个重量级的过程在生产上)

面试考察:

  • SQL --> Mapreduce?转换成多少个stage,stage之间的依赖关系又是怎么样的?

3、Flume(数据采集)

4、调度工具(crontab、shell)

  • 进阶调度工具:Azakaban

5、HUE:用于在生产上的排查数据

  • 可视化的基于web的notebook
  • Hue的好处就是不需要使用黑窗口的命令方式,可以直接查询、编辑数据,HUE可以查询Hive、Impala,高版本可以对接Spark
关于数据抽样Preview Sample Data、图形化界面,HUE都提供给了我们

二、从通用项目来看:
集群规模 --> 每台机器的配置(CDH中会涉及) --> 机型

面试题:
你们公司的集群规模 --> 每台机器的配置 --> 你们公司的机型

二、离线项目功能演示

流程图如下:
在这里插入图片描述
离线处理流程解析:

1、数据从外部服务器Server、关系型数据库RDBMS采集到Hadoop集群中,Server中的日志信息–>Flume,RDBMS --> SQOOP/Spark;

2、对于大部分公司而言,离线处理的数据采集到天级别,举例:原始日志:/g6/hadoop/accesslog/20200416/…log (采用普通的文本压缩格式);主要是对分隔符、时间字段、IP字段的解析;

3、使用MapReduce进行ETL处理,处理后的数据写到hdfs上的某个目录:/g6/hadoop/output/access/day=20200416,相应的在Hive中就是创建一个分区表Partitioned(day=20200416),通过location进行指定即可;那Hive如何感知到hdfs上的数据呢,alter table tbl_name ADD IF NOT EXISTS PARTITION(day=“20200416”); 生产上不能使用msck刷新元数据信息,msck在生产上是一个很重的操作。

三、离线项目步骤处理

shell脚本的步骤:
Step1:数据清洗
Step2:move data to DW
Step3:flush partition meta data
对于一个作业来说我们要知道它的整体耗时,此处跑完shell脚本的时间其实是step1的时间。

梳理整个离线处理的流程:
1、数据采集 Server–>Hadoop集群
2、ETL操作
3、raw --> target(external table partiton) 数据从源端到目标端
4、SQL进行业务统计 --> destination table
5、WebUI展示

对于大数据开发人员而言:掌握2、3、4步尤为重要

关于第二步ETL而言,使用Mapreduce开发,涉及到有无map和reduce主要有以下三种场景:
1、map+reducer
2、map
3、Mapreducer chain(由多个mapreduce进行的拼接)

对于普通的数据导入、导出,Sqoop只有map,map默认的个数是4,sqoop仅仅只是做了行过滤和列裁剪。

a.map去hdfs的input文件夹下读取数据
b.map方法中进行数据的清洗操作,对于不符合规范的数据应该怎么处理??(不符合规范的数据需要进行剔除,这些你所认为不符合规范的数据需要进行留档)

新的知识点:
1、清洗后的数据该采用行式VS列式存储
2、Compression压缩格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值