整套解决方案:数据采集的大致流程(离线和实时)

优采云 发布时间: 2020-09-07 04:18

  一般数据流采集(离线和实时)

  一个:采集离线数据处理1、我们的数据来自哪里?

  互联网行业:网站,应用,微信小程序,系统(交易系统...)

  传统行业:电信,人们的数据,例如上网,通话,发短信等。

  数据来源:网站,应用,微信小程序

  我们必须向后端发送请求以获取数据并执行业务逻辑;应用获取要显示的产品数据;向后端发送请求以进行交易和结帐

  网站 / app会将请求发送到后台服务器,通常Nginx会接收到请求并将其转发

  2、背景服务器

  例如,Tomcat,Jetty;但是,实际上,在大量用户和高并发性(每秒超过一万次访问)的情况下,通常不直接将Tomcat用于接收请求。这时,通常使用Nginx接收请求,并且后端连接到Tomcat群集/ Jetty群集,以在高并发访问下执行负载平衡。

  例如,Nginx或Tomcat,在正确配置后,所有请求的数据将存储为日志;接收请求的后端系统(J2EE,PHP,Ruby On Rails)也可以遵循您的规范,每次接收到请求或每次执行业务逻辑时,都会在日志文件中输入日志。

  到目前为止,我们的后端每天可以至少生成一个日志文件,对此毫无疑问

  3、日志文件

  (通常是我们预设的特殊格式),通常每天一本。此时,由于可能有多个日志文件,因为有多个Web服务器。

  此外,由于不同的业务数据存储在不同的日志文件中,因此会有多种日志文件

  一种日志传输工具,例如使用linux crontab计划shell脚本/ python脚本;或使用Java开发后台服务,并使用石英等框架进行调度。该工具负责合并和处理当天到采集的所有日志数据;然后作为日志文件,将其传输到受水槽代理监控的目录。

  4、水槽

  正如我们在上一课中所讨论的,在启动flume代理之后,它可以实时监视Linux系统上的某个目录,以查看是否有新文件进入。只要找到新的日志文件,Flume就会跟随该通道并下沉。一般来说,*敏*感*词*配置为HDFS。

  Flume负责将每日日志文件传输到HDFS

  5、 HDFS

  Hadoop分布式文件系统。 Hadoop分布式文件系统。用于存储每日日志数据。为什么要使用hadoop进行存储。因为Hadoop可以存储大数据,所以可以存储大量数据。例如,每天的日志,数据文件是T,那么一天的日志文件可以存储在Linux系统上,但是问题是一个月或一年。积累大量数据后,不可能将其存储在单台计算机上,而只能存储在Hadoop大数据分布式存储系统中。

  使用Hadoop MapReduce开发自己的MR作业,您可以使用crontab定时调度工具每天定期执行一次;您还可以使用Oozie进行时间安排;您还可以(百度,阿里,腾讯,京东,美团)组建自己的团队来开发复杂的大型分布式计划系统,以对整个公司内所有MapReduce / Hive作业进行计划(对于大型公司,此外负责数据清理,随后的数据仓库建立和数据分析的MR作业以及Hive ETL作业的统计数据可能高达数万,数十万,数百万),清理HDFS中的原创日志并将其写入到HDFS中的另一个文件

  6、数据清理

  Hadoop HDFS中的原创日志数据将进行数据清理。为什么我们需要清理数据?因为我们的许多数据可能是不符合预期的脏数据。

  HDFS:数据清理后存储日志文件。

  将HDFS中的清理数据导入到Hive中的表中。这里可以使用动态分区,Hive使用分区表,每个分区都保存一天的数据。

  7、蜂巢

  蜂巢,底层也是基于HDFS的大数据数据仓库。在数据仓库内外,实际上是一些用于数据仓库建模的ETL。 ETL会将原创日志所在的表转换为数十个甚至数百个表。这几十个甚至数百个表是我们的数据仓库。然后,公司的统计分析人员将为数据仓库中的表执行临时或每日计划的Hive SQL ETL作业。进行大数据统计分析。

  Spark / Hdoop / Storm,大数据平台/系统,都可能使用Hive数据仓库内部的表

  摘要:

  实际上,通常来说,开发将基于Hive中的数据。换句话说,在我们的大数据系统中,数据源都是Hive中的所有表。这些表可能是大量Hive ETL之后建立的数据仓库中的某些表。然后来开发一个满足业务需求的特殊大数据平台。使用大数据平台为公司中的用户提供大数据支持并促进公司的发展

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线