大数据学习之路

目录

 

一、发展趋势

二、使用技术

三、高校课程大纲建议


一、发展趋势

        大数据开启了一次重大的时代转型,正在改变我们的生活以及理解世界的方式,而更多的改变正在蓄势待发。

        据估算,全球数据总量预计2020年达到44个ZB(1ZB=10亿TB=1万亿GB),我国数据量将达到8060个EB,占全球数据总量的18%。大数据已经撼动了世界的方方面面,从商业科技到医疗、政治、教育、经济以及社会各个领域。我国2015年首次将大数据战略写入十三五规划中。

 

        2009年甲型H1N1流感爆发的时候,全球的公共卫生机构都要求在发现新型流感病例时告知疾病控制与预防中心,但由于人们可能患病多日实在受不了才回去医院,同时这个消息传达回疾控中心也需要时间,因此,通告新流感病例时往往会有一两周的延迟。对于一种飞速传播的疾病,信息滞后两周的后果是致命的。谷歌通过观察大量的人们在网上的搜索记录,成功预测了流感传播的范围,而且可以具体到特定的地区。

 

      再来说一个例子,你可能永远也想不到你开车时的坐姿可以防止汽车被盗,这听起来简直不可思议,但这就是现实存在的事,日本某工业研究所通过在汽车座椅下安装360个压力传感器来测量人对座椅各部分施加压力的方式,并且通过0-256个数值范围进行量化,这样,每个乘坐者都将产生一份专属的数据资料,这个系统可以根据人对座位的压力差异识别出乘坐者的身份,准确率高达98%,这项技术作为汽车防盗系统装在车上时,汽车就会知道驾驶者是不是车主,如果不是,汽车就会自动熄火,另外也可以根据坐姿数据来判断司机是否正处于疲劳驾驶,系统可以通过自动减速或刹车来控制可能带来的危险。

 

        大数据将逐渐成为现代社会基础设施的一部分,就像公路、铁路、港口、水电和通信网络一样不可或缺。

二、使用技术

        大数据技术的核心不是拥有庞大的数据,而是从大量的数据中提炼出有价值的内容。所以,从功能角度,大数据主要功能是存储、统计和预测。

        解决大量数据存储和计算的核心思想是同时运用多台机器来并行工作,即分布式存储和分布式计算。基于分布式思想,google 发布了著名的bigTable分布式结构化存储系统论文。以该论文为理论基础,开发出了著名开源软件hadoop。Hadoop的两大核心功能HDFS(解决大数据存储)和mapreduce(大数据计算)。随着hadoop的普及应用,形成了hadoop大数据生态体系。包括mapreduce、HDFS、YARN 、hive、hbase、spark、storm、kafka、zookeeper、oozie、Flume、Mesos、Mahout等。

        大数据从执行等待时间角度可以分为两类,一类是离线分析,等待执行时间较长(小时、天)。另一类是实时分析,等待时间短(秒、分钟)。

  • HDFS

是一种磁盘存储协议,也是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。

 

  • MapReduce

分布式计算框架,用以进行大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。

  • YARN

分布式资源管理器,YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。Yarn是下一代 Hadoop 计算平台,Yarn是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。

  • Mesos

分布式资源管理器,与yarn类似,Mesos是一个资源统一管理和调度的平台,同样支持比如MR、steaming等多种运算框架。

  • Hive

数据仓库,由facebook开源,最初用于解决海量结构化的日志数据统计问题。

Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

HQL用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

  • Sqoop

数据ETL/同步工具,Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

  • Flume

日志收集工具,它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。经常和kafka一起配合使用。

 

同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。

  • Kafka

分布式消息队列,Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据。

 

活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。

  • Hbase

分布式列存数据库, 不用传统的结构化数据库。HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。

  • Zookeeper

分布式协作服务,解决分布式环境下的数据管理问题:统一命名,投票选举、状态同步,集群管理,配置同步等。

Hadoop的许多组件(如hase)依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

  • Oozie

工作流调度器,Oozie 是用于 Hadoop 平台的一种工作流调度引擎。Oozie 协调器促进了相互依赖的重复工作之间的协调,您可以使用预定的时间或数据可用性来触发 Apache Oozie。您可以使用 Oozie bundle 系统提交或维护一组协调应用程序。

 

  • Spark

基于内存的计算框架,Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,某些情况下Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。Hadoop mapreduce操作主要耗费时间的是在频繁的磁盘读写。Spark可以做离线数据分析和实时数据分析。

  • Storm

实时计算框架,Storm属于流处理平台,多用于实时计算并更新数据库。Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。

 

  • Mahout

数据挖掘算法库,Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。

除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

三、高校课程大纲建议

     随着国家十三五的战略,2018年多个高校开设大数据方向。因为工作的关系,有幸和辽宁省内某些高校合作(校企合作),一起探讨学生在大数据方向应该开设的课程。下表展示学生应该掌握的基础课程。

 

课程名称

备注

高等数学

数据挖掘中可能会用

线性代数

统计与概率论

数据结构

培养算法能力

C语言

培训编程能力

Java web编程

熟悉web展现

Python

数据获取和ETL(数据抽取)中应用

Linux

大数据环境搭建中应用

 

以上基础课程学完后,可以继续学习【标题二 使用技术】的课程。


 

你可能感兴趣的:(大数据)