博客
关于我
Day14:项目需求与技术架构
阅读量:391 次
发布时间:2019-03-05

本文共 3302 字,大约阅读时间需要 11 分钟。

知识点01:回顾

case when 函数的功能及语法

功能:实现多条件的判断逻辑

语法

  • case col when condition
  • case when col = value
    if(条件,true的结果,false的结果):用于单条件的判断,支持多条件判断:
  • if(条件1,if(条件2,true,false),false)

concat 与 concat_ws 函数

功能:实现字符串拼接

语法

  • concat(str1, str2, …)
  • concat_ws(分隔符,str1, str2, …)

collect_set 与 collect_list

功能:将某一列的多行内容合并为一行

语法

  • collect_set(colname)
  • collect_list(colname)

Json 处理函数

方式一

  • get_json_object:用于取某一 JSON 字符串中的某一元素,格式为 $.元素名
  • json_tuple:一次性取多个元素

方式二:使用 JSONSerde,支持按键分割 JSON 数据

窗口函数

语法

funName(参数) over (partition by col [order by col] [window_size])
关键字

  • partition by:分区,相同分区的数据放在一起
  • order by:按分区内排序
  • window_size:指定窗口,支持默认窗口和指定分区时的默认窗口

窗口聚合函数:sum、count、min、max、avg

first_value 与 last_value

功能

  • first_value(col):取分区内的第一条数据
  • last_value(col):取分区内的最后一条数据
    注意:默认使用默认窗口

lag 与 lead

功能

  • lag(colName,N,default):向前偏移
  • lead(colName,N,default):向后偏移

MapReduce 优化

  • MapReduce 优化
    • 推测执行
    • JVM 重用
  • Hive 中优化
    • Fetch Task
    • 严格模式
    • 并行执行
    • 压缩

文件格式

文件格式

  • textfile(默认)
  • SequenceFile(二进制)
  • 列式存储:rcfile、orc、parquet

优点

  • 存储空间更小
  • 对列的处理性能更好
  • 构建文件索引

数据倾斜

现象:某个 Task 的进度卡在 99%或 100%

原因:Task 负载高、数据分配不均
场景:group by 或 join
解决方法

  • group by:
    • 开启 Combiner
    • 构建随机分区(如 distribute by rand()
  • join:避免 Reduce Join

知识点02:目标

大数据业务

  • 实际应用场景:解决企业中的数据分析问题
  • 业务流程:数据从产生到应用的流程

大数据平台技术架构

  • 技术:Hadoop、Spark、Flink、Hive、Kafka、Redis、ElasticSearch
  • 架构:分层架构、Kappa 架构

项目环境测试

  • 确保环境配置正确
  • 测试平台性能

常见数据源

  • 业务数据:用户数据、商品数据、订单数据
  • 用户行为数据:注册、登录、访问、搜索、支付等操作
  • 爬虫数据、运维日志、第三方数据

知识点03:大数据业务需求

目标

  • 了解常见大数据平台的业务需求

实施

  • 需求本质:利用数据挖掘价值,提高公司决策能力
  • 使用人群:运营人员、决策人员
  • 流程:分析、发现问题、解决问题

场景

  • 推荐系统:用户画像、精准推荐
  • 风控系统:金融风控、系统风控、刷单风控
  • 机器学习:人脸识别、无人驾驶

小结

  • 了解常见大数据平台业务需求

知识点04:在线教育项目需求

目标

  • 掌握在线教育项目需求

实施

  • 行业:线上教育
  • 产品:课程
  • 目标:提升转化率、学员考勤效率

业务流程

  • 用户访问、咨询、意向、报名、学习

项目需求

  • 需求1:用户转化率分析(访问转咨询率、意向转报名率)
  • 需求2:学员考勤分析(出勤率、迟到率等)

项目看板模块

  • 访问咨询模块、意向分析模块、报名分析模块、考勤分析模块

小结

  • 在线教育项目需求与模块明确

知识点05:业务流程:数据来源

目标

  • 了解常见数据来源

实施

  • 业务数据:存储在业务数据库中
  • 用户行为数据:记录用户操作数据
  • 爬虫数据:根据需求爬取互联网数据
  • 运维日志:辅助运维分析
  • 第三方数据:合作方数据

小结

  • 了解常见数据来源即可

知识点06:业务流程:数据采集及存储

目标

  • 了解数据采集及存储过程

实施

  • 数据采集:工具为 Flume、Sqoop
  • 数据存储:Hive 数据仓库

小结

  • 数据采集与存储流程明确

知识点07:业务流程:数据处理及应用

目标

  • 了解数据处理及应用过程

实施

  • 数据处理:Hive、SparkSQL、SparkMLlib
  • 数据应用:报表、用户画像、推荐系统

小结

  • 数据处理与应用流程清晰

知识点08:技术架构:常用技术选型

目标

  • 了解大数据平台的常用技术选型

实施

  • 数据采集:Flume、Sqoop、Canal
  • 数据存储:HDFS、HBase、Kafka、Redis、ElasticSearch、MySQL
  • 数据处理:MapReduce、Spark、Flink、Impala、Kylin、Drill
  • 其他工具:Zookeeper、Oozie、Hue、Cloudera Manager

小结

  • 了解大数据平台常用技术选型

知识点09:技术架构:基础平台架构

目标

  • 了解大数据的基础平台架构

实施

  • Lambda 架构:支持离线和实时处理
  • Kappa 架构:实时处理

小结

  • 了解大数据基础平台架构

知识点10:技术架构:在线教育项目架构

目标

  • 掌握在线教育项目架构

实施

  • 数据生成:业务系统、Sqoop
  • 数据存储:Hive
  • 数据处理:HiveSQL、MapReduce
  • 数据应用:MySQL、FineBI
  • 任务调度:Oozie
  • 可视化交互:Hue
  • 集群管理:Cloudera Manager

小结

  • 在线教育项目架构清晰

知识点11:平台搭建:命令行部署

目标

  • 了解命令行部署方式的优缺点

实施

  • 优点:灵活性高、安全性强
  • 缺点:管理复杂,配置需手动同步

小结

  • 命令行部署方式的优缺点明确

知识点12:平台搭建:集群管理工具部署

目标

  • 掌握集群管理工具部署方式

实施

  • 工具:Cloudera Manager、Ambari
  • 过程:准备软件、安装 CM、管理集群

小结

  • 集群管理工具部署原理明确

知识点13:Cloudera Manager 平台使用

目标

  • 了解 CM 平台的基本使用

实施

  • 虚拟机配置:IP地址、用户名、密码
  • 启动虚拟机:使用 VMware WorkStation
  • 访问 CM 界面:192.168.88.150:7180
  • 登录 CM:用户名 admin,密码 admin

小结

  • CM 平台的使用流程清晰

知识点14:项目虚拟机环境

目标

  • 配置启动项目虚拟机环境

实施

  • 安装虚拟机:使用 .vmx 文件启动
  • 软件安装:Hadoop、Hive、Sqoop、Flume、Oozie、Hue
  • 环境测试:使用 CRT 远程连接

小结

  • 虚拟机环境配置完成

知识点15:Hue 的使用

目标

  • 了解 Hue 的基本使用

实施

  • 启动 Hue:使用 start-hue.sh
  • 访问 Hue:node1:8888
  • 登录 Hue:用户名 hue,密码 123456

小结

  • Hue 的使用流程明确

知识点16:数据生成:用户行为数据演示

目标

  • 了解用户行为数据的生成

实施

  • 用户访问网页:记录用户 IP、服务端时间、URI
  • 埋点收集数据:记录用户操作行为
  • 发送日志:日志服务器记录用户行为日志

小结

  • 用户行为数据生成流程清晰

知识点17:数据生成:数据内容

目标

  • 了解常见数据中的字段内容

实施

  • 字段内容
    • 用户 IP 地址
    • 服务端时间
    • 请求服务端地址
    • URI
    • en=e_l(首次访问)
    • en=e_pv(页面浏览)
    • en=e_crt(订单提交)
    • en=e_pay(支付操作)

小结

  • 数据字段内容明确

转载地址:http://nzwzz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现度到弧度算法(附完整源码)
查看>>
Objective-C实现建造者模式(附完整源码)
查看>>
Objective-C实现开方数(附完整源码)
查看>>
Objective-C实现异或加密(附完整源码)
查看>>
Objective-C实现异或密码算法(附完整源码)
查看>>
Objective-C实现异步编程(附完整源码)
查看>>
Objective-C实现弧度到度算法 (附完整源码)
查看>>
Objective-C实现循环队列算法(附完整源码)
查看>>
Objective-C实现循环队列链表算法(附完整源码)
查看>>
Objective-C实现快速排序算法(附完整源码)
查看>>
Objective-C实现恩尼格玛密码机算法(附完整源码)
查看>>
Objective-C实现感知哈希算法(附完整源码)
查看>>
Objective-C实现感知哈希算法(附完整源码)
查看>>
Objective-C实现截留雨水问题的动态编程方法算法(附完整源码)
查看>>
Objective-C实现截留雨水问题的蛮力方法的算法(附完整源码)
查看>>
Objective-C实现打印10000以内的完数(附完整源码)
查看>>
Objective-C实现打印1000以内的水仙花数(附完整源码)
查看>>
Objective-C实现打印九九乘法表(附完整源码)
查看>>
Objective-C实现打印从 0 到 n 的卡特兰数算法(附完整源码)
查看>>
Objective-C实现打印函数调用堆栈( 附完整源码)
查看>>