一、大数据的基本概念

1.1什么是大数据

互联网企业是最早收集大数据的行业,最典型的代表就是Google和百度,这两个公司是做搜索引擎的,数量都非常庞大,每天都要去把互联网上的各种各样的网页信息抓取下来存储到本地,然后进行分析,处理,当用户想通过搜索引擎搜索一些他们关心的信息时,Google和百度就从海量的数据当中提取出相对于对用户而言是有用的信息,然后将提取到的结果反馈给用户,据说Google存储的数据量已经到达了上百个PB,这个数据量是非常惊人的。类似于Fackbook这样的SNS(社交网站)因为用户量比较多,用户每天在网站上面分享一些文章,图片,视频,音频等信息,因此每天产生的数据量也是非常庞大的。

在大数据比较火,几乎人人都在说大数据,但到底什么是大数据,恐怕没有多少人知道,鱼目混珠的人太多。大数据不是指很多很多数据。大数据指的就是要处理的数据是TB级别以上的数据,大数据是以TB级别起步的。TB级是什么概念呢?一般计算机中文件的大小都以以下单位来表示:

1Byte(Byte 字节) = 8Bit
1KB (Kilobyte 千字节) = 1024Byte,
1MB (Megabyte,兆字节,简称“兆”) = 1024KB,
1GB (Gigabyte,吉字节,又称“千兆”) = 1024MB,
1TB (Terabyte,太字节,或百万兆字节) = 1024GB,其中1024=2^10 ( 2 的10次方)。

1、电脑中,计数使用的都是二进制,它是以2的次方数来计算的。
千,1KB=2的10次方=1024B,
兆,1MB=2的20次方=1024*1024B=1024KB,
吉,1GB=2的30次方=1024*1024*1024B=1024MB,
太,1TB=2的40次方=1024*1024*1024*1024B=1024GB,
拍,1PB=2的50次方=1024*1024*1024*1024*1024B=1024TB,
艾,1EB=2的60次方=1024*1024*1024*1024*1024*1024B=1024PB,
泽,1ZB=2的70次方=1024*1024*1024*1024*1024*1024*1024B=1024EB,
尧,1YB=2的80次方=1024*1024*1024*1024*1024*1024*1024*1024B=1024ZB.

从上边的换算关系我们可以看出:TB级的数据是比较庞大的,我们普通的计算机硬盘容量大的也就1TB左右,要存储这么庞大的数据量,是根本做不到的,所以数据到达这个规模的时候,普通的数据存储、处理方式已经变得不再适用,大数据的概念也就由此而生。

1.2、大数据的特征

1)大容量

当前,移动互联网的核心网络节点是人,不再是网页,人人都成为数据制造者,短信、微博、照片、录像都是其数据产品;数据来自无数自动化传感器、自动记录设施、生产监测、环境监测、交通监测、安防监测等;来自自动流程记录,刷卡机、收款机、电子不停车收费系统,互联网点击、电话拨号等设施以及各种办事流程登记等。所以第一个特征便是:存储大,计算量大。

2)多样性

随着传感器、智能设备以及社交协作技术的飞速发展,组织中的数据也变得更加复杂,因为它不仅包含传统的关系型数据,还包含来自网页、互联网日志文件(包括点击流数据)、搜索索引、社交媒体论坛、电子邮件、文档、主动和被动系统的传感器数据等原始、半结构化和非结构化数据。在大数据时代,数据格式变得越来越多样,涵盖了文本、音频、图片、视频、模拟信号等不同的类型;数据来源也越来越多样,不仅产生于组织内部运作的各个环节,也来自于组织外部。例如,在交通领域,北京市交通智能化分析平台数据来自路网摄像头/传感器、公交、轨道交通、出租车以及省际客运、旅游、化危运输、停车、租车等运输行业,还有问卷调查和地理信息系统数据。4万辆浮动车每天产生2000万条记录,交通卡刷卡记录每天1900万条,手机定位数据每天1800万条,出租车运营数据每天100万条,电子停车收费系统数据每天50万条,定期调查覆盖8万户家庭等等,这些数据在体量和速度上都达到了大数据的规模。

多样化的数据来源正是大数据的威力所在。

3)快速度

在数据处理速度方面,有一个著名的“1秒定律”,即要在秒级时间范围内给出分析结果,超出这个时间,数据就失去价值了。例如,IBM有一则广告,讲的是“1秒,能做什么”?1秒,能检测出台湾的铁道故障并发布预警;也能发现得克萨斯州的电力中断,避免电网瘫痪;还能帮助一家全球性金融公司锁定行业欺诈,保障客户利益。越来越多的数据挖掘趋于前端化,即提前感知预测并直接提供服务对象所需要的个性化服务,例如,对绝大多数商品来说,找到顾客“触点”的最佳时机并非在结账以后,而是在顾客还提着篮子逛街时。

4)真实性

无论数据量有多么庞大,但是如果数据量不真实的话,再多的数据量也变得毫无意义。数据的重要性就在于对决策的支持,数据的规模并不能决定其能否为决策提供帮助,数据的真实性和质量才是获得真知和思路最重要的因素,是制定成功决策最坚实的基础。追求高数据质量是一项重要的大数据要求和挑战,即使最优秀的数据清理方法也无法消除某些数据固有的不可预测性,例如,人的感情和诚实性、天气形势、经济因素以及未来。在处理这些类型的数据时,数据清理无法修正这种不确定性,然而,尽管存在不确定性,数据仍然包含宝贵的信息。我们必须承认、接受大数据的不确定性,并确定如何充分利用这一点,例如,采取数据融合,即通过结合多个可靠性较低的来源创建更准确、更有用的数据点,或者通过鲁棒优化技术和模糊逻辑方法等先进的数学方法。

二、大数据技术要解决的技术难题

2.1大数据的存储

对于数据来说,我们是要得到里边的信息,信息的获取一个是数据的存储,一个是数据的计算。面对如此庞大的数据量如何进行存储和计算呢?由于历史原因,有些公司在很早对于庞大数据量的存储就想出了比较好的办法,最早采用大数据量存储是NFS网络文件系统。NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS的出现解决了数据的存储问题:它有一些优点:

1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。

3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

但是,NFS虽然是解决了海量数据的存储问题,但是在大数据背景下,这种存储方案不再适用,因为大数据不光是要解决数据存储问题,更重要的是海量数据的分析,而NFS在海量数据分析方面不能够充分利用多台计算机同时进行分析。

2.2大数据的计算

面对如此庞大的数据量,怎么进行计算呢?例如移动公司要进行流量日志分析,传统的方法是:

1、读取一行日志
    2、抽取手机号和流量字段
    3、累加到HashMap中
    4、遍历输出结果

  那么问题来了,如果数据量变得很大呢,比如一个日志文件里面有几个GB数据,如果仍然一行一行去读,那么就会因为磁盘的IO瓶颈导致效率太低,速度太慢,如果一次性加载到内存,那么就会因为单台计算机的内存空间有限而导致内存溢出,如果将中间结果全部缓存到HashMap中,那么也会因为单台计算机的内存空间有限而导致内存溢出。可以选择采用多线程处理,但是依然无法改变资源瓶颈的现实,因为一台计算器的CPU资源,内存资源,磁盘IO瓶颈是定,创建再多的线程也无法改变这个现实。

三、Hadoop相关概念

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。hadoop的出现,为海量数据的存储和计算提供了可能。

Hadoop的思想来源于Google的几篇论文,Google的那篇MapReduce论文里说:Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional languages。这就是MapReduce思想,意思是说,MapReduce的出现来源于函数式语言(比如Lisp)中的内置函数map和reduce。函数式语言中,map表示对一个列表(List)中的每个元素做计算,reduce表示对一个列表中的每个元素做迭代计算。它们具体的计算是通过传入的函数来实现的,map和reduce提供的是计算的框架。那么问题来了,reduce既然能做迭代计算,那就表示列表中的元素是相关的,比如对列表中的所有元素做相加求和,那么列表中至少都应该是数值吧。而map是对列表中每个元素做单独处理的,这表示列表中可以是杂乱无章的数据。这样看来,就有点联系了。在MapReduce里,Map处理的是原始数据,自然是杂乱无章的,每条数据之间互相没有关系;到了Reduce阶段,数据是以key后面跟着若干个value来组织的,这些value有相关性,至少它们都在一个key下面,于是就符合函数式语言里map和reduce的基本思想了。

  这样我们就可以把MapReduce理解为,把一堆杂乱无章的数据按照某种特征归纳起来,然后处理并得到最后的结果。Map面对的是杂乱无章的互不相关的数据,它解析每个数据,从中提取出key和value,也就是提取了数据的特征。经过MapReduce的Shuffle阶段之后,在Reduce阶段看到的都是已经归纳好的数据了,在此基础上我们可以做进一步的处理以便得到结果。这就回到了最初,终于知道MapReduce为何要这样设计。

3.1、Hadoop的核心组件

海量存储——HDFS(Hadoop分布式文件系统,Hadoop Distributed File System)

  • 分布式易扩展
  • 廉价易得
  • 高吞吐量
  • 高可靠性

分布式并行计算——资源调度(Yarn)+编程模型(MapReduce)

  • 大容量高并发
  • 封装分布式实现细节
  • 大大提高分析效率

3.2、Hadoop的学习路线

  1. Linux系统基本操作能力
  2. java开发语言
  3. Hadoop核心组件
  4. MapReduce或Spark等编程模型
  5. Zookeeper-Sqoop-Flume等工具组件
  6. NoSQL技术,Hbase
  7. 数据分析挖掘、机器学习、Mahout

大数据及hadoop相关知识介绍的更多相关文章

  1. 大数据框架hadoop服务角色介绍

    翻了一下最近一段时间写的分享,DKHadoop发行版本下载.安装.运行环境部署等相关内容几乎都已经写了一遍了.虽然有的地方可能写的不是很详细,个人理解水平有限还请见谅吧!我记得在写DKHadoop运行 ...

  2. 大数据之hadoop框架知识

    https://blog.csdn.net/zytbft/article/details/79285500

  3. 大数据和Hadoop平台介绍

    大数据和Hadoop平台介绍 定义 大数据是指其大小和复杂性无法通过现有常用的工具软件,以合理的成本,在可接受的时限内对其进行捕获.管理和处理的数据集.这些困难包括数据的收入.存储.搜索.共享.分析和 ...

  4. 大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍

    Technorati 标记: hadoop,生态圈,ecosystem,yarn,spark,入门 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用 ...

  5. 大数据和Hadoop生态圈

    大数据和Hadoop生态圈 一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop ...

  6. Hadoop专业解决方案-第1章 大数据和Hadoop生态圈

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此 ...

  7. PySpark SQL 相关知识介绍

    title: PySpark SQL 相关知识介绍 summary: 关键词:大数据 Hadoop Hive Pig Kafka Spark PySpark SQL 集群管理器 PostgreSQL ...

  8. 大数据:Hadoop入门

    大数据:Hadoop入门 一:什么是大数据 什么是大数据: (1.)大数据是指在一定时间内无法用常规软件对其内容进行抓取,管理和处理的数据集合,简而言之就是数据量非常大,大到无法用常规工具进行处理,如 ...

  9. 一步一步学习大数据:Hadoop 生态系统与场景

    Hadoop概要 到底是业务推动了技术的发展,还是技术推动了业务的发展,这个话题放在什么时候都会惹来一些争议. 随着互联网以及物联网的蓬勃发展,我们进入了大数据时代.IDC预测,到2020年,全球会有 ...

随机推荐

  1. CoreGraphics--画线/圆/矩形

    - (void)drawRect:(CGRect)rect { // Drawing code NSLog(@"drawRect自动调用"); //画图步骤 //获取上下文(/画笔 ...

  2. 新学期的第一节Android课

    老师问,你们认为师生关系是什么样子的? 机智的我很快想到啦:或许是猫和老鼠的关系吧,嘿嘿O(∩_∩)O

  3. Android中的WebView实战详解(二)

    四.如何用WebView下载软件? 四.如何用WebView下载软件? public class MainActivity extends AppCompatActivity { private We ...

  4. [Spark] - SparkCore程序优化总结

    http://spark.apache.org/docs/1.6.1/tuning.html1) 代码优化 a. 对于多次使用的RDD,进行数据持久化操作(eg: cache.persist) b. ...

  5. HTML5微数据

    本篇文章是一个纯搬运贴,原博主是在是做的太详细了 原贴地址:http://www.zhangxinxu.com/wordpress/2011/12/html5扩展-微数据-丰富网页摘要/ 一.微数据是 ...

  6. 关于统一资源标志符URL的理解

    URL由三部分构成 A:B:C A:URL使用的领域 B:在此领域的类型名称 C:标识资源的具体位置 C可以是一个绝对路径,也可以是端口号加上资源名称,总之是可以唯一标示资源的标识 例: 在网址中 S ...

  7. 阿里云Linux启动tomcat并能外网访问

    问题描述: 先描述一下我的心路历程吧,新买了阿里云服务器,由于需求不是很大,只是为了备案,所以买了个最低配的,而且是Windows server2012的.那现在需要做的是在这个乞丐版的server上 ...

  8. 基于模糊聚类和最小割的层次化网格分割算法(Hierarchical Mesh Decomposition)

    网格分割算法是三维几何处理算法中的重要算法,具有许多实际应用.[Katz et al. 2003]提出了一种新型的层次化网格分割算法,该算法能够将几何模型沿着凹形区域分割成不同的几何部分,并且可以避免 ...

  9. SEQ序号与ACK序号理解总结

    备查 SEQ序号与ACK序号理解总结

  10. Python之路-Linux命令基础(5)

    作业一:nginx服务 二进制安装nginx包 1.使用网络yum源 2.使用yum安装epel-release扩展源 [root@localhost html]# yum install epel- ...