百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

大数据开发,Hadoop极速入门,实现直播平台数据统计

suiw9 2025-01-20 16:21 19 浏览 0 评论

# 大数据开发,Hadoop极速入门,实现直播平台数据统计

## 目录

  • 第1章 课程介绍
  • 第2章 Hadoop整体概述
  • 第3章 Hadoop集群部署
  • 第4章 分布式存储(HDFS)详解
  • 第5章 分布式计算(MapReduce)详解
  • 第6章 资源调度器(Yarn)详解
  • 第7章 案例:直播平台开播数据统计分析
  • 第8章 课程回顾与总结

## 第1章课程介绍

### 1-1课程介绍(03:40)

  • - ◆主要讲解Hadoop3中的三大组件的基本理论和实际操作
  • - ◆帮助大家快速掌握Hadoop3的使用, 掌握企业实际开发流程
  • - ◆实战案例开发中结合具体的问题,提供排查思路、帮助提高解决问题的能力

### 1-2项目效果预览(01:12) (图1)

### 1-3开发技术栈介绍(02:37)

  • - ◆Linux基本操作、Shell脚本基础
  • - ◆JavaSE内容、IDEA开发工具

### 1-4如何学习本课程(01:10)

  • - ◆课程安排:理论+实操+案例实战
  • - ◆教学方式:理论+实践
  • - 学习建议:多操作!!!

## 第2章Hadoop整体概述

### 2-1 Hadoop简介(02:36)

- Hadoop简介

  • - ◆Hadoop是一个适合海量数据存储和计算的平台,它已经成为大数据的代名词
  • - ◆Hadoop的作者是道格卡J (Doug Cutting),主要基于谷歌的三架马车: GoogleFS,MapReduce, Big Table而实现

- Hadoop版本

  • - Hadoop1.x
  • - Hadoop2.x
  • - Hadoop3.x

### 2- -2分布式存储介绍(06:20)(图1)


### 2- -3分布式计算介绍(06:01)(图2)

### 2-4 Hadoop三大核心组件分析(08:06)(图3)

- HDFS架构分析

  • - ◆HDFS负责海量数据的分布式存储
  • - ◆HDFS支持主从结构,主节点支持多个NameNode,从节点支持多个DataNode .
  • - ◆NameNode负责接收用户请求,维护目录系统的目录结构。DataNode主要负责存储数据。

- MapReduce架构分析

  • - ◆MapReduce是- -一个编程模型,主要负责海量数据计算,主要由两个阶段组成: Map和Reduce
  • - ◆Map阶段是一个独立的程序,会在很多个节点上同时执行,每个节点处理一部分数据
  • - ◆Reduce阶段也是一个独立的程序,在这先把Reduce理解为-个单独的聚合程序即可。

- Yarn架构分析

  • - ◆Yarn主要负责集群资源的管理和调度,支持主从架构,主节点最多可以有2个, 从节点可以有多个
  • - ◆主节点(ResourceManager)进程主要负责集群资源的分配和管理
  • - ◆从节点(NodeManager)主要负责单节点资源管理.

### 2-5 Hadoop核心架构发展历史(02:52)(图4)

### 2-6大数据生态圈介绍(03:54)(图5)

## 第3章Hadoop集群部署

### 3-1 Hadoop常见发行版介绍(03:02)

  • - ◆官方版本: Apache Hadoop,开源,集群安装维护比较麻烦
  • - ◆第三方发行版本: Cloudera hadoop(CDH),提供商业支持,收费,使用Cloudera Manager安装维护比较方便
  • - ◆第三方发行版本: HortonWorks(HDP), 开源,使用Ambari安装维护比较方便

### 3- -2 Hadoop伪分布集群安装部署(. 上) (14:52)

- Hadoop3.0分步/伪分布集群安装

  • - ◆使用3台Linux虚拟机安装分布式集群
  • - ◆使用1台Linux虚拟机安装伪分布式集群

- 注意: linux的系统版本使用的Centos6.x

  • 1: ip的设置
  • 2: 主机名的设置( 临时+永久)
  • 3: hosts;文件的修改( ip和主机名的映射关系)
  • 4: 关闭防火墙( 临时+永久)
  • 5: ssh免密码登录
  • 6: JDK的安装( jdk1.8)
  • 7: hadoop伪分布的安装

### 3- -3 Hadoop伪分布集群安装部署(下) (16:21)

### 3- -4 Hadoop分布式集群安装部署(18:12)

### 3- -5 Hadoop客户端节点安装介绍(03:49)

  • - 在实际工作中不建议直接连接集群中的节点来操作集群,因为直接把集群中的节点暴露给普通开发人员是不安全的
  • - ◆建议在业务机器上安装Hadoop的客户端,这样就可以在业务机器.上操作Hadoop集群了

## 第4章分布式存储(HDFS)详解

### 4-1 HDFS简介 (03:15)

  • - HDFS是一-种允许文件通过网络在多 台主机.上分享的文件系统,可让多机器上的多用户分享文件和存储空间
  • - ◆分布式文件管理系统有很多,HDFS只是其中- -种实现,HDFS不适合存储小文件

### ●4- -2 HDFS的Shell介绍(02:47)

  • - ◆使用格式: bin/hdfs dfs -xXx schema://authority/ path
  • - ◆HDFS的schema是hdfs, authority是NameNode的节点ip和对应的端口号,path是我们要操作的路径信息

### 4- -3 HDFS的Shell操作(10:39)

  • - ◆-Is: 查询指定路径信息
  • - ◆-get: 下载文件到本地
  • - ◆-put: 从本地.上传文件
  • - ◆-mkdir [-p]:创建文件夹
  • - ◆-cat: 查看HDFS文件内容◆ -rm [-r]: 删除文件/文件夹

### ( 4- -4 HDFS体系结构详解(20:37)

- HDFS包含: NameNode, SecondaryNameNode,DataNode

- NameNode介绍

  • - ◆NameNode是整个文件系统的管理节点,它主要维护着整个文件系统的文件目录树,文件/目录的元信息,每个文件对应的数据块列表,并且还负责接收用户的操作请求
  • - ◆NameNode主要包含以下文件: fsimage, edits, seed txid,VERSION。
  • - ◆以上文件保存的路径由hdfs-default.xml文件中的dfs.namenode.name.dir属性控制

- SecondaryNameNode介绍

  • - ◆主要负责定期的把edits文件中的内容合并到fsimage中
  • - ◆这个合并操作称为checkpoint,在合并的时候会对edits中的内容进行转换,生成新的内容保存到fsimage文件中
  • - ◆注意:在NameNode的HA架构中是没有SecondaryNameNode进程的,这个文件合并操作是由standby NameNode负责实现的。

- DataNode介绍

  • - ◆提供真实文件数据的存储服务
  • - ◆HDFS会按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block, HDFS默认Block大小是128MB
  • - ◆HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间

- NameNode总结

  • - ◆NameNode维护了两份关系:
  • - ◆第一份关系:File与Block list的关系,对应的关系信息存储在fsimage和edits文件中(当NameNode启动的时候会把文件中的内容加载到内存中)
  • - ◆第二份关系:|DataNode与Block的关系(当DataNode启动的时候,会把当前节点上的Block信息和节点信息上报给NameNode)

## 第5章分布式计算(MapReduce)详解

### 5-1 MapReduce原理分析(06:07)

- 什么是MapReduce

  • - ◆如果你想知道一摞牌中有多少张黑桃,直观方式是一张一-张检查并且数出有多少张是黑桃
  • - ◆MapReduce方法则是:给在座的所有玩家分配这摞牌,让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你,最后你把所有玩家告诉你的数字加起来,得到最终结果

- MapReduce概述

  • - ◆MapReduce是一种分布式计算模型,由Google提出, 主要用于搜索领域,解决海量数据的计算问题
  • - ◆MapReduce是分布式运行的,由两个阶段组成: Map和Reduce
  • - ◆MapReduce框架都有默认实现,用户只需要覆盖map()和reduce()两个函数,即可实现分布式计算,非常简单

- MapReduce原理分析(图)

### 5-2 WordCount案例分析(13:50)

- MapReduce之map阶段执行过程

  • - ◆1:框架会把输入文件(夹)划分为很多InputSplit,默认,每个HDFS的Block对应一个InputSplit。通过RecordReader类,把每个InputSplit解析成一个个<k1,v1>。 默认,每一行,会被解析成- -个<k1,v1>
  • - ◆2:框架调用Mapper类中的ma..)函数,map函数的形参是<k1,v1>,输出是<k2,v2>。- -个InputSplit对应-个map task
  • - ◆3: 框架对map函数输出的< k2,v2>进行分区。不同分区中的<k2,v2>由不同的reduce task处理,默认只有1个分区
  • - ◆4:框架对每个分区中的数据,按照k2进行排序、分组。分组,指的是相同k2的v2分成一个组
  • - ◆5: 在map节点,框架可以执行reduce归约,此步骤为可选项
  • - ◆6: 框架会把map task输出的< k2,v2>写入到inux的磁盘文件中

- MapReduce之reduce阶段执行过程

  • - ◆1:框架对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点,这个过程称作shuffle
  • - ◆2: 框架对reduce端接收到的相同分区的< k2,v2>数据进行合并、排序、分组,
  • - ◆3:框架调用Reducer类中的reduce方法,输入<k2,{2v...}>,输出<k3,v3>。-个<k2,{v...}.>调用一-次reduce函数
  • - ◆4: 框架把reduce的输出保存到HDFS中
  • - ◆至此,整个reduce阶段结束

### 5- -3 Shuffle过程分析(02:56)(图)

### 5- 4 WordCount代码开发(29:29)

### 5- -5 MapReduce任务日志查看(09:17)

  • - 开启yarn的日志聚合功能,把散落在nodemanager节点 上的日志统- -收集管理,方便查看日志.
  • - ◆需要修改yarn-site.xmI中的yarn.log-aggregation-enable和yarn.log.server.url
  • - 启动historyserver: sbin/mr-jobhistory-daemon.sh starthistoryserver

### 5-6 停止hadoop集群中的任务(04:25)

- ◆使用命令: yarn application -kill <application_ id>

- ◆注意:在命令行ctrl+c无法停止程序,因为程序已经提交到Hadoop集群运行了

### 5-7 Hadoop序列化机制介绍(05:55)(图)

- Hadoop序列化机制的特点

  • - ◆1. 紧凑:高效使用存储空间
  • - ◆2. 快速:读写数据的额外开销小
  • - ◆3. 可扩展:可透明地读取老格式的数据
  • - ◆4. 互操作:支持多语言的交互

- Java序列化的不足

  • - ◆1. 不精简,附加信息多,不大适合随机访问
  • - ◆2. 存储空间大,递归地输出类的超类描述直到不再有超类
  • - ◆3. 扩展性差,Hadoop中的Writable可以方便用户自定义

## 第6章资源调度器(Yarn)详解

### 6-1 Yarn资源调度器介绍(05:18)

- ◆Yarn 目前支持三种调度器:

  • - ◆FIFO Scheduler:先进先出(first in, first out)调度策略
  • - CapacityScheduler:可以看作是FifoScheduler的多队列版本。
  • - FairScheduler:多队列,多用户共享资源。

## 第7章案例:直播平台开播数据统计分析

### 7-1案例需求分析(05:03)

- 需求分析

- ◆运营部门门需要针对主播每天的开播数据进行分析,统计出来每天受欢迎程度比较高的一些主播,进而对这些主播分发更多流量,挖掘最大价值

### 7-2原始数据清洗代码实现(21:28)

- ◆由于原始数据是通过日志方式进行记录的,在使用日志采集工具采集到HDFS之后,还需要对数据进行清洗过滤,丢弃缺失字段的数据,针对异常字段值进行标准化处理

- 数据清洗需求与分析

- 需求:

  • - 1:从原始数据(JSON格式)中过滤出来需要的字段
  • - 主播ID(uid)、金币数量(gold)、总观看PV( watchnumpv)、粉丝关注数量(folLower)、视频总开播时长( Length)
  • - 2: 针对核心字段进行异常值判断
  • - 金币数量、总观看PV、粉丝关注数量、视频总开播时长
  • - 以上四个字段正常情况下都不应该是复制,也不应该缺失
  • - 如果这些字段值为负值,则认为是异常数据,直接丢弃,如果这些字段值个别有缺失,则认为字段的值为即可

- 分析:

  • - 1:由于原始数据是json格式的,所以可以使用fastison对原始数据进行解析, 获取指定字段的内容
  • - 2:然后对获取到的数据进行判断,只保留满足条件的数据即可
  • - 3:由于不需要聚合过程,只是一个简单的过滤操作,所以只需要map阶段即可,reduce阶段就不需要了
  • - 4:其中map阶段的k1, v1的数据类型是固定的: <LongWritable, Text>
  • - k2, v2的数据类型为: <Text, Text> k2存储主播ID, v2存储核心字段,多个字段中间用\t分割

### 7-3数据指标统计---基于主播维度指标(19:18)

- 数据统计代码实现

  • - ◆统计每天开播时长最 长的前10名主播及对应的开播时长
  • - ◆对数据中的金币数量,总观看pv,粉丝关注数量,视频总开播时长等指标进行统计

- 自定义Writable代码实现

  • - ◆由于原始数据中涉及到多个需要统计的字段,所以可以把这几个字段统一记录在一一个自定义数据类型中,方便使用
  • - ◆代码实现

### 7- 4数据指标统计---基于主播的TOPN计算 (21:58)

- 数据指标统计作业

- 需求:

  • - 2: 统计每天开播时长最长的前10名主播及对应的主播时长

- 分析:

  • - 1:为J统计每天开播最长的前10名主播信息,需要在map阶段获取数据中每个主播的id和直播时长
  • - 2: 所以map阶段的<k2,v2> 为<Text, LongWritable>
  • - 3:在Reduce端对相同主播的直播时长进行累加求和,把这些数据存储到--个临时的map集合中
  • - 4:在Reduce端的cLeanup函数中对map集合中的数据根据直播时长进行排序
  • - 5: 最后在cLeranup函数中把直播时长最长的前10名主播的信息写出到hdfs文件中

### 7-5任务定时脚本封装(30:20)

- ◆把任务提交命令进行封装,方便使用,便于定时任务调度

- 脚本实现

### 7-6 任务执行结果监控(04:34)

- ◆针对任务执行结果进行检测,如果执行失败,则重试任务,同时发送告警短信信息

- ◆脚本开发

### 7-7 使用Sqoop将计算结果导出到Mysq| (10:24)

- ◆快速安装Sqoop工具

- ◆数据导出功能开发,使用Sqoop将MapReduce计算的结果导出到Mysq中

### 7-8 web项目展示结果(03:49)

## 第8章课程回顾与总结

## 参考资料

- (快速入门Hadoop3.0大数据处理)[https://www.imooc.com/learn/1159]

相关推荐

俄罗斯的 HTTPS 也要被废了?(俄罗斯网站关闭)

发布该推文的ScottHelme是一名黑客,SecurityHeaders和ReportUri的创始人、Pluralsight作者、BBC常驻黑客。他表示,CAs现在似乎正在停止为俄罗斯域名颁发...

如何强制所有流量使用 HTTPS一网上用户

如何强制所有流量使用HTTPS一网上用户使用.htaccess强制流量到https的最常见方法可能是使用.htaccess重定向请求。.htaccess是一个简单的文本文件,简称为“.h...

https和http的区别(https和http有何区别)

“HTTPS和HTTP都是数据传输的应用层协议,区别在于HTTPS比HTTP安全”。区别在哪里,我们接着往下看:...

快码住!带你十分钟搞懂HTTP与HTTPS协议及请求的区别

什么是协议?网络协议是计算机之间为了实现网络通信从而达成的一种“约定”或“规则”,正是因为这个“规则”的存在,不同厂商的生产设备、及不同操作系统组成的计算机之间,才可以实现通信。简单来说,计算机与网络...

简述HTTPS工作原理(简述https原理,以及与http的区别)

https是在http协议的基础上加了一层SSL(由网景公司开发),加密由ssl实现,它的目的是为用户提供对网站服务器的身份认证(需要CA),以至于保护交换数据的隐私和完整性,原理如图示。1、客户端发...

21、HTTPS 有几次握手和挥手?HTTPS 的原理什么是(高薪 常问)

HTTPS是3次握手和4次挥手,和HTTP是一样的。HTTPS的原理...

一次安全可靠的通信——HTTPS原理

为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信...

为什么有的网站没有使用https(为什么有的网站点不开)

有的网站没有使用HTTPS的原因可能涉及多个方面,以下是.com、.top域名的一些见解:服务器性能限制:HTTPS使用公钥加密和私钥解密技术,这要求服务器具备足够的计算能力来处理加解密操作。如果服务...

HTTPS是什么?加密原理和证书。SSL/TLS握手过程

秘钥的产生过程非对称加密...

图解HTTPS「转」(图解http 完整版 彩色版 pdf)

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。...

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP与HTTPS的区别,详细介绍(http与https有什么区别)

HTTP与HTTPS介绍超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的...

一文让你轻松掌握 HTTPS(https详解)

一文让你轻松掌握HTTPS原文作者:UC国际研发泽原写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。...

如何在Spring Boot应用程序上启用HTTPS?

HTTPS是HTTP的安全版本,旨在提供传输层安全性(TLS)[安全套接字层(SSL)的后继产品],这是地址栏中的挂锁图标,用于在Web服务器和浏览器之间建立加密连接。HTTPS加密每个数据包以安全方...

一文彻底搞明白Http以及Https(http0)

早期以信息发布为主的Web1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要...

取消回复欢迎 发表评论: