NoSql

大数据

  • 解决大数据的可靠存储(1台计算机不够存储)和处理(1台计算机无法在要求的时间内完成处理)。
  • 数据收集,处理,存储
  • 告警和监控是大量接入的前提,可以快速定位和解决问题。

产品

  • 批处理框架:Apache Hadoop
  • 流处理框架:Apache Storm,Apache Samza
  • 混合框架:Apache Spark,Apache Flink
计算 用途 数据集
Hadoop 离线批量 数据挖掘和分析 批处理
Storm 实时单条消息 热门话题;金融,股票等 流处理
Spark 准实时(秒级)批量 数据挖掘和机器学习等需要迭代的算法 RDD

技术

级别 说明
批处理(MapReduce) 低层次抽象 类似逻辑门电路中的与门,或门和非门
RDD(Resilient Distributed Dataset) 高层次抽象 类似逻辑电路中的编码器或译码器等

批处理

MapReduce引擎。MapReduce的处理技术符合使用键值对的map、shuffle、reduce算法要求。基本处理过程包括:

  1. 从HDFS文件系统读取数据集
  2. 将数据集拆分成小块并分配给所有可用节点
  3. 针对每个节点上的数据子集进行计算(计算的中间态结果会重新写入HDFS)
  4. 重新分配中间态结果并按照键进行分组
  5. 通过对每个节点计算的结果进行汇总和组合对每个键的值进行“Reducing”
  6. 将计算而来的最终结果重新写入 HDFS

流处理

  • 对随时进入系统的数据进行计算,是永久运行的拓扑(topology)。
  • 流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作。
  • 流处理中的数据集是“无边界”的,这就产生了几个重要的影响:
    1. 完整数据集只能代表截至目前已经进入到系统中的数据总量
    2. 工作数据集也许更相关,在特定时间只能代表某个单一数据项。
    3. 处理工作是基于事件的,除非明确停止否则没有“尽头”。处理结果立刻可用,并会随着新数据的抵达继续更新。

RDD

  1. 是一个不可变的带分区的记录集合
  2. 提供两类操作,转换和动作。
    • 转换:map,filter,flatMap,sample,groupByKey,reduceByKey,union,join,cogroup,mapValues,sort,partionBy
    • 动作:count,collect,reduce,lookup,save
  3. 任何操作都可以像函数式编程中操作内存中的集合一样直观、简便。集合操作的实现是在后台分解成一系列Task发送到几十台上百台服务器组成的集群上完成的。

资料

性能

实例

文章单词数量统计

  1. 每个句子分解成单词
  2. 计算每个句子的每个单词的数量
  3. 合并每个单词的数量

资料

wangyaqi.cn all right reserved,powered by Gitbook该文件修订时间: 2020-04-18 15:35:02

results matching ""

    No results matching ""

    results matching ""

      No results matching ""