写点什么

架构师训练营 4 期 第 12 周

用户头像
引花眠
关注
发布于: 2021 年 03 月 21 日

作业一(至少完成一项)

大数据处理的应用

在你所在的公司(行业、领域),正在用大数据处理哪些业务?可以用大数据实现哪些价值?


之前在金融行业居多,简要说一下大数据在金融行业的作用以及价值:


  1. 客户画像 通过对客户的信息进行统计整理,为后续的精准营销与风空等做准备

  2. 精准营销 比如个性化推荐

  3. 风控管理 对客户信息的把控,避免风险

  4. 客服等


分析如下 HiveQL

分析如下 HiveQL,生成的 MapReduce 执行程序,map 函数输入是什么?输出是什么,reduce 函数输入是什么?输出是什么?


INSERT OVERWRITE TABLE pv_usersSELECT pv.pageid, u.ageFROM page_view pv   JOIN user u   ON (pv.userid = u.userid);
复制代码



map 的输入 page_view 表


pageid userid1   1112   1111   222
复制代码


user 表:


userid age111 25222 32
复制代码


map 的输出 page_view 表


key value111 {1:1}111 {1:2}222 {1:1}
复制代码


user 表:


key value111  {2:25}222  {2:32}
复制代码


reduce 函数输入:


key value111 {1:1}111 {1:2}111 {2:25}222 {1:1}222 {1:32}
复制代码


reduce 函数输出:


pageid age1 252 251 32
复制代码


作业二:根据当周学习情况,完成一篇学习总结

本周主要是对大数据的基石做了学习


大数据的发展与应用

大数据“三驾马车”:


  1. 分布式文件系统 GFS

  2. 大数据分布式计算框架 MapReduce

  3. NoSQL 数据库系统 BigTable


开源的大数据框架 Hadoop:


  1. Hadoop 分布式文件系统 HDFS

  2. 大数据计算引擎 MapReduce


大数据应用领域:


  1. 医学影像智能识别

  2. 病历大数据智能诊疗

  3. AI 外语老师

  4. 智能解题

  5. 舆情监控与分析

  6. 大数据风控

  7. 新零售

  8. 无人驾驶


HDFS

HDFS 采用了主从(Master/Slave)结构模型,一个 HDFS 集群是由一个 NameNode 和若干个 DataNode 组成的。其中 NameNode 作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的 DataNode 管理存储的数据。


HDFS 设计目标:HDFS 以流式数据访问模式存储超大文件,运行于商用硬件集群上。


不适合 HDFS 的场景,就是与其设计目标相反的场景:


  1. 小文件

  2. 低延迟的数据访

  3. 多用户随机写入修改文件


其设计目标是:


  1. 假设:节点失效是常态

  2. 理想:任何节点失效不影响服务自动完成集群内副本复制


MapReduce

如何进行大规模数据处理,大规模指的是:


  1. 处理海量数据(>1TB)

  2. 上百上千 CPU 实现并行处理


如何简单地实现以上目的: 移动计算比移动数据更划算


MapReduce 特性:


  1. 自动实现分布式并行计算

  2. 容错

  3. 提供状态监控工具

  4. 模型抽象简洁,程序员易用


原理: 它由称为 map 和 reduce 的两部分用户程序组成,然后利用框架在计算机集群上面根据需求运行多个程序实例来处理各个子任务,然后再对结果进行归并。


所以理解 MapReduce 就是要理解 map 的输入输出是什么, reduce 的输入输出是什么。


适合 MapReduce 的计算类型


  1. TopK

  2. K-means

  3. Bayes

  4. SQL 不适合 MapReduce 的计算类型

  5. Fibonacci


资源集群管理系统 Yarn

YARN:Yet Another Resource Negotiator 下一代 MapReduce 框架的名称 特点是:一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行 对比:不再是一个传统的 MapReduce 框架,甚至与 MapReduce 无关。


MapReduce 的架构,在 MapReduce 应用程序的启动过程中,最重要的就是要把 MapReduce 程序分发到大数据集群的服务器上,在 Hadoop 1 中,这个过程主要是通过 TaskTracker 和 JobTracker 通信来完成


主要缺点是,服务器集群资源调度管理和 MapReduce 执行过程耦合在一起,如果想在当前集群中运行其他计算任务,比如 Spark 或者 Storm,就无法统一使用集群中的资源了


随着大数据技术的发展,涌现出了很多计算框架,所以需要把资源管理和计算框架分开,所以 YARN 出现了,成为一个独立的资源调度框架。


Yarn 包括两个部分:


  1. 资源管理器(Resource Manager)调度器 是一个资源分配算法,根据应用程序(Client)提交的资源申请和当前服务器集群的资源状况进行资源分配应用程序管理器 负责应用程序的提交、监控应用程序运行状态等

  2. 节点管理器(Node Manager)


Yarn 的两种主要进程


  1. ResourceManager 进程负责整个集群的资源调度管理,通常部署在独立的服务器上;

  2. NodeManager 进程负责具体服务器上的资源和任务管理,在集群的每一台计算服务器上都会启动,基本上跟 HDFS 的 DataNode 进程一起出现


Yarn 的工作流程(MapReduce 为例):


  1. 我们向 Yarn 提交应用程序,包括 MapReduce ApplicationMaster、我们的 MapReduce 程序,以及 MapReduce Application 启动命令。

  2. ResourceManager 进程和 NodeManager 进程通信,根据集群资源,为用户程序分配第一个容器,并将 MapReduce ApplicationMaster 分发到这个容器上面,并在容器里面启动 MapReduce ApplicationMaster。

  3. MapReduce ApplicationMaster 启动后立即向 ResourceManager 进程注册,并为自己的应用程序申请容器资源。

  4. MapReduce ApplicationMaster 申请到需要的容器后,立即和相应的 NodeManager 进程通信,将用户 MapReduce 程序分发到 NodeManager 进程所在服务器,并在容器中运行,运行的就是 Map 或者 Reduce 任务。

  5. Map 或者 Reduce 任务在运行期和 MapReduce ApplicationMaster 通信,汇报自己的运行状态,如果运行结束,MapReduce ApplicationMaster 向 ResourceManager 进程注销并释放所有的容器资源


HIVE

hive 是基于 Hadoop 的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。hive 数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供 SQL 查询功能,能将 SQL 语句转变成 MapReduce 任务来执行。Hive 的优点是学习成本低,可以通过类似 SQL 语句实现快速 MapReduce 统计,使 MapReduce 变得更加简单,而不必开发专门的 MapReduce 应用程序。hive 十分适合对数据仓库进行统计分析。 –百度百科


HIVE 体系结构:


  1. 用户接口 用户接口主要有三个:CLI,Client 和 WUI

  2. 元数据存储 hive 将元数据存储在数据库中,如 mysql、derby

  3. 引擎(解释器、编译器、优化器、执行器) 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行


发布于: 2021 年 03 月 21 日阅读数: 19
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 4 期 第12周