海量数据处理技术学习
2016-03-11 22:13
357 查看
海量数据处理的常用技术可分为:
外排序:因为海量数据无法全部装入内存,所以数据的大部分存入磁盘中,小部分在排序需要时存入内存。
MapReduce:分布式处理技术
hash技术:以Bloom filter技术为代表
外排序:主要适用于大数据的排序、去重。
分布式处理技术:MapReduce 技术思想是将数据交给不同的机器去处理,将数据切分,之后结果归约。
举例,统计出一批数据的TOP N
首先可以根据数据值或者数据HASH(MD5)后的值将数据按照范围划分,不同的服务器负责处理各种的数值范围,实际上就是map,得到结果后,各个服务器拿出各自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce的过程。
1、处理海量数据的常用技巧,比如分区操作。比如针对按年份或按月份存取的数据,将数据分散开,减少磁盘I/0,减少系统负荷,也可将日志、索引存放于不同的分区下。
2、提高硬件条件、增加CPU,加大磁盘空间等。
3、加大虚拟内存。
4、分批处理。 可以对海量数据分批处理,处理后的数据再进行合并操作,这样逐个击破,有利于下哦数据量的处理。 一般按日、月等存储的数据,都可以采用先分后合的方法,对数据分开处理。
5、使用临时表和中间表。 如果大表处理不了,只能拆分为多个小表,不要一个sql语句全部完成,卡死你。
6、部分文件可以使用文件格式进行处理。一般海量的网络日志都是文本格式或者CSV格式,对它进行处理牵扯到数据清洗,可以利用程序进行处理,无需导入数据库再做清洗。
外排序:因为海量数据无法全部装入内存,所以数据的大部分存入磁盘中,小部分在排序需要时存入内存。
MapReduce:分布式处理技术
hash技术:以Bloom filter技术为代表
外排序:主要适用于大数据的排序、去重。
分布式处理技术:MapReduce 技术思想是将数据交给不同的机器去处理,将数据切分,之后结果归约。
举例,统计出一批数据的TOP N
首先可以根据数据值或者数据HASH(MD5)后的值将数据按照范围划分,不同的服务器负责处理各种的数值范围,实际上就是map,得到结果后,各个服务器拿出各自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce的过程。
1、处理海量数据的常用技巧,比如分区操作。比如针对按年份或按月份存取的数据,将数据分散开,减少磁盘I/0,减少系统负荷,也可将日志、索引存放于不同的分区下。
2、提高硬件条件、增加CPU,加大磁盘空间等。
3、加大虚拟内存。
4、分批处理。 可以对海量数据分批处理,处理后的数据再进行合并操作,这样逐个击破,有利于下哦数据量的处理。 一般按日、月等存储的数据,都可以采用先分后合的方法,对数据分开处理。
5、使用临时表和中间表。 如果大表处理不了,只能拆分为多个小表,不要一个sql语句全部完成,卡死你。
6、部分文件可以使用文件格式进行处理。一般海量的网络日志都是文本格式或者CSV格式,对它进行处理牵扯到数据清洗,可以利用程序进行处理,无需导入数据库再做清洗。
相关文章推荐
- 用鼠标在图片上画矩形框
- wc2013 糖果公园
- HDU 2964 Prime Bases [Ad Hoc]
- appendChild()和insertBefore()方法插入元素的区别
- Activity的生命周期
- 大小为N的数组A,其主要元素是一个出现次数超过N/2的元素。找出主要元素。
- OpenCV一个窗口显示多张图片
- Scanner和BufferedReader的区别
- bind 的第三方性能测试工具 queryperf
- hdoj-1796 容斥水题
- javascript 表达式和语句
- 压缩感知的常见稀疏基名称及离散傅里叶变换基
- swift:ViewController中自定义tableView简单入门
- 梅森素数(2013蓝桥杯java—A组题目)
- 二柱子2
- 生成验证码
- T-sql语句
- bzoj3573: [Hnoi2014]米特运输
- 36.Oracle深度学习笔记——SLOB 工具使用
- CodeForces-630 H. Benches【排列组合】