实时文章采集(大数据存储与分析毋庸置疑,HDFS是这两年非常火的)
优采云 发布时间: 2021-10-23 20:12实时文章采集(大数据存储与分析毋庸置疑,HDFS是这两年非常火的)
有可能一些合作伙伴提供的数据需要通过Ftp/Http等方式定期获取,DataX也可以满足这种需求。
4、其他数据源
比如一些人工录入的数据,只需要提供一个界面或者一个小程序就可以完成。
推荐Spring Boot的实战项目:
02 大数据存储与分析
毫无疑问,HDFS是大数据环境下数据仓库/数据平台的完美数据存储解决方案。
离线数据分析计算,即对实时性要求不高的部分。在我看来,Hive仍然是首选,数据类型丰富,内置函数;ORC文件存储格式,压缩率非常高;非常方便的SQL支持,使得Hive基于结构化数据的统计分析效率远超MapReduce。一条SQL就可以完成需求,开发MR可能需要几百行代码;
当然,使用Hadoop框架自然也提供了MapReduce接口。如果你真的很乐意开发Java或者不熟悉SQL,你也可以使用MapReduce进行分析和计算;
Spark在过去两年非常流行。经过实践,它的性能确实比MapReduce好很多,而且和Hive和Yarn结合越来越好。因此,它必须支持使用 Spark 和 SparkSQL 进行分析和计算。因为已经有了 Hadoop Yarn,所以其实用 Spark 是非常容易的,不需要单独部署 Spark 集群。
推荐我做的Spring Cloud的实际项目:
03 大数据共享
这里的数据共享其实是指之前的数据分析计算的结果存放的地方,其实就是关系型数据库和NOSQL数据库;
之前使用Hive、MR、Spark、SparkSQL的分析计算结果还在HDFS上,但是大部分业务和应用无法直接从HDFS获取数据,所以需要一个数据共享的地方,方便所有业务和产品获取数据; 而数据采集层到HDFS正好相反,这里有一个工具,用于将数据从HDFS同步到其他目标数据源。同样,DataX 也可以满足。
另外,一些实时计算结果数据可以直接写入实时计算模块的数据共享中。
04 大数据应用
1、商业产品(CRM、ERP等)
业务产品使用的数据已经存在于数据共享层,可以直接从数据共享层访问;
2、报表(FineReport,业务报表)
对于同一个业务产品,报表中使用的数据一般都是在数据共享层进行采集和存储;
3、临时查询
有许多用户进行临时查询。他们可能是数据开发人员、网站 和产品运营商、数据分析师,甚至是部门老板。他们都需要临时查询数据;
这种临时查询通常是现有的报表和数据共享层数据不能满足他们的需求,需要直接从数据存储层查询。
Ad hoc 查询一般通过 SQL 完成。最大的难点在于响应速度。使用 Hive 有点慢。您可以使用 SparkSQL。它的响应速度比Hive快很多,并且兼容Hive。
当然,如果您不关心平台中的多一个框架,您也可以使用Impala。
4、OLAP
目前很多OLAP工具不支持直接从HDFS获取数据。它们都通过将所需数据同步到关系数据库来执行 OLAP。但是,如果数据量很大,关系型数据库显然不够用;
这时候就需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP功能;例如:根据用户在界面上选择的不确定维度和指标,通过开发界面,从HBase中获取数据进行展示。
5、其他数据接口
这种接口是通用的或定制的。比如Redis获取用户属性的接口是通用的,所有业务都可以调用这个接口来获取用户属性。
05 实时数据计算
现在业务需要越来越多的实时数据仓库,比如:实时了解网站的整体流程;实时获取广告的曝光度和点击量;海量数据下,依靠传统的数据库和传统的实现方式基本上是做不到的。需要一个分布式、高吞吐量、低延迟、高可靠的实时计算框架;Storm在这方面比较成熟,但是我选择Spark Streaming的原因很简单,我不想再向平台引入一个框架。另外,Spark Streaming 的延迟比 Storm 稍高,对于我们的需求可以忽略。
我们目前使用Spark Streaming来实现两个功能:实时网站流量统计和实时广告效果统计。
方法也很简单。Flume在前端日志服务器上采集网站日志和广告日志,实时发送到Spark Streaming。Spark Streaming 完成统计并将数据存储在 Redis 中。业务实时访问Redis获取。
06 任务调度与监控
在数据仓库/数据平台中,有很多程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;
除了计划任务之外,这些任务还具有非常复杂的任务依赖关系。比如数据分析任务必须等到对应的数据采集任务完成后才可以开始;数据同步任务需要等到数据分析任务完成后才能开始;
这就需要一个非常完善的任务调度和监控系统。作为数据仓库/数据平台的中心,负责调度和监控所有任务的分配和运行。
欢迎加入我的知识星球,讨论架构,交流源码。要加入,请按住下面的二维码:
知识星球更新了源码,分析如下:
最近更新的《太郎SpringBoot2.X入门》系列,101多篇,涵盖MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket 、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等。
提供近3W行代码的SpringBoot示例,4W行以上代码的电商微服务项目。