• 海量数据处理技术学习


    海量数据处理的常用技术可分为:

      外排序:因为海量数据无法全部装入内存,所以数据的大部分存入磁盘中,小部分在排序需要时存入内存。

      MapReduce:分布式处理技术

      hash技术:以Bloom filter技术为代表

    外排序:主要适用于大数据的排序、去重。

    分布式处理技术:MapReduce 技术思想是将数据交给不同的机器去处理,将数据切分,之后结果归约。

    举例,统计出一批数据的TOP N

    首先可以根据数据值或者数据HASH(MD5)后的值将数据按照范围划分,不同的服务器负责处理各种的数值范围,实际上就是map,得到结果后,各个服务器拿出各自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce的过程。

    1、处理海量数据的常用技巧,比如分区操作。比如针对按年份或按月份存取的数据,将数据分散开,减少磁盘I/0,减少系统负荷,也可将日志、索引存放于不同的分区下。

    2、提高硬件条件、增加CPU,加大磁盘空间等。

    3、加大虚拟内存。

    4、分批处理。 可以对海量数据分批处理,处理后的数据再进行合并操作,这样逐个击破,有利于下哦数据量的处理。 一般按日、月等存储的数据,都可以采用先分后合的方法,对数据分开处理。

    5、使用临时表和中间表。 如果大表处理不了,只能拆分为多个小表,不要一个sql语句全部完成,卡死你。

    6、部分文件可以使用文件格式进行处理。一般海量的网络日志都是文本格式或者CSV格式,对它进行处理牵扯到数据清洗,可以利用程序进行处理,无需导入数据库再做清洗。

  • 相关阅读:
    [LeetCode#252] Meeting Rooms
    [LeetCode#247] Strobogrammatic Number II
    [LeetCode#265] Paint House II
    [LeetCode#256] Paint House
    [LeetCode#279] Perfect Squares
    [LeetCode#259] 3Sum Smaller
    [LeetCode#261] Graph Valid Tree
    [LeetCode#271] Encode and Decode Strings
    xfsdump的选项-L和-M
    Centos7 报错welcome to emergency mode
  • 原文地址:https://www.cnblogs.com/yangsy0915/p/5267434.html
Copyright © 2020-2023  润新知