前置已了解知识梳理
由于在写这篇博客之前,已经接触一些Hadoop的基础知识,我先把之前所学的一些基本概念和理解分享到这里,导图如下。
遵从着学习新知识的三大入手点(Why What How)出发。首先认识大数据先要理解 什么是 大的数据,为什么会有这项技术的诞生,有那些基本的思想,哪些具体的实现技术以及如何去部署实现的呢。
今天先从Why开始:
- 单机处理大数据能力有限
处于一个海量数据的时代,IT工作接触最多的事就是去提取有效数据进行分析,然后为人们所用,我这边先引入一个小案例:
有一个非常大的文本文件,里面有n行,但是只有两行完全一样,出现在了未知的位置,请问你如何去找到它们。
一般人碰到这种问题,这还不简单,写一个for循环依次针对每一行去比较,最终总会比较出结果的。
然而,当你真正接触这个问题时,远没你想的那么简单。
首先,你得理解什么是非常大的文件,可能连你那电脑1T的磁盘都不够存的,这边比如说是4个T的数据,你说我用一台服务器存,好吧,存是够了,你还要去计算呢,你还要写函数去筛选出重复行呢。现在好点的服务器有256G的内存也算是高配置了,咱们就以这个配置为例。
先要把这4T的数据存进服务器吧,先不考虑机器带宽的限制,10G网卡吧,传输理论上可以达到1.25GB/s ,普通服务器都是机械硬盘,
注:
- 宽带速率的计量单位通常以bps或者bit/s(比特/秒)来表示,即每秒可传输的位数,8bit(比特)=1B(字节),而存储单位通常是以 B字节 来进行表示,1024B=1KB,1024KB=1MB,1024MB=1GB,所以理论上10Gbps的带宽最大传输速率是10000Mbps/8=1250MB/s;
- 固态硬盘和机械硬盘最大的体验差距在于4k小文件随机读取和寻道时间(可以理解为响应延时),固态硬盘读取速度一般为500MB/s,机械硬盘读写速度大概是100-200MB/s。这里的读取速度是指连续读取速度,固态硬盘在传输速度上有很大的优势,最高可达500M/秒,其中读取速度达到400-600M每秒,写入速度同样可以高达200M每秒。对于1G的文件只需几秒就可搞定,而传统的IDE硬盘读取速度极限是无法超越200M每秒,写入速度也很难突破100M每秒。
- 硬盘接口标准
- 各个磁盘阵列的性能
- 硬盘接口标准
- 结合 分而治之 思想
- 分布式处理应运而生