当前位置: 首页 > news >正文

网站及新媒体建设宣传片网站做301

网站及新媒体建设宣传片,网站做301,wordpress导航下拉,网站建设价格明细表文章目录(一)技术选型1)数据采集工具2)数据存储3)数据计算4)数据可视化(二)整体架构设计(三)服务器资源规划(一)技术选型 1&#xff…

文章目录

  • (一)技术选型
    • 1)数据采集工具
    • 2)数据存储
    • 3)数据计算
    • 4)数据可视化
  • (二)整体架构设计
  • (三)服务器资源规划

(一)技术选型

1)数据采集工具

除了Flume这个数据采集工具,其实还有一些类似的数据采集工具,Logstash、FileBeat,这两个也可以实现数据采集。
那这三个日志采集工具我们需要如何选择呢?
首先从性能消耗上面来说,Flume和Logstash的性能消耗差不多,都是基于JVM执行的,都是重量级的组件,支持多种数据源和目的地。
FileBeat是一个只支持文件数据采集的工具,是一个轻量级组件,性能消耗比价低,它不是基于JVM执行
的,它是使用go语言开发的。

采集数据的情况:
在这里插入图片描述
第一种是把采集工具部署到产生数据的服务器上面
web项目产生的日志数据直接保存在服务器上面,并且这个服务器的性能比较高,可以允许我在上面部署Flume数据采集工具,这样也不会对上面的web项目的稳定性产生什么影响。

第二种是把采集工具部署在一个独立的服务器上面
web项目产生的日志数据直接保存在服务器上面,但是这个服务器的性能一般,并且对web项目的稳定性要求非常高,如果让你在上面部署一个其它服务,这样这个服务器的稳定性就没办法保证了,进而也就无法保证web项目的稳定性了,所以这个时候可以选择在产生日志的时候使用埋点上报的方式,通过http接口把日志数据传输到日志接收服务器中。

那针对第一种情况肯定是要选择一个性能消耗比较低的数据采集工具,优先选择FileBeat针对第二种情况的话就不需要考虑性能消耗了,因为采集工具是在独立的机器上,不会影响web项目,这个时候我们需要考虑的就是采集工具的功能是否完整,因为在采集数据的时候可能需要对数据进行一些简单的处理,以及后期可能会输出到不同的存储介质中。

Flume默认不持直接采集MySQL中的数据,如果想要实现的话需要自定义Source,这样就比较麻烦了其实采集MySQL中的数据有一个比较常用的方式是通过Sqoop实现。
Sqoop中有两大功能,数据导入和数据导出

  • 数据导入是指把关系型数据库中的数据导入HDFS中
  • 数据导出是指把HDFS中的数据导出到关系型数据库中
    我们后期在做一些报表的时候其实也是需要把数据仓库中的数据导出到MySQL中的,所以在这选择qoop也是非常实用的。
    所以针对数据采集这块,我们主要选择了Flume和Sqoop。

2)数据存储

数据采集过来以后,由于我们后面要构建数据仓库,数据仓库是使用Hive实现,Hive的数据是存储在HDFS中的,所以我们把采集到的数据也直接存储到HDFS里面。

还有一点是后期在做一些数据报表的时候,是需要把数据仓库中的数据导出到MySQL中的,所以数据存储也需要使用到MySQL。

3)数据计算

在构建数据仓库的时候,我们前面说了,是使用Hive构建数据仓库,一般的数据处理通过SQL是可以搞定的,如果遇到了比较复杂的处理逻辑,可能还需要和外部的数据进行交互的,这个时候使用SQL就比较麻烦了,内置的函数有时候搞不定,还需要开发自定义函数针对复杂的数据清洗任务我们也可以考虑使用Spark进行处理。

4)数据可视化

在数据可视化层面,我们可以使用Hue进行数据查询
如果想实现写SQL直接出图表的话可以使用Zeppelin
如果想定制开发图表的话可以使用Echarts之类的图表库,这个时候是需要我们自己开发数据接口实现的。

(二)整体架构设计

在这里插入图片描述
我们采集的数据主要分为服务端数据客户端数据
什么是服务端数据,就是网站上的商品详情数据以及你下的订单信息之类的数据,这些数据都是在服务端存储着的,一般是存储在类似于MySQL之类的关系型数据库中,这些数据对事务性要求比较严格,所以会存放在关系型数据库中。

  • 什么是客户端数据呢,就是用户在网站或者app上的一些滑动、点击、浏览、停留时间之类的用户行为数据,这些数据会通过埋点直接上报,这些其实就是一些日志类型的数据了,这种类型的数据没有事务性要求,并且对数据的完整性要求也不是太高,就算丢一些数据,对整体结果影响也不大。
  • 针对服务端数据,在采集的时候,主要是通过Sqoop进行采集,按天采集,每天凌晨的时候把昨天的数据采集过来,存储到HDFS上面。
  • 针对客户端数据,会通过埋点上报到日志接收服务器中,其实这里面就是一个Http服务,埋点上报就是调用了这个Http服务,把日志数据传输过来,日志接收服务收到数据之后,会把数据落盘,存储到本地,记录为日志文件,然后通过Flume进行采集,将数据采集到HDFS上面,按天分目录存储。
  • 服务端数据和客户端数据都进入到HDFS之后,就需要对数据进行ETL,构建数据仓库了。
    数据仓库构建好了以后可以选择把一些需要报表展现的数据导出到MySQL中,最终在页面进行展现。

(三)服务器资源规划

测试环境:
在这里插入图片描述
生产环境:
在这里插入图片描述

说明:
1:由于NameNode开启了HA,所以SecondaryNameNode进程就不需要了
2:NameNode需要使用单独的机器,并且此机器的内存配置要比较高,建议128G
3:DataNode和NodeManager需要部署在相同的集群上,这样可以实现数据本地化计算
5:数据接口服务器需要使用至少两台,为了实现负载均衡及故障转移,保证数据接收服务的稳定性
6:Flume部署在日志服务器上面,便于采集本机保存的用户行为日志信息;还需要有单独的Flume机
器,便于处理其它的日志采集需求
7:Hive需要部署在所有业务机器上
8:MySQL建议单独部署,至少两台,一主一备
9:Sqoop需要部署在所有业务机器上
10:Zeppelin可以单独部署在一台普通配置的机器上即可
11:Azkaban建议至少使用三台,一主两从,这样可以保证一个从节点挂掉之后不影响定时任务的调度

服务器资源计算
针对Hadoop集群的搭建在线上环境需要使用CDH或者HDP
具体Hadoop集群需要使用多少台集群需要根据当前的数据规模来预估
假设集群中的机器配置为8T,64 Core,128G
1:如果每天会产生1T的日志数据,需要保存半年的历史数据: 1T180天=180T
2:集群中的数据默认是3副本: 180T
3=540T
3:预留20%左右的空间: 540T/0.8=675T
这样计算的话就需要675T/8T=85台服务器
如果我们在数据仓库中对数据进行分层存储,这样数据会出现冗余,存储空间会再扩容1~2倍。

注意:没有必要一开始就上线全部的机器,我们可以前期上线30台,后面随着业务数据量的增长再去动态扩容机器即可。

http://www.yayakq.cn/news/59058/

相关文章:

  • 具有口碑的柳州网站建设公司深圳市交易服务中心
  • 投资 公司 网站模板多用户商城源码下载
  • 网站添加微博做二手货的网站有哪些
  • 织梦做的网站首页排版错误全国十大跨境电商平台
  • 怎么做 代刷网站瑞安市公用建设局网站
  • 十堰哪里有做网站的中国建设银行网站怎么登录不上
  • 网站建设属于哪个行业注册一家公司需要什么条件
  • 教育机构网站网站301定向
  • 城市门户网站有没有帮别人做网站
  • 《工程建设》官方网站免费空间使用指南
  • 为什么网站设计很少全屏wordpress自定义作者
  • 河北省住宅和城乡建设厅网站中国域名交易网
  • 个人网站 免备案公司网站建设小江
  • 东莞专业建站公司费用海淀专业企业网站建设
  • 就业网站建设总结绍兴外贸网站建设
  • 网站虚拟空间过期博客建站模板
  • 国外最牛设计网站百度推广客户端下载
  • 一般网站建设电话网站模板之家
  • 第二季企业网站开发php中文网新手学做网站pdf下载
  • 南京自助建站模板丹东 建设集团 招聘信息网站
  • 上海网站建设友汇网站企业云服务
  • 网站界面设计修改要多少钱肇庆百度快速排名
  • 别人网站 自己的域名号号网站开发
  • 肃宁做网站价格wordpress可以多用户吗
  • 网站首页布局设计网站建设个人简历的网页制作
  • 广西送变电建设公司铁塔厂网站手机网站建设视频教程_
  • 永康高端网站设计好友介绍网站怎么做
  • 潍坊个人网站制作asp 精品网站制作
  • 怎样才能把网站做好自考大型网站开发工具
  • 生鲜市场型网站开发事业单位可以建设网站吗