星海大数据

大数据介绍

大数据是什么意思
大数据英文为Big Data,大数据是一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
大数据的特征
  1. 容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息。数据体量巨大是大数据的首要特征,也是大家最容易发现的特征。全球数据正以前所未有的速度增长着,每天都有数以百万兆字节的数据在互联网上产生。据估计,全球可统计的数据存储量在2011 年约为 l.8ZB, 2015 年超过8ZB 。数据的爆炸式增长引发了数据存储和处理的危机。
  2. 种类(Variety):数据类型的多样性。数据类型的日趋繁多是大数据的另 个特征 。传统 的数据可以用 二维表的形式存储在数据库中,我们称之为结构化数据。但随着互联网多媒体应用的兴起,图片、声音和视频等非结构化数据成为了数据的主要组成部分,统计显示,目前全世界非结构化数据己占数据总量的90%左右。如何有效地处理非结构化数据,并挖掘出其中蕴含的商业价值和经济社会价值,是大数据技术要解决的问题。
  3. 速度(Velocity):指获得数据的速度;快速处理是大数据必须满足的要求。经济全球化形势下,企业面临的竞争环境越来越严酷。在此情况下,如何及时把握市场动态,深入洞察行业、市场、消费者的需求,井快速、合理地制定经营策略,就成为企业生死存亡的关键。而对大数据的快速处理分析,是实现这 目标的前提。
  4. 可变性(Variability):妨碍了处理和有效地管理数据的过程;
  5. 真实性(Veracity):数据的质量;
  6. 复杂性(Complexity):数据量巨大,来源多渠道;
  7. 价值化(value):合理运用大数据,以低成本创造高价值。大数据蕴含的整体价值是巨大的,但是由于干扰信息多,导致其价值密度低,这是大数据在价值维度的两个特征。挖掘出大数据的有用价值井加以利用,是数据拥有者的自然目标 但市场形势瞬息万变,因此,如何在海 的、多样化的、低价值密度的数据中快速挖掘出其蕴含的有用价值,是大数据技术的使命虽然后续不断有人增加对“ ”的理解,如veracity (真实和准确),强调真实而准确的数据才能让对数据的管控和治理真正有意义;如vitality (动态性),强调数据体系的动态性等 这些对大数据的内涵都有 定的推动作用,但都不及开始的4V具有广泛性

大数据技术与应用

大数据技术主要围绕智慧城市、城市交通、医疗、金融、城市规划等各领域中大数据技术的应用,系统总结了数据科学、大数据技术及其在城市建设各领域中应用的科研技术成果和项目实施经验。
  1. 专业概况
    1. 专业名称:大数据技术与应用
    2. 专业代码:610215
    3. 专业方向:数据可视化技术、数据采集与处理
  2. 行业趋势
    近几年来,互联网行业发展风起云涌,而移动互联网、电子商务、物联网以及社交媒体的快速发展更促使我们快速进入了大数据时代。截止到目前,人们日常生活中的数据量已经从TB级别一跃升到PB、EB、ZB,数据将逐渐成为重要的生产因素,人们对于海量数据的运用将预示着新一波生产率增长和消费者盈余浪潮的到来。大数据分为数据采集、数据清洗、数据分析、数据安全和数据应用五个部分。
    大数据时代,专业的大数据人才必将成为人才市场上的香饽饽,大数据人才供不应求大数据领域从业人员的薪资将继续增长。
  3. 培养目标
    大数据技术与应用专业培养掌握大数据分析、应用、技术支持、开发等专业技术技能,面向大数据行业领域,能够从事大数据系统运维、大数据整理、大数据分析、大数据应用开发、大数据可视化展示、数据库相关技术等工作的高素质技术技能型人才。
  4. 核心课程
    大数据技术基础、Python数据分析技术、Hadoop项目开发技术、Spark项目开发技术、MySQL数据库技术、 JAVA程序设计语言、linux操作系统、Scala语言编程、C语言程序设计、大数据系统运维、JAVA WEB应用开发、数据可视化技术。
  5. 平均薪酬
    1. 平均薪酬:实习期不低于4500元/月;聘用期不低于6000元/月;
    2. 资格证书:大数据采集工程师、大数据运维工程师、大数据开发工程师、数据分析师、CAP认证、CCDH认证、CCAH认证。
  6. 就业方向
    在大数据领域,相关专业的毕业生有着非常广泛的从业选择。从国防部、互联网创业公司到金融机构,从零售金融到互联网电商,从医疗制造到交通检测,都需要大数据项目来做创新驱动,对大数据的需求无处不在,其岗位报酬也非常丰厚。在硅谷,入门级的数据科学家的收入已经是6位数了(美元);在国内,以Hadoop开发工程师为例,Hadoop入门薪资已经达到了8K以上,工作1年可达到1.2W以上,具有2-3年工作经验的hadoop人才年薪可以达到 30万—50万。相关专业的毕业生可从事的具体岗位如下:
    1. 数据工程方向:毕业生能够从事基于计算机、移动互联网、电子信息、电子商务技术、电子金融、电子政务、军事等领域的Java大数据分布式程序开发、大数据集成平台的应用、开发等方面的高级技术人才,可在政府机关、房地产、银行、金融、移动互联网等领域从事各类Java大数据分布式开发、基于大数据平台的程序开发、数据可视化等相关工作,也可在IT领域从事计算机应用工作。
    2. 数据分析方向:毕业生能够从事基于计算机、移动互联网、电子信息、电子商务技术、电子金融、电子政务、军事等领域的大数据平台运维、流计算核心技术等方面的高级技术人才,可在政府机关、房地产、银行、金融、移动互联网等领域从事各类大数据平台运维、大数据分析、大数据挖掘等相关工作,也可在IT领域从事计算机应用工作。

大数据工具

大数据计算主要有三种工具,即批处理工具、流处理工具和混合处理工具。大多数批处理数据分析框架都基于Apache Hadoop。流式数据分析框架主要是实时应用中使用的Storm、S4和Flink。混合处理工具利用批处理和流处理的优点来计算大量数据。
  1. 批处理工具
    批处理建模并将数据湖的文件转换为批处理视图,为分析用例做好准备。它负责安排和执行批量迭代算法,如排序、搜索、索引或更复杂的算法,如PageRank、贝叶斯分类或遗传算法。批处理主要由MapReduce编程模型表示
    1. Apache Hadoop:是一个众所周知的批处理框架,它支持在集群上分布式存储和处理大型数据。它是一个基于Java的开源框架,被Facebook、Yahoo和Twitter用于存储和处理大数据。Hadoop主要由两个组件组成:(1)Hadoop分布式文件系统(HDFS),其中集群节点之间的数据存储是分布式的;Hadoop MapReduce引擎,它将数据处理分配给集群的节点。
    2. Apache Pig:是Hadoop生态系统的一个不可或缺的组件,它通过在Hadoop上并行执行数据流来减少数据分析时间。Pig是一种结构化查询语言(SQL),被LinkedIn、Twitter、Yahoo等大型组织使用。该平台的脚本语言称为Pig Latin,它将MapReduce中的编程复杂性从其他语言(如Java)抽象为高级语言。Pig是一个最完整的平台,因为它可以通过直接调用用户定义函数(UDF)来调用JavaScript、Java、Jython和JRuby等多种语言的代码。因此,开发人员可以使用Pig在Hadoop中完成所有必需的数据操作。Pig可以作为一个具有相当多并行性的组件,用于构建复杂而繁重的应用程序。
    3. Flume:被用作向Hadoop提供数据的工具。与处理框架一起,需要一个消息传递层来访问和转发流数据。Apache Flume是提供这一功能的较为成熟的选项之一。Flume一直是数据馈送的著名应用程序。它很好地嵌入到整个Hadoop生态系统中,并获得了所有商业Hadoop发行版的支持。这使得Flume成为开发者的主要选择。
  2. 流处理工具
    1. Hadoop:是为批处理而设计的。Hadoop是一个多用途引擎,但由于其延迟,它不是一个实时和高性能的引擎。在一些流数据应用中,如日志文件处理、工业传感器和远程通信,需要实时响应和处理流式大数据。因此,有必要对流处理进行实时分析。流式大数据需要实时分析,因为大数据具有高速、大容量和复杂的数据类型,对于Map/Reduce框架将是一个挑战。因此,Storm、S4、Splunk和Apache Kafka等流处理的实时大数据平台已被开发为第二代数据流处理平台用于实时分析数据,实时处理意味着连续数据处理需要极低的响应延迟。
    2. Storm:是实时分析中最受认可的数据流处理程序之一,专注于可靠的消息处理。Storm是一个免费、开源的分布式流媒体处理环境,用于开发和运行分布式程序,处理源源不断的数据流。因此,可以说Storm是一个开源、通用、分布式、可扩展和部分容错的平台,可以可靠地处理无限的数据流以进行实时处理。Storm的一个优点是,开发人员可以专注于使用稳定的分布式进程,同时将分布式/并行处理的复杂性和技术挑战(如构建复杂的恢复机制)委托给框架。Storm是一个复杂的事件处理器和分布式计算框架,基本上是用Clojure编程语言编写的。它是一个分布式实时计算系统,用于快速处理大数据流。Storm是一个分布式/并行框架,由Nimbus、Supervisor和Zookeeper组成,Storm集群主要由主节点和工作节点组成,由Zookeeper进行协调。
    3. S4:是一个受MapReduce模型启发的分布式流处理平台。流的操作由用户代码和用XML描述的配置作业指定。S4是一个通用的、容错的、可扩展的、分布式的、可插拔的计算框架,程序员可以轻松地开发用于处理连续无界数据流的应用程序。它最初由Yahoo 2010年发布,并从2011年起成为Apache孵化器项目。S4允许程序员基于几个有竞争力的特性开发应用程序,包括可伸缩性、分散性、健壮性、可扩展性和集群管理。S4是用Java编写的。S4作业的任务是模块化和可插拔,以便于动态处理大规模流数据。S4使用Apache ZooKeeper来管理集群,就像Storm一样。
    4. Kafka:是一个开源的分布式流媒体框架,最初由LinkedIn在2010年开发。它是一个灵活的发布-订阅消息传递系统,旨在快速、可扩展,并通常用于日志收集。Kafka是用Scala和Java编写的。它有一个多生产者管理系统,能够从多个来源获取消息。通常,Kafka的数据分区和保留功能使其成为容错事务收集的有用工具。这是因为应用程序可以开发和订阅记录流,具有容错保证,并且可以在记录流出现时对其进行处理。
    5. Flink:是一个流式处理工具,旨在解决微批量模型衍生的问题。Flink还支持使用Scala和Java中的编程抽象进行批处理数据处理,尽管它被视为流处理的特例。在Flink中,每个作业都作为流计算执行,每个任务都作为循环数据流执行,并进行多次迭代。Flink还提供了一种复杂的容错机制,以一致地恢复数据流应用程序的状态。该机制生成分布式数据流和操作员状态的一致快照。如果出现故障,系统可以退回到这些快照。FlinkML的目标是为Flink用户提供一套可伸缩的机器学习算法和直观的API。
    6. Apache Spark:是Hadoop最新的替代方案。它包括一个名为MLlib的额外组件,这是一个面向机器学习算法的库,例如:聚类、分类、回归,甚至数据预处理[6]。由于Spark的容量,批量和流式分析可以在同一平台上完成。Spark的开发是为了克服Hadoop的缺点,即它没有针对迭代算法和交互式数据分析进行优化,后者对同一组数据执行多个操作。Spark被定义为下一代分布式计算框架的核心,由于其内存密集型方案,它可以在内存中快速处理大容量数据集。
  3. 混合处理工具
    混合处理使大数据平台进入第三代成为可能,因为它是大数据应用中许多领域所必需的。该范例综合了基于Lambda架构的批处理和流处理范例。Lambda体系结构是一种数据处理体系结构,旨在通过利用批处理和流处理方法来处理大量数据。这个范例的高级架构包含三层。批处理层管理已存储在分布式系统中且不可更改的主数据集,服务层加载并在数据存储中公开批处理层的视图以供查询,而速度层只处理低延迟的新数据。最后,通过批处理和实时视图的组合,将完整的结果合并。

大数据技术架构

大数据的核心层应该是:数据采集层、数据存储与分析层、数据共享层、数据应用层,可能叫法有所不同,本质上的角色都大同小异
  1. 大数据采集
    数据采集的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。数据源的种类比较多:
    1. 网站日志:作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,一般是在每台网站日志服务器上部署flume agent,实时的收集网站日志并存储到HDFS上。
    2. 业务数据库:业务数据库的种类也是多种多样,有Mysql、Oracle、SqlServer等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS上的工具,Sqoop是一种,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的DataX,是一个很好的解决方案,有资源的话,可以基于DataX之上做二次开发,就能非常好的解决。当然,Flume通过配置与开发,也可以实时的从数据库中同步数据到HDFS。
    3. 来自于Ftp/Http的数据源:有可能一些合作伙伴提供的数据,需要通过Ftp/Http等定时获取,DataX也可以满足该需求。
    4. 其他数据源:比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成。
  2. 大数据存储与分析
    毋庸置疑,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。
    离线数据分析与计算,也就是对实时性要求不高的部分,在笔者看来,Hive还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码;
    当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算;
    Spark是这两年非常火的,经过实践,它的性能的确比MapReduce要好很多,而且和Hive、Yarn结合的越来越好,因此,必须支持使用Spark和SparkSQL来做分析和计算。因为已经有Hadoop Yarn,使用Spark其实是非常容易的,不用单独部署Spark集群。
  3. 大数据共享
    这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;
    前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据;和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。
    另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。
  4. 大数据应用
    1. 业务产品(CRM、ERP等):业务产品所使用的数据,已经存在于数据共享层,直接从数据共享层访问即可;
    2. 报表(FineReport、业务报表):同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;
    3. 即席查询:即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;
      这种即席查询通常是现有的报表和数据共享层的数据并不能满足他们的需求,需要从数据存储层直接查询。
      即席查询一般是通过SQL完成,最大的难度在于响应速度上,使用Hive有点慢,可以用SparkSQL,它的响应速度较Hive快很多,而且能很好的与Hive兼容。
      当然,你也可以使用Impala,如果不在乎平台中再多一个框架的话。
    4. OLAP:目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;
      这时候,需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP的功能;比如:根据用户在界面上选择的不定的维度和指标,通过开发接口,从HBase中获取数据来展示。
    5. 其它数据接口:这种api接口有通用的,有定制的。比如:一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。
  5. 实时数据计算
    现在业务对数据仓库实时性的需求越来越多,比如:实时的了解网站的整体流量;实时的获取一个广告的曝光和点击;在海量数据下,依靠传统数据库和传统实现方法基本完成不了,需要的是一种分布式的、高吞吐量的、延时低的、高可靠的实时计算框架;Storm在这块是比较成熟了,但我选择Spark Streaming,原因很简单,不想多引入一个框架到平台中,另外,Spark Streaming比Storm延时性高那么一点点,那对于我们的需要可以忽略。
    我们目前使用Spark Streaming实现了实时的网站流量统计、实时的广告效果统计两块功能。
    做法也很简单,由Flume在前端日志服务器上收集网站日志和广告日志,实时的发送给Spark Streaming,由Spark Streaming完成统计,将数据存储至Redis,业务通过访问Redis实时获取。
  6. 任务调度与监控
    在数据仓库/数据平台中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;
    这些任务除了定时调度,还存在非常复杂的任务依赖关系,比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始;
    这就需要一个非常完善的任务调度与监控系统,它作为数据仓库/数据平台的中枢,负责调度和监控所有任务的分配与运行。
  7. 发展趋势

    2014年以后,整体大数据的技术栈已经趋于稳定,由于云计算、人工智能等技术发展,还有芯片、内存端的变化,大数据技
    1. 流式架构的更替:最早大数据生态没有办法统一批处理和流计算,只能采用Lambda架构,批的任务用批计算引擎,流式任务采用流计算引擎,比如批处理采用MapReduce,流计算采用Storm。后来Spark试图从批的角度统一流处理和批处理,Spark Streaming采用了micro-bach的思路来处理流数据。近年来纯流架构的Flink异军突起,由于其架构设计合理,生态健康,近年来发展特别快。而Spark近期也抛弃了自身微批处理的架构,转向了纯流架构Structure Streaming,流计算的未来霸主还未见分晓。
    2. 大数据技术的云化:一方面是公有云业务的成熟,众多大数据技术都被搬到了云上,其运维方式和运行环境都发生了较大变化,带来计算和存储资源更加的弹性变化,另一方面,私有部署的大数据技术也逐渐采用容器、虚拟化等技术,期望更加精细化地利用计算资源。
    3. 异构计算的需求:近年来在通用CPU之外,GPU、FPGA、ASIC等芯片发展迅猛,不同芯片擅长不同的计算任务,例如GPU擅长图像数据的处理,大数据技术开始尝试根据不同任务来调用不同的芯片,提升数据处理的效率。
    4. 兼容智能类的应用:随着深度学习的崛起,AI类的应用越来越广泛,大数据的技术栈在努力兼容AI的能力,通过一站式的能力来做数据分析和AI应用,这样开发者就能在一个工具站中编写SQL任务,调用机器学习和深度学习的算法来训练模型,完成各类数据分析的任务。

    蹦搭 充吏 刿心鉥肾 乏资 公斤 铜虎符 遏捺 鼎铛玉石 渤海琴 睇睨 蹦搭 充吏 刿心鉥肾 乏资 公斤 铜虎符 遏捺 鼎铛玉石 渤海琴 睇睨 西安 公司


    友情链接: Z技术 康康 自然语言处理 炫彩 zcomi 百香果 素问 积木编程 云计算 人工智能 知识图谱 物联网 无人机 rpa 机器人
    星海大数据 当今社会是一个信息社会