Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >花了1个月学大数据,我想说...

花了1个月学大数据,我想说...

原创
作者头像
王二蛋
发布于 2024-11-13 08:30:57
发布于 2024-11-13 08:30:57
3.1K0
举报

在阅读这篇文章前,推荐一篇“好”文章:Spring AI 再更新:如何借助全局参数实现智能数据库操作与个性化待办管理

这篇文章利用 Spring AI 实现当下热度非常高的生成式AI一个案例,对于Javaer来说,绝对是一个不错的学习机会。

前言

第一次听说大数据是在18年左右,那个时候也才刚入行还在CRUD,对大数据这么高端的技术没有什么概念,只知道很牛逼,就买了一本《Hadoop 权威指南》。至今已经6、7年了,也只看了第一章的第一节《数据!数据!》,现在还陈列在我的书架上的第一排。

虽然这期间再也没有进行学习,但毕竟是程序员嘛,多少会接触到大数据相关的一些边缘工作,说起大数据的一些技术也都不陌生,比如Hadoop、Spark、Flink什么的,但总归是没有深入了解。这次花了1个月的时间,集中学习大数据的一些技术,一来看看这里面到底是怎么个事,二来作为一名内容创作者,顺便积攒一些题材(虽然不太新鲜)。

本文就来总结一下我学习大数据技术的内容、遇到的问题以及自己的理解,希望对想要了解大数据的小伙伴有一些借鉴。如果文中有描述不到位的知识点,也请各位大佬指正。

大数据:说说吧

我一直秉持一个学习理念,就是学习某个技术先了解其历史,即:这个技术诞生的背景以及解决的问题(本文也会有体现),即便它已经被淘汰。因此,我先了解了大数据技术的发展历程,然后对当前市场上受欢迎的技术逐个深入。

这一个月下来,虽说没有掌握所有技术的思想和原理,但最起码清楚每个技术诞生的背景、解决的问题以及不足之处,也算是建立了我对大数据的认知。

下面是我对这些技术按照职能进行的分类。

在学习的过程中,【数据集成工具】类投入的时间最少,只是简单的了解了下功能。有两个原因:

  1. 作为和大数据存储和数据源(数据库等)之间采集、抽取、转换、同步的工具,稍微想一想就知道如何实现,个人认为没有深入学习的必要。
  2. 我本身并不是一个大数据开发工程师,没有实操的需求,等需要的时候再去用。

这些数据集成工具在这里提一下,文中不再介绍。

其次是Hive、HBase基于存储和计算的上层应用。

【数据计算】类投入的时间最长,尤其是 Spark,占了一半的时间。主要是在这个部分总会冒出很多个为什么,一次次地花费时间去找答案。

下面对这些技术进行总结说明,希望可以为0基础的你构建对大数据技术的认知。

Hadoop :我是恁爹

就如上图中的技术分类,大数据技术主要解决的就是海量数据的存储和计算问题

这两个问题的解决方案最先被 Google 被提出,用于解决 Google 搜索引擎海量的网页存储和索引的构建。对应的技术就是日后被人所熟知的 HDFSMapReduce

不关注大数据的可能对这两个名词比较陌生,但是Hadoop大家一定都听说过吧。HDFS 和 MapReduce 就是 Hadoop 项目中的两个核心组件,一个用于解决海量数据存储问题,一个用来解决海量数据计算问题

HDFS:我解决了存储

HDFS 全称为分布式文件系统,没错,只要是涉及到分布式,任何一个大问题都能分成多个小问题一一解决,所以大数据技术的本质的也是分而治之

HDFS 的分而治之就是将一个大文件切分成多个数据块分布在不同服务器上存储,如下图

DataNodes 就是用来存储这些数据块的服务器集群,物理表现就是一群 JVM 进程。NameNode 是用来管理一个大文件被分了多少块、分别存在哪个服务器,方便查找定位。

HDFS 整体思想比较容易理解,但实现起来并不简单,背后还要考虑很多问题,例如文件如何分片、如何保证数据不丢失、某个服务器故障怎么办、如何实现数据的扩展性等等。

如果对这些实现细节感兴趣,请关注我,欢迎大家一起交流。

MapReduce:我解决了计算

存储问题解决了,计算问题是如何解决的?

试想一下,要计算一个大小为100G的文件中某个字符出现的次数,应该怎么做?

用一个计算节点读取分布在 HDFS 中的一个个数据块进行计算?那这个计算节点需要多大的内存?即便有这么大的内存,多久能计算完?

如果你是这样的想法,请跳出单机思维

看下 MapReduce 是怎么做的。

MapReduce 作为大规模计算框架,它的核心思想是这样的:既然一个大文件可以作为多个数据块存储在 HDFS 集群中,那何不将计算的程序直接传输到这些数据块所在的节点进行分布式计算?

以128M(HDFS 默认分割大小)为一个数据块,100G得有800个数据块。如果按照单机思维,最少要进行800次128M的传输。但如果把一个1M大小的程序传输800次,是不是比前者划算?这也是大数据计算中非常重要的一个思想:移动计算比移动数据更划算

而之所以叫 MapReduce,是因为 MapReduce 将计算分为了 Map 和 Reduce 两个阶段。开发人员在编码时只需要编写 Mapper 和 Reducer 的实现即可,不用关注程序的移动、计算结果的聚合等分布式编程工作

以统计字符出现次数的代码为例:

代码语言:java
AI代码解释
复制
public class WordCount {

  public static class TokenizerMapper 
       extends Mapper<Object, Text, Text, IntWritable>{
    
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();
      
    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }
  
  public static class IntSumReducer 
       extends Reducer<Text,IntWritable,Text,IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, 
                       Context context
                       ) throws IOException, InterruptedException {
      int sum = 0;
      for (IntWritable val : values) {
        sum += val.get();
      }
      result.set(sum);
      context.write(key, result);
    }
  }

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
    if (otherArgs.length < 2) {
      System.err.println("Usage: wordcount <in> [<in>...] <out>");
      System.exit(2);
    }
    Job job = Job.getInstance(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    for (int i = 0; i < otherArgs.length - 1; ++i) {
      FileInputFormat.addInputPath(job, new Path(otherArgs[i]));
    }
    FileOutputFormat.setOutputPath(job,
      new Path(otherArgs[otherArgs.length - 1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

main方法执行后,最终会将 Mapper 和 Reducer 的实现作为计算任务分发到数据所在的节点。这样,每个计算任务只用计算128M的数据,800个计算任务同时计算就达到了并行计算的效果,从而实现海量数据的快速计算。

并行计算大概是这样:

每个节点都会先执行 Map 任务(TokenizerMapper) ,将字符出现的次数设置为1,并输出为map(key,value)格式。然后执行 Reduce 任务 (IntSumReducer)将相同字符(key)的次数相加,最后将各节点的结果聚合。

总之,MapReduce 解决了海量数据计算的问题,提供 Map 和 Reduce 这样简单的编程模型,也简化了开发人员对大数据计算的编程难度。

MapReduce 是如何进行任务分发的、计算结果是如何聚合的?如果对这些实现细节感兴趣,请关注我,欢迎大家一起交流。

Hive:还是SQL好用

虽说 MapReduce 简化了大数据编程的难度,但是如果每来一个需求都要写一个 MapReduce 代码,那岂不是太麻烦了。尤其是在全民“CRM”的2000年代,对于像数据分析师已经习惯使用SQL进行分析和统计的工程师,让他们去 MapReduce 编程还是有一定的难度

所以,又先后出现了 Pig、Hive 基于 MapReduce 的上层应用,前者通过将 Pig Latin 编程语言编写的脚本转换为 MapReduce 计算任务,后者通过将 HiveQL 转换为 MapReduce 程序。总之,都是为了再次简化大数据计算的难度。

有着近似 SQL 语言的 Hive 就比较非常受欢迎(本文主要介绍 Hive),因为非 Java 编程者可以通过 SQL 语句对 HDFS 的数据实现 MapReduce 操作,从而完成大数据计算的工作

通过实操更直观的感受一下 Hive 到底是啥。

既然涉及到SQL,那一定会存在表名、列名,Hive 自然而然承担了表名、列名、数据类型等元数据和 HDFS 文件数据映射关系的管理

以下面的 HiveQL 为例,创建的表最终会根据hive.metastore.warehouse.dir配置,在 HDFS 生成一个名为test的目录。

CREATE TABLE test(id int,name string,age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

执行HiveQL
执行HiveQL
test表在HDFS的体现
test表在HDFS的体现

再以下面的 HiveQL 为例,添加的数据最终会在test目录下体现。

insert into test values (1,'zs',18),(2,'ls',19),(3,'ww',20);

test表数据在HDFS的体现
test表数据在HDFS的体现

通过下图可以发现,在执行 insert 语句时会转化为 MapReduce 任务并执行,所以会发现这个过程比传统数据库慢很多,当然,Hive并不是为这么点数据量诞生的,也不仅仅只支持这样简单的场景。

执行HiveQL
执行HiveQL

通过上面的示例,是不是感觉 Hive 和数据库差不多?

Hive 本身的技术架构确实没有什么创新,就是成熟的数据库技术和HDFS、MapReduce的结合体。有 HDFS 这样的存储底座可以存储大量的数据,又可以通过 SQL 语句实现数据的统计和分析,Hive 又被称为数据仓库

如果对数据仓库没有概念的可以看下oracle对数仓的定义。

思考:select avg(age) from test 这样的 SQL 会转换成什么样的 MapReduce 程序,欢迎评论区交流。

Spark :我快呀~

在 MapReduce 为海量数据的计算服务多年后,随着时代的发展和 Spark 等新技术的出现,它的劣势也慢慢的凸显出来了:

  1. 执行速度慢
  2. 编程复杂度过高

先看第一点

2000 年代诞生的 MapReduce ,因为计算资源有限,所以 MapReduce 在计算完成后会将结果写回HDFS中,也就是落盘

以上面800个数据块为例子,MapReduce 会有800次的 Map 计算结果落盘以及多个 Reduce 计算结果聚合(这个行为有一个专业的术语: Shuffle,这里不具体说明)。

按照现在的思维,大家肯定认为结果应该写在内存中,但实际情况就像上面所说:计算资源有限。为了让大家有所概念,这里看下2000年的内存报价。

2000年内存报价
2000年内存报价

所以在那个时候,大家并不会觉得慢,也不会认为有什么问题。

再看第二点(编程复杂度过高)

虽说 Pig、Hive 已经对 MapReduce 编程进行封装降低了海量数据计算的难度,但是在构造一些复杂计算需求时依然需要进行 MapReduce 编程。

由于 MapReduce 的计算模型只有 Map 和 Reduce 两个阶段,在实现复杂计算需求时就要编写多个 Mapper 和 Reducer 的实现。不仅如此,还要协调这些 MapReduce 任务顺序,甚至要设计一个协调系统。如此一来,就增加整个系统的复杂度。

Spark 的诞生有效的解决了这两个问题。

Spark 是什么?

Spark 和 MapReduce 一样,都是一个计算引擎,都是为了解决海量数据计算。两者的工作流程大体类似,都是分而治之,都是移动计算只不过 Spark 利用内存存储计算结果使得任务执行更高效,提供的编程模型使得编程更简单

Spark 的高效通过文字很难体现,后面会专门写一篇相关的文章。

大家可以通过下面的代码直观的感受一下 Spark 编程的简易程度。

代码语言:scala
AI代码解释
复制
val textFile = sc.textFile("hdfs://...")
val counts = textFile.flatMap(line => line.split(" "))
                 .map(word => (word, 1))
                 .reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://...")

这段和 MapReduce 的 WordCount 程序达到同样的目的,但是只用了三行代码(了解函数式编程应该不难理解)。

所以,Spark 出现后早就没有人去用 MapReduce 了。但这并不影响 MapReduce 的地位,毕竟它的设计思想影响了很多技术,例如Spark。

和 MapReduce 相比,Spark 确实有很多概念比较晦涩难懂,例如 RDD、DAG、Stage。还有在学习的过程中对 Spark 的一些描述产生的疑问,例如“为什么说 Spark 是内存计算?计算不都基于内存?”,以及随之而来的“Spark 的高效到底体现在哪里?”、“同一个 Stage 的多个算子是最终由几个任务执行?”等等。最后,只能通过一遍遍的的教程和源码来解答心中的疑问。

由于文章篇幅的原因,如果你和我一样有同样的疑问,请关注我,欢迎大家一起交流。

Flink:你俩不行,还是我“流”的好

上面所说的 MapReduce 和 Spark ,都是在解决海量数据计算问题,这里说的海量数据有一个特点就是:已经存在的,例如历史数据。

对于 MapReduce 和 Spark 来讲,这些数据是一大批数据,也称之为有界数据,对这些数据的计算就称为批计算

随着移动互联网、物联网的兴起,每分每秒都在产生大量的数据,例如传感器产生的数据、订单交易数据、用户行为记录等。这些无时不刻都在产生的数据,我们称之为无界数据流数据。通常被用于用户行为分析进行实时推荐、销售数据实时分析进行营销策略调整等场景。

MapReduce 和 Spark 这样的批计算系统就满足不了实时计算的需求。所以就诞生了 Storm、Spark Streaming、Flink这些流计算系统

批计算和流计算整体工作流程大体一致,都有任务调度、计算结果聚合等过程。只不过因为数据源的原因,执行细节上会有所不同。这里有几个概念需要进行区分,避免混淆:

  • 资源(计算节点)分配: - 批计算是对一批数据进行一次计算,所以在每次调度计算任务时分配资源,计算完成后,对应的资源就会被释放,下次在执行时重新分配资源。 - 流计算是对实时流进系统的数据进行不间断的计算,所以计算资源会一次分配完成,后续的计算任务会一直运行,直到程序异常任务停止才会释放资源。
  • 任务调度: - 批计算是因为历史数据量过大,数据源是分布在各个节点的数据块,所以会根据数据所在地进行任务调度(数据、计算本地化)。 - 流计算数据源通常是Socket、Kafka中的一条条数据,所有的计算任务在这之前已经根据并行度调度到各个节点,数据来临时根据某个策略分配给某个计算任务。

由于 Spark Streaming 是建立在 Spark 基础上,所以任务执行还是 Spark 的逻辑,所以 Spark Streaming 算是一个“伪”流计算系统,属于批计算这一波。

简单来说 Spark Streaming 通过很小的时间间隔(例如1秒)将实时数据收集为“微批”数据,然后然后交给 Spark 处理。

Spark Streaming 微批数据
Spark Streaming 微批数据

因为是间隔一段时间再去计算,所以在实时性方面,Spark Streaming 就不如 Flink,现在说起流计算基本上就是在讨论 Flink 了。不过两者的架构和概念有很多相似的地方,也都是函数式编程。如果掌握了 Spark ,学习 Flink 也就非常简单轻松了。

至于 Storm ,作为早期的实时计算引擎并不支持有状态计算和exactly-once的语义,以及编码相对复杂,所以现在也慢慢被大家遗忘。

如果有“Spark Streaming 收集的数据是怎么分区的?”、“什么是有状态计算和exactly-once语义?”、“Flink 是如何做到数据、计算本地化?”等疑问的,请关注我,欢迎大家一起交流。

HBase:恁爹的数据库

HBase 和 HDFS、MapReduce 是 Google 三篇大论文对应的开源实现。全称为 Hadoop DataBase ,看到这个名称也就不难理解,HBase 是一款数据库。

提到数据库大家应该就有概念了,只不过 HBase 是非关系型数据库、是基于 HDFS 实现的分布式 NoSQL 数据库。

NoSQL 大家应该都不陌生,RedisMongoDB等一度要替代 SQL 的 No SQL 到后来的 Not Only SQL 的各式各样数据库。所以 HBase 本身也是不支持SQL语句的。

虽然基于 HDFS 存储,但是HBase却支持数据的实时增删改查。

这里有个概念需要知道:

传统的关系型数据库是单机的,想要做到实时的增删改查是比较容易的。但是 HDFS 中的一个文件是要分布在不同的节点上,实时添加一条数据相对容易,直接在文件末尾追加数据即可。删除、修改这样的更新操作还要去定位到数据,是怎么做到实时的?

带上问题去了解 HBase,欢迎大家一起交流。

Yarn:你丫都厉害,我就一跑腿的

其实在大数据技术中还有一个特别重要的技术,那就是Yarn。

作为 Hadoop2.0从 MapReduce 中分离出来的组件,Yarn 已经是一个通用的资源调度管理平台,MapReduce 也可以专注于计算任务的调度工作。

那资源调度是干什么的?

简单来说,大数据的存储和计算通常会由集群中的多个节点共同完成,这些节点就是资源。Yarn 知道集群中有哪些资源可用、哪些不可用,无论是 MapReduce、Spark 或 Flink 都可以通过 Yarn 统一安排资源,统一使用集群中的资源。这样,在一个大数据平台中,如果涉及到多个计算引擎,也不用部署多个资源管理集群。

在学习过程中可能会发现 MapReduce、Spark 和 Flink 也有自己的资源管理器,随之产生疑问:“各计算引擎知道自己的数据在哪,可以进行任务调度,Yarn 是怎么知道数据在哪?怎么进行任务调度?”

Yarn 确实不知道,但是你的程序会在 Yarn 中执行(ApplicationMaster),在申请资源时 Yarn 会返回一堆的资源交给计算引擎。任务调度最终还是各计算引擎自己去调度,各计算引擎需要做的就是实现 Yarn 提供的接口,例如 MapReduce 的 MRAppMaster。所以,只要实现了 Yarn 的接口规范,都可以被 Yarn 调度管理。

像 Yarn、K8s这样的资源调度平台,都是把资源的管理、分配以及计算任务调度、容错做到了自动化,可以提高资源的利用率,减少开发运维人员的工作量。

这么多技术,如何应用?

在实际的工作中,这些大数据技术都是协同工作的。例如,使用 Hive、Spark或Flink对数据进行分析,然后将结果存储到HBase中实现实时查询,再例如 Spark on Hive 或者 Hive on Spark等等,再例如 MapReduce、Spark、Storm、Flink这些计算任务都可以通过 Yarn 进行调度。

下图是一个典型的互联网大数据平台的架构。

下图是美团大数据平台的架构,感兴趣的可以了解一下。

说的差不多了...

最后,我回应网上流传的一句话结尾,那就是“大数据都凉了,学这干啥?”

我想说:

很多技术的思想是相通的,如果不了解过去?怎么探知未来?认知又如何提高呢?

Google发表的三篇论文开启了大数据的时代,在这20年里诞生了很多的大数据技术。有的技术尽管在初期发挥了重要作用,但因为时代的发展以及新技术的诞生已经边缘化(例如MapReduce、Storm)。有的技术在诞生至今一直是大数据领域的核心的一部分(例如HDFS)。也有些技术因为自身的优势以及丰富的生态,成为各自领域的热门选择(例如Spark、Flink)。无论如何,这都是技术发展演进的必经之路。

而大数据的分布式思想已经远远超出了本身,体现在了在不同领域。例如,在应用开发中涉及到的高可用、高并发、微服务等技术都有分布式的影子,都是分而治之的思想。所以我认为,学习一门技术就是在学习它的思想。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大数据简介,技术体系分类整理
大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据技术则主要用来解决海量数据的存储和分析。
知了一笑
2020/09/19
1K0
大数据技术体系梳理
来一起认识下大数据的技术框架有哪些,它们分别用于解决哪些问题?它们的内在逻辑和适用场景有哪些?OK,一起去探索下。
十里桃花舞丶
2021/01/05
1.7K0
大数据技术体系梳理
大数据常用技术栈
提起大数据,不得不提由IBM提出的关于大数据的5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性),而对于大数据领域的从业人员的日常工作也与这5V密切相关。大数据技术在过去的几十年中取得非常迅速的发展,尤以Hadoop和Spark最为突出,已构建起庞大的技术生态体系圈。 首先通过一张图来了解一下目前大数据领域常用的一些技术,当然大数据发展至今所涉及技术远不止这些。
大数据学习与分享
2020/07/24
1.7K0
大数据常用技术栈
【建议收藏】大数据Hadoop实战入门手册,配套B站视频教程1小时速通
大数据技术是一组用于处理、存储和分析大规模数据集的技术和工具。随着数字化时代的到来,数据量的爆炸性增长使得传统的数据处理和分析方法变得不够高效,因此大数据技术应运而生。
十里桃花舞丶
2024/07/31
4670
【建议收藏】大数据Hadoop实战入门手册,配套B站视频教程1小时速通
一文看懂大数据生态圈完整知识体系
随着大数据行业的发展,大数据生态圈中相关的技术也在一直迭代进步,作者有幸亲身经历了国内大数据行业从零到一的发展历程,通过本文希望能够帮助大家快速构建大数据生态圈完整知识体系。 目前大数据生态圈中的核心技术总结下来如图1所示,分为以下9类,下面分别介绍。 1 数据采集技术框架 数据采集也被称为数据同步。 随着互联网、移动互联网、物联网等技术的兴起,产生了海量数据。这些数据散落在各个地方,我们需要将这些数据融合到一起,然后从这些海量数据中计算出一些有价值的内容。此时第一步需要做的是把数据采集过来。数据采集是大
江南一点雨
2022/08/25
1.1K0
一文看懂大数据生态圈完整知识体系
Hadoop生态圈各种组件介绍
好多初入学习大数据的人不是很清楚,今天分享一个图,并介绍一下大致的组件,其他还有一些组件是没有包含在其中的,但是大部分这个图片是有了的。
全栈程序员站长
2022/08/31
2.2K0
Hadoop生态圈各种组件介绍
大数据平台是否更应该容器化?
作者颜卫,腾讯高级后台开发工程师,专注于Kubernetes大规模集群管理和资源调度,有过万级集群的管理运维经验。目前负责腾讯云TKE大规模Kubernetes集群的大数据应用托管服务。
Spark学习技巧
2021/03/05
3.1K1
大数据平台是否更应该容器化?
风险数据集市整体架构及技术实现
在当今大数据时代,风险数据集市作为金融机构的核心基础设施之一,扮演着至关重要的角色。它不仅为银行、保险等金融机构提供了全面、准确的风险数据支持,还帮助这些机构实现了风险管理的精细化和智能化。本文将深入探讨一种基于大数据Lambda架构设计的风险数据集市整体架构,并详细介绍其底层实现原理及实现方式。
小马哥学JAVA
2024/11/11
1860
Hadoop大数据生态系统及常用组件
什么是大数据,多大算大,100G算大么?如果是用来存储1080P的高清电影,也就是几部影片的容量。但是如果100G都是文本数据,比如云智慧透视宝后端kafka里的数据,抽取一条mobileTopic的数据如下:【107,5505323054626937,局域网,局域网,unknown,0,0,09f26f4fd5c9d757b9a3095607f8e1a27fe421c9,1468900733003】,这种数据100G能有多少条,我们可想而知。
程序狗
2021/12/16
8840
风险数据集市整体架构及技术实现
在当今大数据时代,风险数据集市作为金融机构的核心基础设施之一,扮演着至关重要的角色。它不仅为银行、保险等金融机构提供了全面、准确的风险数据支持,还帮助这些机构实现了风险管理的精细化和智能化。本文将深入探讨一种基于大数据Lambda架构设计的风险数据集市整体架构,并详细介绍其底层实现原理及实现方式。
小马哥学JAVA
2024/11/12
2850
风险数据集市整体架构及技术实现
大数据技术学习带来的思考
最基本的存储技术。日常应用把通过各种渠道得到的数据,如关系数据库、日志、埋点、爬虫数据都存储到HDFS,供后续使用。
JavaEdge
2022/04/27
3460
大数据技术学习带来的思考
剑谱总纲 | 大数据方向学习面试知识图谱
本系列主题是大数据开发面试指南,旨在为大家提供一个大数据学习的基本路线,完善数据开发的技术栈,以及我们面试一个大数据开发岗位的时候,哪些东西是重点考察的,这些公司更希望面试者具备哪些技能。
王知无-import_bigdata
2019/09/10
1.4K0
剑谱总纲 | 大数据方向学习面试知识图谱
如何读懂大数据平台—写给大数据开发初学者的话 | 附教程
本文介绍了大数据平台在机器学习方面的应用,包括数据存储、数据处理、数据建模、模型验证、模型部署、数据服务、数据治理等方面。同时,还介绍了机器学习框架和算法,以及如何在大数据平台上实现机器学习。
挖掘大数据
2017/12/21
5K3
0基础学习大数据,你需要了解的学习路线和方向?
现在大数据这么火,各行各业想转行大数据,那么问题来了,该往哪方面发展,哪方面最适合自己?
用户2292346
2018/06/12
1.4K3
0基础学习大数据,你需要了解的学习路线和方向?
大数据初学者该如何快速入门?
很多人都知道大数据很火,就业很好,薪资很高,想往大数据方向发展。但该学哪些技术,学习路线是什么样的呢?用不用参加大数据培训呢?如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么大讲台老师就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣。
挖掘大数据
2018/01/17
4.7K0
盘点大数据生态圈,那些繁花似锦的开源项目
随着互联网和移动互联网的发展,时下我们正处在一个大数据的时代。在数据金山的诱惑下,各个机构纷纷开始探索从数据中提取洞见并指导实践的可能。而在这个需求的刺激下,在过去数年,大数据开源生态圈得到了长足的发展——在数据的整个生命周期中,从收集到处理,一直到数据可视化和储存,各种开源技术框架林立。 以这些开源技术为基石,业内涌现出一系列令人敬佩的大数据架构实践,而《程序员》电子刊9月B大数据实战与技术专题则摘录了电商、金融、游戏等行业的大数据应用,并覆盖了当下热门的大数据开源技术实践与技术细节,如Hadoop、Sp
CSDN技术头条
2018/02/09
8050
盘点大数据生态圈,那些繁花似锦的开源项目
从0到1,成为大数据行业领袖
目前最火的大数据,很多人想往大数据方向发展,想问该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业
Java高级架构
2018/04/19
6840
从0到1,成为大数据行业领袖
【智能大数据分析 | 实验一】MapReduce实验:单词计数
MapReduce 是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。这样做的好处是可以在任务被分解后,可以通过大量机器进行并行计算,减少整个操作的时间。
Francek Chen
2025/01/22
2120
【智能大数据分析 | 实验一】MapReduce实验:单词计数
进击大数据系列(一):Hadoop 基本概念与生态介绍
大数据(big data),指的是在一定时间范围内不能以常规软件工具处理(存储和计算)的大而复杂的数据集。说白了大数据就是使用单台计算机没法在规定时间内处理完,或者压根就没法处理的数据集。
民工哥
2023/08/22
2.9K0
进击大数据系列(一):Hadoop 基本概念与生态介绍
【赵渝强老师】大数据生态圈中的组件
大数据体系架构中的组件非常多,每个组件又属于不同的生态圈系统。从最早的Hadoop生态圈体系开始,逐步有了Spark生态圈体系和Flink生态圈体系。因此在学习大数据之前有必要了解一下每一个生态圈体系中具体包含哪些组件,以及它们的作用又是什么。
赵渝强老师
2024/09/04
2930
【赵渝强老师】大数据生态圈中的组件
推荐阅读
相关推荐
大数据简介,技术体系分类整理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档