大数据方面的事情,应该学习什么知识

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。文| 林肯公园(拒绝任何不标明来源的转载)
国际数据公司IDC预测,到2020年,企业基于大数据计算分析平台的支出将突破5000亿美元,大数据解决方案在未来四年中,帮助全球企业分享大约1.6万亿美元新增收入的数据红利。数联寻英近日发布的首份《大数据人才报告》显示,目前全国大数据人才只有46万,未来3到5年人才缺口达150万之多。
根据麦肯锡报告,仅仅在美国市场,2018年大数据人才和高级分析专家的人才缺口将高达19万。此外美国企业还需要150万位能够提出正确问题、运用大数据分析结果的大数据相关管理人才。 对于高速发展的大数据行业来说,行业人才的稀缺目前已成为抑致行业发展的重要因素。人才的稀缺性外加上诱人的高额薪资,使得互联网行业很多技术人员纷纷想要转型进入大数据领域,成为数据科学家、大数据工程师等等。36大数据(/)
今天,我们将为大家介绍大数据工程师所需掌握的技能,让小伙伴们有个参照。 先来看一个常见的大数据基础平台架构图。
从这张大数据架构图上来看,我们发现,一个普通的大数据基础平台架构中,分为数据集成层、文件存储层、数据存储层、编程模型层和数据分析层,然后再到上层应用。大数据基础平台架构中,往往还会有数据挖掘层和数据可视化层等。 再看这场架构图。
从以上两张架构图我们可以看到,整个大数据基础平台架构中,其实是涉及非常多的技术、语言和技能的。下面为大家一一细表。
一、大数据通用处理平台
1、Spark Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
其中,RDD是Spark的核心,RDD,全称为Resilient Distributed Datasets,是一个容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据。在这些操作中,诸如map、flatMap、filter等转换操作实现了monad模式,很好地契合了Scala的集合操作。除此之外,RDD还提供了诸如join、groupBy、reduceByKey等更为方便的操作(注意,reduceByKey是action,而非transformation),以支持常见的数据运算。 Spark SQL是Spark的一个组件,用于结构化数据的计算。Spark SQL提供了一个称为DataFrames的编程抽象,DataFrames可以充当分布式SQL查询引擎。 Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。 Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。 Spark Streaming的优势在于:
能运行在100+的结点上,并达到秒级延迟。
使用基于内存的Spark作为执行引擎,具有高效和容错的特性。
能集成Spark的批处理和交互查询。
为实现复杂的算法提供和批处理类似的简单接口。
MLlib 是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。MLlib 目前支持四种常见的机器学习问题:二元分类,回归,聚类以及协同过滤,同时也包括一个底层的梯度下降优化基础算法。 下面是Spark学习脑图。36大数据(/)
右键点击可看在线版
你可以通过以及来进一步了解Spark。
2、Flink Flink 是一个开源的针对批量数据和流数据的处理引擎,已经发展为 ASF 的顶级项目之一。Flink 的核心是一个提供了数据分发以及并行化计算的流数据处理引擎,已经支持了 API 化的 SQL 查询,包括图操作和机器学习的相关算法。
Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。目前主要还是依靠开源社区的贡献而发展。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。再换句话说,Flink 会把所有任务当成流来处理,这也是其最大的特点。Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。并且 Flink 可以定制化内存管理。36大数据(/)
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 其中,
HDFS (分布式文件系统)
Mapreduce(计算框架)
Yarn(资源管理平台)
Pig(piglatin 语句到 mapreduce 的映射)
Hive(数据仓库,提供 SQL)
Mahout(机器学习算法的 mapreduce 实现库)
你可以通过以及来进一步了解Hadoop。
二、分布式存储
HDFS Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
三、资源调度
Yarn Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。 YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。36大数据(/)
Mesos Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。 Mesos的起源于Google的数据中心资源管理系统Borg。Twitter从Google的Borg系统中得到启发,然后就开发一个类似的资源管理系统来帮助他们摆脱可怕的“失败之鲸”。后来他们注意到加州大学伯克利分校AMPLab正在开发的名为Mesos的项目,这个项目的负责人是Ben Hindman,Ben是加州大学伯克利分校的博士研究生。后来Ben Hindman加入了Twitter,负责开发和部署Mesos。现在Mesos管理着Twitter超过30,0000台服务器上的应用部署,“失败之鲸”已成往事。其他公司纷至沓来,也部署了Mesos,比如Airbnb(空中食宿网)、eBay(电子港湾)和Netflix。
四、数据分析/数据仓库(SQL类)
Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。本文将探索 Pig 背后的语言,并在一个简单的 Hadoop 集群中发现其用途。
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Apache Kylin(TM)是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。
Apache Kylin 最初由ebay开发,现已经开源至Apache软件基金会。它是Hadoop之上的SQL查询接口,是一种高性能的SQL on Hadoop工具。它能在亚秒内查询巨大的Hive表。36大数据(/)
4、Spark SQL
SparkSQL的前身是Shark,给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而生,它是当时唯一运行在Hadoop上的SQL-on-Hadoop工具。但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低的运行效率,为了提高SQL-on-Hadoop的效率,大量的SQL-on-Hadoop工具开始产生,其中表现较为突出的是:
MapR的Drill
Cloudera的Impala
其中Shark是伯克利实验室Spark生态环境的组件之一,它修改了下图所示的右下角的内存管理、物理计划、执行三个模块,并使之能运行在Spark引擎上,从而使得SQL查询的速度得到10-100倍的提升。36大数据(/)
5、Spark DataFrame
Spark发布了最新的1.3.0版本,其中最重要的变化,便是DataFrame这个API的推出。DataFrame让Spark具备了处理大规模结构化数据的能力,在比原有的RDD转化方式易用的前提下,计算性能更还快了两倍。这一个小小的API,隐含着Spark希望大一统「大数据江湖」的野心和决心。DataFrame像是一条联结所有主流数据源并自动转化为可并行处理格式的水渠,通过它Spark能取悦大数据生态链上的所有玩家,无论是善用R的数据科学家,惯用SQL的商业分析师,还是在意效率和实时性的统计工程师。
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。
7、Phoenix
Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。更多参考官网。
8、ELK Stack
ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。36大数据(/)
8.1 ElasticSearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。36大数据(/)
8.2 Logstash
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。logstash带有一个web界面,搜索和展示所有日志。
8.3 Kibana
kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面。
五、消息队列
参考资料:
1、 Kafka(纯日志类,大吞吐量)
是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。换个说法即Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。
2、RocketMQ
分布式消息队列,是一款分布式、队列模型的消息中间件。
是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。36大数据(/)
4、ActiveMQ
开源的消息队列软件,是JMS消息通信规范的一个实现,运行在JVM下,支持多种语言,如JAVA,C++,C#。
5、RabbitMQ
是一个在AMQP基础上完整的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。
六、流式计算
1、Storm/JStorm
对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样Storm也可以处理大批量的数据,然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。Storm同样还具备容错和分布计算这些特性,这就让Storm可以扩展到不同的机器上进行大批量的数据处理。他同样还有以下的这些特性:36大数据(/)
· 易于扩展:对于扩展,伴随着业务的发展,我们的数据量、计算量可能会越来越大,所以希望这个系统是可扩展的。你只需要添加机器和改变对应的topology(拓扑)设置。Storm使用Hadoop Zookeeper进行集群协调,这样可以充分的保证大型集群的良好运行。
· 每条信息的处理都可以得到保证。
· Storm集群管理简易。
· Storm的容错机能:一旦topology递交,Storm会一直运行它直到topology被废除或者被关闭。而在执行中出现错误时,也会由Storm重新分配任务。这是分布式系统中通用问题。一个节点挂了不能影响我的应用。
· 低延迟。都说了是实时计算系统了,延迟是一定要低的。
· 尽管通常使用Java,Storm中的topology可以用任何语言设计。
2、Spark Streaming
Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。
Spark Streaming的优势在于:
· 能运行在100+的结点上,并达到秒级延迟。
· 使用基于内存的Spark作为执行引擎,具有高效和容错的特性。
· 能集成Spark的批处理和交互查询。
· 为实现复杂的算法提供和批处理类似的简单接口。
基于云梯Spark Streaming总体架构
Spark on Yarn启动后,由Spark AppMaster把Receiver作为一个Task提交给某一个Spark Executor;Receive启动后输入数据,生成数据块,然后通知Spark AppMaster;Spark AppMaster会根据数据块生成相应的Job,并把Job的Task提交给空闲Spark Executor 执行。图中蓝色的粗箭头显示被处理的数据流,输入数据流可以是磁盘、网络和HDFS等,输出可以是HDFS,数据库等。36大数据(/)
Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。再换句话说,Flink 会把所有任务当成流来处理,这也是其最大的特点。Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。并且 Flink 可以定制化内存管理。在这点,如果要对比 Flink 和 Spark 的话,Flink 并没有将内存完全交给应用层。这也是为什么 Spark 相对于 Flink,更容易出现 OOM 的原因(out of memory)。就框架本身与应用场景来说,Flink 更相似与 Storm。36大数据(/)
Flink 架构图
七、日志收集
Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。
它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。当中央存储系统的网络或者机器出现故障时,scribe会将日志转存到本地或者另一个位置,当中央存储系统恢复后,scribe会将转存的日志重新传输给中央存储系统。其通常与Hadoop结合使用,scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。
根据StuQ 发布的大数据工程师技能图谱来看,想要成为大数据工程师,除了以上提到的知识点之外,还需要掌握数据可视化、机器学习、算法和云计算等多个知识点。今天先为大家介绍到这里,下一篇文章我们将会继续为你介绍。
转载请注明来自36大数据(): &
除非特别注明,本站所有文章均不代表本站观点。报道中出现的商标属于其合法持有人。请遵守理性,宽容,换位思考的原则。热门标签:
·····
为什么数据科学家需要具备学科专业知识?
在如今的数据世界当中,我们已经被淹没在数据的汪洋中。我们周围充斥着大量的数据信息资源,它们每一天都在萦绕在我们周围。它们以不同的形式充斥着我们生活中的每一个角落,时时刻刻。数据的3V(Volume=体量;Velocity=速度;Variety=多样性)特性被巧妙地比喻成企业在力争从自己的数据信息中获取价值时所面对的三座大山。每一座大山都将会因为科技领域内的突破而土崩瓦解(也可以说是被降低)。伴随着并行处理能力的诞生,通过机器学习和深度学习算法以及编辑运算技术,这三座大山在人类面前真的只是是小巫见大巫。
你的数据有何含义?
数据,不是简单的一连串数字。它们自身确实拥有奥秘。它们也许代表了某些有趣味性的事情;它们也可以表示对你的企业有至关作用的结果,它们也代表着可以对你企业的重要事件有某种预测能力。数字,可以反映出企业的销售绩效,也可以代表客户的满意度,它们甚至可以反映医疗保健服务的质量水平。因此,确保的数据具有一定的含义有时候要比挖掘其中的价值显得更加至关重要。
数字的含义和你企业数据的真实性息息相关。每当我们使用公制单位进行测量时,我们总是需要问“测量得到的数据含义是什么?”举个例子,我们可以通过不同的方式一点点达到“消费者满意”的目标。客户的满意度可以从以下几个方面得到参考:消费者调查报告、微博反馈,或者可以从呼叫中心的通话当中得到窥探。这几种客户满意度的考评方式之间有天壤之别。消费者的满意度调查评分主要是针对整体的满意度进行设计的一种衡量方式,然而微博、微信等社交网络当中的数据,我们对它的可控性微乎其微,而且其中所反映出的消费者满意度也只是处于短时间的层面。然而,这些衡量的方式都被涵盖在“消费者满意度”范围内,它们拥有不同的含义。
学科知识专家
仅仅使用技术的话,其实无法将真真切切的难题迎刃而解。因此,这就是学科知识专家可以一展身手的地方了,专业知识可以帮助你理解数据当中的含义。因为你需要学科专家对你的衡量方式进行评估。这些专家利用自己在某一领域当中深厚的知识功底,可以观察到不同资源和各种类型衡量指标之间的细微差别,而且这些专家也可以知道解决这样一个难题所需要的知识应该如何运用。难怪学科知识专家是构成一名合格数据科学家的三大技能支柱之一。
请一定不要忘记,数字并非表面看起来那般简单:它代表了你的公司的某些利益。一定要弄清楚企业的度量标准,并且弄清楚这些度量标准对你的企业意味着什么。如果你想了解为什么你的数据的真实性有如此重要的作用,那么在一开始的时候你必须相信数字当中隐含的潜台词。
编译丨化学数据联盟-丑灿
注:本文系化学数据联盟授权数据观发布,如需转载请获得授权,未经许可,谢绝转载。
责任编辑:王培
贵州大数据产业政策
贵州省人民政府办公厅印发了贵州省大数据发展 ...
贵州大数据产业动态
近日,大南社区对辖区5个居委会的书记(主任)...
贵州大数据企业
云上贵州大数据产业发展有限公司被中国大数据 ...
战场态势可视化拥有全三维战场态势,多样化的 ...近日,大数据流通与交易技术国家工程实验室获 ...英特尔在人工智能、无人驾驶、5G、虚拟现实、 ...

我要回帖

 

随机推荐