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

厦门电脑网站建设呼伦贝尔市住房和城乡建设局网站

厦门电脑网站建设,呼伦贝尔市住房和城乡建设局网站,旅游网站官网,国外虚拟服务器网站文章目录(一)技术选型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.15wanjia.com/news/195694.html

相关文章:

  • 新闻资讯网站模板下载企业网站怎么制作流程
  • 搜索引擎seo推广做网站优化的话术
  • 本地的响应式网站建设网站自己可以做么
  • 扬中网站推广托管网站外部优化
  • 做网站重庆php 企业网站源码
  • 做维修家具广告在哪个网站好杭州模板网站制作
  • 青岛开发区建网站哪家好做网站什么空间好
  • 做海报 画册的素材网站试题wordpress的特点
  • 网站地图什么时候提交好怎么做亚马逊网站
  • 做网站要用到哪些架包怎么了解百度蜘蛛到哪个网站
  • 宝洁公司网站建设案例屏蔽网页 的网站备案
  • 山东网站推广广西建设网站培训
  • 用python做网站前端广东网站建设服务公司
  • 宁波做网站哪家好南京市溧水区建设局网站
  • 公司网站背景图片服务外贸论坛
  • 微信推广文案范文购物网站优化方案
  • 计算机一级考试网站怎么做国内空间
  • 江西建设推广网站唐山网站建设策划方案
  • 网站建设需要什么书做质量计量的网站有哪些
  • 怎么用服务器搭建网站乐享校园网站建设策划书
  • 网站建设电脑和手机有区别吗服务器建网站
  • 东营网站建设方案范文国内有哪些响应式网站
  • 做的比较好的二手交易网站备案的网站 能拿来做仿站吗
  • 做简单网站的框架图网站微信认证费用
  • 南山做网站关于枪某些网站域名解析错误
  • 淘宝上做网站行吗网站建设网站制作哪个好
  • 最新消息今天的新闻做优化网站建设
  • 西安旅游服务网站建设企业管理系统免费下载
  • 优客逸家网站源码如何推广网站话术
  • 长尾关键词挖掘爱站工具广告策划书包括哪些内容