大数据职业发展方向一、大数据的概念及特点:大数据本身就是一个很抽象的概念,提及大数据很多人也只能从数据量上去感知大数据的规模,大数据被定义为“代表着人类认知过程的进步,数据集的规模是无法在可容忍的时间内用目前的技术、方法和理论去获取、管理、处理的数据。
大数据不是一种新技术,也不是一种新产品,而是一种新现象,是近来研究的一个技术热点。
大数据具有以下4个特点,即4个“V”:(1) 数据体量(Volumes) 巨大。
大型数据集,从TB级别,跃升到PB级别。
(2) 数据类别(Variety) 繁多。
数据来自多种数据源,数据种类和格式冲破了以前所限定的结构化数据范畴,囊括了半结构化和非结构化数据。
(3) 价值(Value) 密度低。
以视频为例,连续不间断监控过程中,可能有用的数据仅仅一两秒钟。
(4) 处理速度(Velocity) 快。
包含大量在线或实时数据分析处理的需求,1秒定律。
最后这一点也是和传统的数据挖掘技术有着本质的不同。
物联网、云计算、移动互联网、车联网、手机、平板电脑、PC以及遍布地球各个角落的各种各样的传感器,无一不是数据来源或者承载的方式。
二、大数据处理流程:从大数据的特征和产生领域来看,大数据的来源相当广泛,由此产生的数据类型和应用处理方法千差万别。
但是总的来说,大数据的基本处理流程大都是一致的。
整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析,最后是数据挖掘。
三、大数据分解结构:第一层面是理论,理论是认知的必经途径,也是被广泛认同和传播的基线。
我会从大数据的特征定义理解行业对大数据的整体描绘和定性;从对大数据价值的探讨来深入解析大数据的珍贵所在;从对大数据的现在和未来去洞悉大数据的发展趋势;从大数据隐私这个特别而重要的视角审视人和数据之间的长久博弈。
第二层面是技术,技术是大数据价值体现的手段和前进的基石。
我将分别从云计算、分布式处理技术、存储技术和感知技术的发展来说明大数据从采集、处理、存储到形成结果的整个过程。
第三层面是实践,实践是大数据的最终价值体现。
四、大数据相关的技术:1、云技术——大数据常和云计算联系到一起,因为实时的大型数据集分析需要分布式处理框架来向数十、数百或甚至数万的电脑分配工作。
可以说,云计算充当了工业革命时期的发动机的角色,而大数据则是电。
2、分布式处理技术:——分布式处理系统可以将不同地点的或具有不同功能的或拥有不同数据的多台计算机用通信网络连接起来,在控制系统的统一管理控制下,协调地完成信息处理任务-这就是分布式处理系统的定义。
目前最常用的是Hadoop技术,Hadoop是一个实现了MapReduce模式的能够对大量数据进行分布式处理的软件框架,是以一种可靠、高效、可伸缩的方式进行处理的。
Hadoop用到的一些技术有:HDFS: Hadoop分布式文件系统(Distributed File System)- HDFS (HadoopDistributed File System)MapReduce:并行计算框架HBase: 类似Google BigTable的分布式NoSQL列数据库。
Hive:数据仓库工具。
Zookeeper:分布式锁设施,提供类似Google Chubby的功能。
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、HDFS6、YARN7、MapReduce8、ETL(数据仓库技术)9、Hive(数据仓库工具)10、Sqoop11、Flume12、HBase13、Storm14、Scala15、KafkaMQ16、Spark17、Spark核心源码剖析18、CM管理19、CDH集群HDFSHadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。
全称: Hadoop Distributed File System简称: hdfs实质:分布式文件系统作用:作为Apache Nutch的基础架构特点:高容错性适用:大规模数据集原理: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)Dispersed Storage Network Cleversafe这一新产品将Hadoop MapReduce 与企业分散存储网络系统相融合。
跨过集群完全分配元数据,也不依赖于复制,Cleversafe认为与HDFS相比,Dispersed Storage Network的速度更快,更可靠。
4)Lustre 是一个开发源代码的高性能文件系统,一些人声称在性能敏感区域其可以作为HDFS的一个替代方案。
YARNApache Hadoop YARN (另一种资源协调者)是一种新的Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
YARN从某种那个意义上来说应该算做是一个云操作系统,它负责集群的资源管理。
实质:一种新的Hadoop资源管理器作用:修复MapReduce实现里的明显不足,并对可伸缩性(支持一万个节点和二十万个内核的集群)、可靠性和集群利用率进行了提升缺点:这种架构存在不足,主要表现在大型集群上。
当集群包含的节点超过4,000 个时(其中每个节点可能是多核的),就会表现出一定的不可预测性。
其中一个最大的问题是级联故障,由于要尝试复制数据和重载活动的节点,所以一个故障会通过网络泛洪形式导致整个集群严重恶化。
优点:大大减小了JobTracker(也就是现在的ResourceManager)的资源消耗,并且让监测每一个Job 子任务(tasks) 状态的程序分布式化了,更安全、更优美。
MapReduceMapReduce是一种编程模型,用于大规模数据集(大于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过程的主外键约束:对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。