大数据浅谈

对于一名算法工程师来说,大数据的应用也是技术栈之一。
本文将以算法工程师,从大数据应用的视角,粗略浅显地做一些总括性的概述,作为自己学习的记录。

大数据技术概览

  • 文件存储:Hadoop HDFS
  • 离线计算:Hive、Hadoop MapReduce、Spark
  • 流式计算:Flink、Storm、Spark Streaming
  • KV、NoSQL 数据库:HBase、Redis、MongoDB
  • 日志收集:Flume、Kibana
  • 资源管理:Hadoop YARN、kubernetes(k8s)
  • 消息系统:Kafka、RecketMQ
  • 分布式协调服务:Zookeeper

这些都是当前比较主流的一些技术组件,随着历史的发展,它们淘汰了一些技术组件,在未来,也许也会被其他的技术组件给淘汰。保持学习,让自己的技术也不断更新迭代。

应用场景

以一个算法工程师的视角,可以发现,大数据的应用场景还是非常多的。常见的一些场景有以下几个:

  1. 离线训练数据:离线训练数据通常存储到 hdfs 当中,能够友好的支持 GB、TB 乃至 PB 的数据量存储。
  2. 流式训练数据:为了追求实时性,流式在线学习是一种重要的手段之一,而流式数据则通常通过 kafka 来发送,在数据组装任务当中,通过处理 kafka 消息来组装成batch数据。
  3. 训练资源:分布式训练,不管是批式还是流式,都依托于 yarn 资源调度平台
  4. 数据分析:对于模型训练数据,或者业务数据、实验数据等,通常都基于 hive、spark 通过写 sql 来进行分析
  5. 数据处理:特征回溯等任务,通常采用 MapReduce 来进行大批量的处理
  6. 流式训练:随着 Google Dataflow 模型被提出,批流一体成为了分布式计算引擎主流。flink 兼顾了流计算的低延迟和批计算的高吞吐,通常在流式训练中采用 flink
  7. 数据缓存:在做离线特征调研的时候,由于部分特征未写入数据原来的存储结构里,需要通过 redishbase 里来做缓存,或当作存储型工具进行数据落盘。在训练的过程中,再通过 client 请求来获取数据,具有高吞吐、低延迟的 kv 存储特性。
  8. 数据流生产:线上的原始业务数据,需要通过加工转化成我们的训练数据,则需要通过 kafka 进行发送,数据缓存可以通过 redis,具体的执行任务则可以是一个 flink 任务
  9. 更多…

可以发现大数据涉及到的环节非常非常的多,从底层的数据,到模型的训练,本质其实就是 存储、计算、消息处理、资源调度 等等。作为一个算法工程师,可能很难做到完全了解具体部件的底层原理,但基本的应用能力,以及各个部件的特性还是需要有一些简单的了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值