zoukankan      html  css  js  c++  java
  • 海量数据处理技术学习

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

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

      MapReduce:分布式处理技术

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

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

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

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

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

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

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

    3、加大虚拟内存。

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

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

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

  • 相关阅读:
    IE下JS文件失效问题总结
    什么是RFC?
    CHROME对CSS的解析
    php_network_getaddresses: getaddrinfo failed
    Fedora10下配置Apache和虚拟主机
    Apache的Charset设置
    网页设计中的面包屑路径
    利用JS实现的根据经纬度计算地球上两点之间的距离
    【OpenCV学习】子矩阵操作
    【OpenCV学习】ROI区域
  • 原文地址:https://www.cnblogs.com/yangsy0915/p/5267434.html
Copyright © 2011-2022 走看看