大数据学习常见问题

JavaEdge 发表于 2022/04/14 17:08:49 2022/04/14
【摘要】 Hadoop几个主要产品的架构都是一主多从。HDFS,一个NameNode,多个DataNode;MapReduce 1,一个JobTracker,多个TaskTracker;Yarn,一个ResourceManager,多个NodeManager。Storm,一个Nimbus,多个Supervisor;Spark,一个Master,多个Slave。大数据因为要对数据和计算任务进行统一管理,...

Hadoop几个主要产品的架构都是一主多从。HDFS,一个NameNode,多个DataNode;MapReduce 1,一个JobTracker,多个TaskTracker;Yarn,一个ResourceManager,多个NodeManager。Storm,一个Nimbus,多个Supervisor;Spark,一个Master,多个Slave。

大数据因为要对数据和计算任务进行统一管理,所以和互联网在线应用不同,需要一个全局管理者。而在线应用因为每个用户请求都是独立的,而且为了高性能和便于集群伸缩,会尽量避免有全局管理者。

所以我们从Hadoop中可以学到大数据领域的一个架构模式,也就是集中管理,分布存储与计算

学习方法

学习新知识遵循5-20-2法则:

  • 5分钟的时间了解这个新知识的特点、应用场景、要解决的问题

    如果5分钟不能搞懂它要解决的问题,我就会放弃

  • 20分钟理解它的主要设计原理、核心思想和思路

    20分钟没有理解它的设计思路,我也会放弃

  • 2个小时看关键的设计细节,尝试使用或者做一个demo

    2个小时还上不了手,我也会放一放

你相信我,一种真正有价值的好技术,你这次放弃了,它过一阵子还会换一种方式继续出现在你面前。这时,再尝试用5-20-2法则学习,也许就理解了。

有时学一样新技术却苦苦不能入门,可能仅仅就是因为你看的文章、书籍本身写的糟糕,或者作者写法跟你的思维方式不对路而已,并不代表这个技术有多难,更不代表你的能力有问题,如果换个方式、换个时间、换篇文章重新再看,可能就豁然开朗了。

实时计算的结果,一般都存储在什么库上?便于实时展示

实时计算的结果一般通过两种方式输出:

  • 写入到数据库里,和离线计算的结果组成全量数据供业务使用

  • 通过Kafka之类的实时队列给业务,比如你提到的监控展示

HDFS水平伸缩的文件读写速度比起垂直伸缩的速度理论上会慢很多,如何保证速度?

并不会慢,影响文件读写速度的是磁盘的速度。同样的数据量、同样类型的磁盘,HDFS能将数据分布在更多的服务器和磁盘,肯定比单机的几块磁盘速度更快。

HDFS常用的使用方式是结合MapReduce或Spark大数据计算框架进行计算,这些计算框架会在集群中启动很多的分布式计算进程同时对HDFS上的数据进行读写操作,数据读写的速度非常快,甚至能支撑起Impala这样的准实时计算引擎。

互联网应用中,用户从手机或者PC上发起一个请求,请问这个请求数据经历了怎样的旅程?完成了哪些计算处理后响应给用户?

一个请求从Web或者移动App上发起,请求的URL是用域名标识的,如taobao.com,而HTTP网络通信需要得到IP地址才能建立连接,所以先要进行域名解析,访问域名解析服务器DNS,得到域名的IP地址。

得到的这个IP地址其实也不是淘宝的服务器的IP地址,而是CDN服务器的IP地址,CDN服务器提供距离用户最近的静态资源缓存服务,如图片、JS、CSS。若CDN:

  • 有请求需要的资源就直接返回

  • 若无,再把请求转发给真正的淘宝数据中心服务器。

请求到达数据中心后,首先处理请求的是负载均衡服务器,它会把这个请求分发给下面的某台具体服务器处理。这台服具体的服务器通常是反向代理服务器,也缓存着大量静态资源,淘宝也会把一些通常是动态资源的数据,比如我们购物时经常访问的商品详情页,把整个页面缓存在这里:

  • 若请求的数据在反向代理服务器,就返回

  • 若无,请求将发给下一级的负载均衡服务器

这一级的负载均衡服务器负责应用服务器的负载均衡,将请求分发给某Java Web容器处理。在Java Web容器之前,还前置了一台Nginx服务器,做一些前置处理。

应用服务器根据请求,调用后面的微服务进行逻辑处理。若为写请求,如下单,应用服务器和微服务之间通过MQ进行异步操作,避免对DB造成太大压力。

微服务若在处理过程中需读取数据,会去缓存服务器查找,若没找到,就去查DB或NoSQL,甚至搜索引擎,得到数据后,计算,将结果返给应用服务器。

应用服务器将结果包装成前端需要格式后返回,经过前面的访问通道,最后到达用户发起请求的地方,完成一次互联网请求的旅程。

架构图表示的流程:

img

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。