大数据职业进展方向.docx
《大数据职业进展方向.docx》由会员分享,可在线阅读,更多相关《大数据职业进展方向.docx(14页珍藏版)》请在冰豆网上搜索。
大数据职业进展方向
大数据职业进展方向
一、大数据的概念及特点:
大数据本身确实是一个很抽象的概念,提及大数据很多人也只能从数据量上去感知大数据的规模,大数据被概念为“代表着人类认知进程的进步,数据集的规模是无法在可容忍的时刻内用目前的技术、方式和理论去获取、治理、处置的数据。
大数据不是一种新技术,也不是一种新产品,而是一种新现象,是近来研究的一个技术热点。
大数据具有以下4个特点,即4个“V”:
(1)数据体量(Volumes)庞大。
大型数据集,从TB级别,跃升到PB级别。
(2)数据类别(Variety)繁多。
数据来自多种数据源,数据种类和格式冲破了以前所限定的结构化数据范围,囊括了半结构化和非结构化数据。
(3)价值(Value)密度低。
以视频为例,持续不中断监控进程中,可能有效的数据仅仅一两秒钟。
(4)处置速度(Velocity)快。
包括大量在线或实时数据分析处置的需求,1秒定律。
最后这一点也是和传统的数据挖掘技术有着本质的不同。
物联网、云计算、移动互联网、车联网、电话、平板电脑、PC和遍及地球各个角落的各类各样的传感器,无一不是数据来源或承载的方式。
二、大数据处置流程:
从大数据的特点和产生领域来看,大数据的来源相当普遍,由此产生的数据类型和应用途理方式千差万别。
可是总的来讲,大数据的大体处置流程多数是一致的。
整个处置流程能够归纳为四步,别离是搜集、导入和预处置、统计和分析,最后是数据挖掘。
三、大数据分解结构:
第一层面是理论,理论是认知的必经途径,也是被普遍认同和传播的基线。
我会从大数据的特点概念明白得行业对大数据的整体刻画和定性;从对大数据价值的探讨来深切解析大数据的宝贵所在;从对大数据的此刻和以后去洞悉大数据的进展趋势;从大数据隐私那个专门而重要的视角凝视人和数据之间的长久博弈。
第二层面是技术,技术是大数据价值表现的手腕和前进的基石。
我将别离从云计算、散布式处置技术、存储技术和感知技术的进展来讲明大数据从搜集、处置、存储到形成结果的整个进程。
第三层面是实践,实践是大数据的最终价值表现。
。
四、大数据相关的技术:
一、云技术——大数据常和云计算联系到一路,因为实时的大型数据集分析需要散布式处置框架来向数十、数百或乃至数万的电脑分派工作。
能够说,云计算充当了工业革命时期的发动机的角色,而大数据那么是电。
二、散布式处置技术:
——散布式处置系统能够将不同地址的或具有不同功能的或拥有不同数据的多台运算机用通信网络连接起来,在操纵系统的统一治理操纵下,和谐地完成信息处置任务-这确实是散布式处置系统的概念。
目前最经常使用的是Hadoop技术,Hadoop是一个实现了MapReduce模式的能够对大量数据进行散布式处置的软件框架,是以一种靠得住、高效、可伸缩的方式进行处置的。
Hadoop用到的一些技术有:
HDFS:
Hadoop散布式文件系统(DistributedFileSystem)-HDFS(HadoopDistributedFileSystem)
MapReduce:
并行计算框架
HBase:
类似GoogleBigTable的散布式NoSQL列数据库。
Hive:
数据仓库工具。
Zookeeper:
散布式锁设施,提供类似GoogleChubby的功能。
Avro:
新的数据序列化格式与传输工具,将慢慢取代Hadoop原有的IPC机制。
Pig:
大数据分析平台,为用户提供多种接口。
Ambari:
Hadoop治理工具,能够快捷的监控、部署、治理集群。
Sqoop:
用于在Hadoop与传统的数据库间进行数据的传递。
3、存储技术——大数据能够抽象的分为大数据存储和大数据分析,这二者的关系是:
大数据存储的目的是支撑大数据分析。
4、感知技术——大数据的搜集和感知技术的进展是紧密联系的。
以传感器技术,指纹识别技术,RFID技术,坐标定位技术等为基础的感知能力提升一样是物联网进展的基石。
五、大数据人材方向:
目前,大数据方面要紧有五大人材方向:
※大数据核心研发方向(系统研发);
※大数据性能调优方向;
※大数据挖掘、分析方向;
※大数据运维、云计算方向
※数据分析师方向(CDA、CPDA)
大数据是一项基于Java的散布式架构技术,用来治理及分析海量数据。
大数据核心研发(系统研发)方向:
基础课程篇:
1、Java——基础课程(大数据任何方向必学内容)
2、Linux基础——基础课程(大数据任何方向必学内容)
3、Shell编程——从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。
用户既能够输入命令执行,又能够利用
Shell脚本编程,完成加倍复杂的操作。
软件语言篇:
4、Hadoop——是一个开发和运行处置大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实此刻大量运算机组成的集群中对海量数据进行散布式计算。
5、HDFS
6、YARN
7、MapReduce
8、ETL(数据仓库技术)
9、Hive(数据仓库工具)
10、Sqoop
1一、Flume
12、HBase
13、Storm
14、Scala
15、KafkaMQ
16、Spark
17、Spark核心源码剖析
18、CM治理
19、CDH集群
HDFS
Hadoop散布式文件系统(HDFS)被设计成适合运行在通用硬件(commodityhardware)上的散布式文件系统。
全称:
HadoopDistributedFileSystem
简称:
hdfs
实质:
散布式文件系统
作用:
作为ApacheNutch的基础架构
特点:
高容错性
适用:
大规模数据集
原理:
HDFS就像一个传统的分级文件系统。
能够创建、删除、移动或重命名文件,
等等。
HDFS是Hadoop兼容最好的标准文件系统,因为Hadoop是一个综
合性的文件系统抽象,因此HDFS不是Hadoop必需的。
因此也能够明白得为
Hadoop是一个框架,HDFS是Hadoop中的一个部件。
优点:
1)存储超大文件,存储文件为TB,乃至PB;
2)流式数据读取,一次写入多次读取,是最高效的访问模式;
3)商用硬件,设计运行一般的廉价的PC上。
缺点:
1)数据访问延迟高,设计于大吞吐量数据的,这是以必然的延迟为代价;
2)文件数受限,存储的文件总数受限于NameNode的内存容量;
3)不支持多用户写入,也不支持任意修改文件。
替代品:
1)DataStax不是文件系统,而是一个开源的代码,NoSQL键/值存储,依托
快速的数据访问。
2)CEPH一个开源代码,是一家名为Inktank做多种存储系统的商业软件。
其特点是高性能并行文件系统。
3)DispersedStorageNetworkCleversafe这一新产品将HadoopMapReduce
与企业分散存储网络系统相融合。
跨过集群完全分派元数据,也不依托
于复制,Cleversafe以为与HDFS相较,DispersedStorageNetwork的速度
更快,更靠得住。
4)Lustre是一个开发源代码的高性能文件系统,一些人宣称在性能灵敏
区域其能够作为HDFS的一个替代方案。
YARN
ApacheHadoopYARN(另一种资源和谐者)是一种新的Hadoop资源治理器,它是一个通用资源治理系统,可为上层应用提供统一的资源治理和调度,它的引入为集群在利用率、资源统一治理和数据共享等方面带来了庞大益处。
YARN从某种那个意义上来讲应该算做是一个云操作系统,它负责集群的资源治理。
实质:
一种新的Hadoop资源治理器
作用:
修复MapReduce实现里的明显不足,并对可伸缩性(支持一万个节点和二十万个
内核的集群)、靠得住性和集群利用率进行了提升
缺点:
这种架构存在不足,要紧表此刻大型集群上。
当集群包括的节点超过4,000个时
(其中每一个节点可能是多核的),就会表现出必然的不可预测性。
其中一个最大的
问题是级联故障,由于要尝试复制数据和重载活动的节点,因此一个故障会通过网
络泛洪形式致使整个集群严峻恶化。
优点:
大大减小了JobTracker(也确实是此刻的ResourceManager)的资源消耗,而且让监测每一个Job
子任务(tasks)状态的程序散布式化了,更平安、更优美。
MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
概念"Map(映射)"和"Reduce(归约)",是它们的要紧思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
它极大地址便了编程人员在可不能散布式并行编程的情形下,将自己的程序运行在散布式系统上。
本质:
一种编程模型
用途:
大规模数据集的并行运算
特点:
散布靠得住
应用:
大规模的算法图形处置、文字处置等
要紧功能:
1)数据划分和计算任务调度;
2)数据/代码互定位;
3)系统优化;
4)犯错检测和恢复。
技术特点:
1)向“外”横向扩展,而非向“上”纵向扩展
2)失效被以为是常态
3)把处置向数据迁移
4)顺序处置数据、幸免随机访问数据
5)为应用开发者隐藏系统层细节
6)滑腻无缝的可扩展性
ETL(数据仓库技术)
用来描述将数据从来源端通过抽取(extract)、转换(transform)、加载(load)至目的端的进程。
ETL一词较经常使用在数据仓库,但其对象并非限于数据仓库。
ETL是构建数据仓库的重要一环,用户从数据源抽掏出所需的数据,通过数据清洗,最终依照预先概念好的数据仓库模型,将数据加载到数据仓库中去。
软件名称:
Extract-Transform-Load
过程:
数据抽取、清洗、转换、装载
应用:
Informatica、Datastage、OWB、
数据集成:
快速实现ETL
特性:
正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。
阻碍特性缘故:
业务系统不同时期系统之间数据模型不一致;业务系统不同时期业务进程有转变;旧系统模块在运营、人事、财务、办公系统等相关信息的不一致;遗留系统和新业务、治理系统数据集成不完备带来的不一致性。
转换进程:
1)空值处置:
可捕捉字段空值,进行加载或替换为其他含义数据,并可依照字段空值实现分流加载到不同目标库。
2)标准化数据格式:
可实现字段格式约束概念,关于数据源中时刻、数值、字符等数据,可自概念加载格式。
3)拆分数据:
依据业务需求对字段可进行分解
4)验证数据正确性:
可利用Lookup及拆分功能进行数据验证
5)数据替换:
关于因业务因素,可实现无效数据、缺失数据的替换。
6)Lookup:
查获丢失数据Lookup实现子查询,并返回用其他手腕获取的缺失字段,保证字段完整性。
7)成立ETL进程的主外键约束:
对无依托性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。
功能特点:
1)治理简单
2)标准概念数据
3)拓展新型应用
Hive(数据仓库工具)
hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,能够将sql语句转换为MapReduce任务进行运行。
Hive是成立在Hadoop上的数据仓库基础构架。
它提供了一系列的工具,能够用来进行数据提取转化加载(ETL),这是一种能够存储、查询和分析存储在Hadoop中的大规模数据的机制。
兼容性:
hadoop生态圈
依赖:
jdk,hadoop
定义:
在Hadoop上的数据仓库基础构架
适用:
Hive构建在基于静态批处置的Hadoop之上,Hadoop通常都有较高的延迟而且在作业提交和调度的时候需要大量的开销。
因此,Hive并非能够在大规模数据集上实现低延迟快速的查询。
特性:
1)支持索引,加速数据查询。
2)不同的存储类型,例如,纯文本文件、HBase中的文件。
3)将元数据保留在关系数据库中,大大减少了在查询进程中执行语义检查的时刻。
4)能够直接利用存储在Hadoop文件系统中的数据。
5)内置大量用户函数UDF来操作时刻、字符串和其他的数据挖掘工具,支持用户扩展UDF函数来完成内置函数无法实现的操作。
6)类SQL的查询方式,将SQL查询转换为MapReduce的job在Hadoop集群上执行。
体系结构:
1)用户接口——用户接口要紧有三个:
CLI,Client和WUI
2)元数据存储——Hive将元数据存储在数据库中,如mysql、derby
3)说明器、编译器、优化器、执行器——说明器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化和查询打算的生成。
生成的查询打算存储在HDFS中,并在随后由MapReduce挪用执行。
Sqoop
Sqoop是一款开源的工具,要紧用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,能够将一个关系型数据库(例如:
MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也能够将HDFS的数据
导进到关系型数据库中。
特点:
能够通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS。
flume
Flume是Cloudera提供的一个高可用的,高靠得住的,散布式的海量日记搜集、聚
合和传输的系统,Flume支持在日记系统中定制各类数据发送方,用于搜集数据;同时,
Flume提供对数据进行简单处置,并写到各类数据同意方(可定制)的能力。
中文名:
水槽
特点:
聚合和传输的系统
实质:
孵化项目——是经济方面的用于,一项鉴定成功,付诸实施的项目。
功能:
1)日记搜集;
2)数据处置
HBase
HBase是一个散布式的、面向列的开源数据库,一个结构化数据的散布式存储系统。
HBase不同于一样的关系数据库,它是一个适合于非结构化数据存储的数据库。
另一个不同的是HBase基于列的而不是基于行的模式。
结构:
散布式存储系统
优点:
HBase–HadoopDatabase,是一个高靠得住性、高性能、面向列、可伸
缩的散布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。
模型:
逻辑模型——要紧从用户角度动身;
物理模型——要紧从实现Hbase的角度来讨论;
Storm
Storm是一个散布式的,靠得住的,容错的数据流处置系统。
它会把工作任务委托给不同类型的组件,每一个组件负责处置一项简单特定的任务。
Storm集群的输入流由一个被称作spout的组件治理,spout把数据传递给bolt,bolt要么把数据保留到某种存储器,要么把数据传递给其它的bolt。
优点:
1)简单的编程模型。
类似于MapReduce降低了并行批处置复杂性,Storm降低了进行实时处置的复杂性。
2)能够利用各类编程语言。
你能够在Storm之上利用各类编程语言。
默许支持Clojure、Java、Ruby和Python。
要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。
3)容错性。
Storm会治理工作进程和节点的故障。
4)水平扩展。
计算是在多个线程、进程和效劳器之间并行进行的。
5)靠得住的消息处置。
Storm保证每一个消息至少能取得一次完整处置。
任务失败时,它会负责从消息源重试消息。
6)快速。
系统的设计保证了消息能取得快速的处置,利用ØMQ作为其底层消息队列。
7)本地模式。
Storm有一个“本地模式”,能够在处置进程中完全模拟Storm集群。
这让你能够快速进行开发和单元测试。
缺点:
1)单调乏味性;
2)脆弱性;
3)可伸缩性差;
利用性:
Storm有许多应用领域,包括实时分析、在线机械学习、信息流处置、持续性的计算、散布式RPC、ETL等。
术语:
Storm的术语包括Stream、Spout、Bolt、Task、Worker、StreamGrouping和Topology。
同品:
能够和Storm相提并论的系统有Esper、Streambase、HStreaming和YahooS4。
其中和Storm最接近的确实是S4。
Scala
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可
伸缩的语言、并集成面向对象编程和函数式编程的各类特性。
类型:
编程语言
特性:
1)面向对象风格;
2)函数式风格;
3)更高层的并发模式;
4)轻量级的函数语法——高阶、嵌套、局部套用(Currying)、匿名;
5)与XML集成——可在Scala程序中直接书写XML;
可将XML转换成Scala类;
6)与JAV无缝的互操作;
KafkaMQ
KafkaMQ是一个高吞吐量散布式消息系统。
Kafka就跟那个名字一样,设计超级独特。
性质:
高吞吐量散布式消息系统;
架构:
消息的持久化缓和存;
特性:
1)通过O
(1)的磁盘数据结构提供消息的持久化,这种结构关于即便数以
TB的消息存储也能够维持长时刻的稳固性能。
2)高吞吐量:
即便是超级一般的硬件,也能够支持每秒数十万的消息。
3)支持通过kafka效劳器和消费机集群来分区消息。
4)支持Hadoop并行数据加载。
目的:
提供一个发布定阅解决方案,它能够处置消费者规模的网站中的所有动作流数据。
这种动作(网页阅读,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。
这些数据一般是由于吞吐量的要求而通过处置日记和日记聚合来解决。
设计理念:
持久化消息、高吞吐量、consumer决定消息状态、系统中各个角色都是散布式集群、consumer有逻辑组的概念。
Spark
Spark是UCBerkeleyAMPlab所开源的类HadoopMapReduce的通用并行框架,
Spark,拥有HadoopMapReduce所具有的优势;但不同于MapReduce的是Job中间输出结果
能够保留在内存中,从而再也不需要读写HDFS,因此Spark能更好地适用于数据挖掘与机械
学习等需要迭代的MapReduce的算法。
基于:
MapReduce算法实现的散布式计算
特点:
1)自动容错
2)位置感