Cloudera Hadoop-企业级大数据技术体系概述

        Cloudera Hadoop-企业级大数据技术体系概述

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

  

  给大家推荐一本不错的的书《大数据技术体系详解,原理,架构与实践》,作者是董西成。里面讲解了常用的大数据开源组件,我用3天时间看完了,作者从各个体系的架构,工作原理分析的很到位,比一些培训机构的金牌讲师要说的详细,这本书售价79人民币。尤其是大数据运维人员我强烈推荐看看。 
  随着机构和企业积累的数据越来越多,大数据价值逐步体现出来。2015年国务院向社区公布了《促进大数据发展行动纲要》,正式将大数据提升为国家级战略。《促进大数据发展行动纲要》明确提出了大数据的基本概念:"大数据式以容量(Volume)大,类型(Variety)多,存取速度(Velocity)快,应用价值(Value)高为主要特征的数据集合,正快速发展为对数量巨大,来源分散,格式多样的数据进行采集,存储和关联分析,从中发现新知识,创造新价值,提升新能力的新一代信息技术和服务业态"《促进大数据发展行动纲要》提到大数据在推动经济转型发展,重塑国家竞争优势,以及提升政府治理能力等方面具有重要的意义,提出在信用,交通,卫生,金融,气象等多种领域发展大数据。
 

一.大数据系统产生背景及应用场景

1>.大数据系统产生背景

大数据技术直接源于互联网行业。很多互联网的蓬勃发展,用户量和数据量越来越多,逐步形成了大数据,这成为大数据技术的基础。根据有关报告知道,国内百度,腾讯和阿里巴巴等公司数据规模如下:
  2013年百度相关技术报告称,百度数据总量接近1000PB,网页的数量大是几千亿个,每年更新几十亿个,每天查询次数几十亿次。
  2013年腾讯相关技术报告称,腾讯约有8亿用户,4亿移动用户,总存储数据量经压缩处理以后在100PB左右,日新增200TB到300TB,月增加10%的数据量。 
  2013年阿里巴巴相关技术报告称,总体数据量为100PB,每天的活跃数据量已经超过50TB,共有4亿条产品信息和2亿多名注册用户,每天访问超过4000万人次。
   
为了采集,存储,和分析大数据,互联网公司尝试研发大数据技术,从众多技术方案中,开源系统Hadoop与Spark成为应用最广泛的大数据技术,由于他们的用户量巨大,已经初步成为大数据技术规范。

2>.常见的大数据应用场景

目前大数据技术被广泛应用在各个领域,他产生互联网领域,并逐步推广到电信,医疗,金融,交通等领域,大数据技术在众多行业中产生了实用价值。

一.互联网领域
  在互联网领域,大数据被广泛应用在三大场景中,分别是搜索引擎,推荐系统和广告系统。
1>.搜索引擎
  搜索引擎能够帮助人们在大数据集上快速检索信息,已经成为一个跟人们生活嘻嘻相关的工具。很多开源大数据技术技术正是源于谷歌,谷歌在自己的搜索引擎中广泛使用了大数据存储和分析系统,这些系统被谷歌以论文的形式发表出来,今儿被互联网界模仿。
2>.推荐系统
  推荐系统能够在用户没有明确目的的时候根据用户行为信息帮助他们发现感兴趣的内容,已经被广泛应用于电子商务(如亚马逊,淘宝,京东等),电影视频网站(比如爱奇艺,腾讯视频,影视大全等),新闻推荐(比如今日头条等)等系统中。亚马逊科学家 Greg Linden称,亚马逊20%(之后一片博文称35%)的销售来自推荐算法。Netflix在宣传资料中称,有60%的用户是通过推荐系统找到自己感兴趣的电影和视频的。
3>.广告系统
  广告是互联网领域常见的盈利模式,也是一个典型的大数据应用。广告系统能够根据用户的历史行为及个人基本信息,为用户推荐最精准的广告。广告系统通常涉及广告库,日志库等数据,采用大数据技术解决。

二.电信领域
  电信领域是继互联网之后,大数据应用的又一次成功尝试。电信运营拥有多年的数据积累,拥有诸如用户基本信息,业务发展等结构化苏剧,也会涉及文本,图片,音频等非结构化睡。从数据源看,电信运营商的数据涉及移动语音,固定电话,固网接入和无线上网等业务,积累了公共客户,政企客和家庭客户等相关信息,也能收集到电子渠道,直销渠道等所有类型渠道等接触信息,这些逐步积累下来的数据,最终形成大数据。目前电信领域主要讲大户数据应用在以下几个方面:
1>.网络管理和优化,包括基础建设优化,网络运营管理和优化;
2>.市场与精准营销,包括客户画像,关系链研究,精准营销,实施营销和个性化推荐;
3>.企业关系管理,包括客服中心优化和客户生命周期管理;
4>.企业运营管理,包括业务运营监控和经营分析;
5>.数据商业化,数据对外商业化,单独盈利;

三.医疗领域
  医疗领域的数据量巨大,数据类型复杂。到2020年,医疗数据将增至35ZB,相当于20009年数据量44倍。医疗数据包括影像数据,病例数据,检验检查结果,诊疗费用等在内的各种数据,合理利用这些数据可产生巨大的商业价值。大数据技术在医疗行业的应用包含以下几个方向:
1>.临床数据对比;
2>.药品研发;
3>.临床决策支持;
4>.实时统计分析;
5>.基本药物临床应用分析;
6>.远程病人数据分析;
7>.人口统计学分析;
8>.新农合基金数据分析;
9>.就诊行为分析;
10>.新的服务模式等。

四.金融领域
  银行拥有多年的数据积累,已经开始尝试通过大数据来驱动业务运营。银行大数据应用可以分为以下四个方面。
1>.客户画像应用
  客户画像应用主要分为个人客户画像和企业客户画像。个人客户画像包括人口统计学特征,消费能力,兴趣,风险偏好等;企业客户画像包括企业等生产,流通,运营,财务,销售,客户,相关产业链上下游等数据。
2>.精准营销
  在客户画像等基础上英航可以有效地开展精准营销,银行用根据客户的喜好进行服务或者银行产品的个性化推荐,如果根据客户的年龄,资产规模,理财偏好等,对客户群进行精准定位,分析出其潜在的金融服务需求,进而有针对性的进行营销推广。
3>.风险管控
  包括中小企业贷款风险评估和欺诈交易识别等手段,银行可以利用持卡人基本信息,卡基本信息,交易历史,客户历史行为模式,正在发生的行为模式(如转账)等,结合智能规则引擎(如一个不经常出现的国家为一个特有用户转账或从一个不熟悉的位置进行在线交易)进行实时的交易反欺诈分析。
4>.运营优化
  包括市场和渠道分析优化,产品和服务优化等,通过大数据,银行可以监控不同市场推广渠道尤其是网络渠道推广等质量,从而进行合作渠道的调整和优化;银行可以将客户行为转换为信息流,并从中分析客户的个性特征和风险偏好,更深层次地理解客户的习惯,智能化分析和预测客户需求,从而进行产品创新和服务优化。

二.企业级大数据技术框架
  大数据尝试从海量数据中,通过一定的分布式技术手段,挖掘出有价值的信息,最终提供给用户,进而产生实用价值和商业价值。由于数据本身的多样性以及数据分析需求的多元化,大数据技术体系非常复杂,涉及的组件和模块众多。接下里我们就尝试概括大数据技术框架。

  在互联网领域,数据无处不在。以电子商务为例,如下图所示,当用户通过浏览器在淘宝上查看或购买商品时,会向淘宝后端HTTP服务器发送HTTP请求,这些HTTP服务器收到请求后,会将相应的内容返回给用户,同时,以日志的形式来将用户访问记录传到大数据系统,以便大数据技术理解用户的行为意图,进而为广告投放,商品推荐等提供数据支持。

  从数据在信息系统中的生命周期看,大数据从数据源开始,经过分析,挖掘到最终的价值一般需要6个主要环节,包括数据收集,数据存储,资源管理与服务协调,计算引擎,数据分析和数据可视化,如下图所示,每个环节都面临不同程度的技术挑战。

1>.数据收集层

  数据收集层由直接根据数据对接模块构成,负责将数据源中的数据近实时或实时收集到一起。数据源具有分布式,异构性,多样化及流式产生等特点。
  (1)分布式
      数据源通常分布在不同机器或者设备上,并通过网络连接在一起。
  (2)异构性
      任何能够产生数据等系统均可以称为数据源,比如Web服务器,数据库,传感器,手环,视频摄像头等。
  (3)多样化
      数据等格式时多种多样的,既有像用户基本信息这样的关系型数据,也有如图片,音频和视频等非关系型数据。
  (4)流式产生
      数据源如同“水龙头”意义,会源源不断地产生“流水”(数据),而数据收集系统应实时后近实时的将数据发送到后段,以便及时对数据进行分析。由于数据源具有以上特点,将分散的数据源中的数据收集到一起通常式一件十分困难的事情。一个适用于大数据领域的收集系统,一般具备以下几个特点:
        扩展性:能够灵活适配不同的数据源,并能够介入大量数据源而不会产生系统瓶颈。
        可靠性:数据在传输过程中不能够丢失(有些应用可容忍少量数据丢失)。
        安全性:对于一些敏感数据,应有机制保证数据收集过程中不回产生安全隐患。
        低延迟:数据源产生的数据量往往非常庞大,收集系统应该能够在较低延迟的前提下将数据传输到后端存储系统中。
  为了让后端获取全面的数据,以便进行关联分析和挖掘,通常我们建议将数据收集到一个中样存储系统中。

2>.数据存储层

  数据存储层主要负责海量结构化于非结构化的存储。传统的关系型数据库(比如MySQL)和文件系统(比如Linux文件系统)因在存储容量,扩展性及容错性等方面的限制,很难适应大数据应用场景。
  在大数据时代,由于数据收集系统回将各类数据源源不断地发展到中央存储系统中,这对数据存储层的扩展性,容错性及存储模型等有较高要求,总结如下:
    (1)扩展性
        在实际应用中,数据量会不断增加,现有集群的存储能力很快将达到上限,此时需要增加新的机器扩充存储能力,这要求存储系统本身具备好的线形扩展能力。
    (2)容错性
        考虑到成本等因素,大数据系统从最初就假设构建在廉价机器上,这要求系统成本就有良好的容错机制确保在机器出现故障时不会导致数据丢失。
    (3)存储模型
        由于数据具有多样性,数据存储应支持多种数据模型,确保结构化和非结构化的数据能够很容易保存下来。

3>.资源管理与服务协调层

 

  随着互联网的高速发展,各类新型应用和服务不断出现,在一个公司内部,既存在运行时间较短的批处理作业,也存在运行时间很长的服务,为了防止不同应用之间相互干扰,传统做法是将每类应用单独部署到独立的服务器上。该方案简单易操作,但存在资源利用率低,运维成本高和数据共享困难等问题。为了解决这写问题,公司开始尝试所有这些应用部署到一个公共到集群中,让他们共享集群的资源,并对资源进行统一使用,同时采用轻量级隔离方案对各个应用进行隔离,因此便诞生了轻量级弹性资源管理平台,相比于“一种应用一个集群”的模式,引入资源统一挂历层可以带来众多好处,总结如下:
    (1)资源利用率高
        如上图所示,如果每个应用一个集群,则往往由于应用程序数量和资源需求的不均衡,使得在某段时间内有些应用的集群资源紧张,而另外一些集群资源空闲。共享集群模式通过多种应用共享资源,使得集群中的资源得到充分利用。
    (2)运维成本低
        如果采用“一个应用一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本。而共享集群模式通常需要少量管理员即可完成多个框架的统一管理。
    (3)数据共享
        随着数据量的暴增,跨集群见的数据移动不仅需花费更长的时间,且硬件成本也大大增加,而共享集群模式可让多种应用共享数据和硬件资源,这将大大减小数据移动带来的成本。

  在构建分布式大数据系统时,会面临很多共同的问题,包括leader选举,服务命名,分布式队列,分布式锁,发布订阅功能等,为了避免重复开发这些功能,通常会构建一个统一的服务协调组件,包含了开发分布式系统过程中通用的功能。

4>.计算引擎层

  在实际生产环境中,针对不同的应用场景,我们对数据处理的要求是不同的,有些场景下,只需离线处理数据,对实时性要求不高,但要求系统吞吐率高,典型的应用是搜索引擎构建索引。在有些场景下,需对数据进行实时分析,要求每条数据处理延迟尽可能低,典型的应用是广告系统及信用卡欺诈检测。为了解决不同场景下数据处理问题,起初有人尝试构建一个大统一的系统解决所有类型的数据计算问题,但最终以失败告终。究其原因,主要是因为不同类型的计算任务,其追求的目标是不同的,批处理计算追求的是高吞吐量率,而实时计算追求的是低延迟。在现实系统中,系统吞吐率和处理延迟往往是矛盾的两个优化方向,系统吞吐率非常高时,数据延迟往往也非常高,基于此,用一个系统完美解决所有类型的计算任务是不现实的。
  
  计算引擎发展到今天,已经朝着“小而美”的方向前进,针对不同类型应用场景,单独构建一个计算引擎,每种计算引擎只专注解决某一类的问题,进而形成了多样化的计算引擎。计算引擎层是大数据技术中最活跃的一层,直到今天,仍有不断有新的计算引擎被提出。如下图所示:

总体上讲,可按照对时间性能的要求,将计算引擎分为三类:
1>.批处理
    该类计算引擎对时间要求最低,一般处理时间要求最低,一般处理时间为分钟到小时级别,甚至提天级别,它追求的是高吞吐率,即单位时间内处理的数据量尽可能大,典型的应用有搜索引擎构建索引,批量数据分析等。
2>.交互式处理
    该类计算引擎对时间要求比较高,一般要求处理时间为妙级别,这类系统需要跟人进行交互,因此会提供类似SQL的语言便于用户使用,典型的有哪个哟高又数据查询,参数化报表生成等。
3>.实时处理
    该类计算引擎对时间要求最高,一般处理延迟在秒级别以内,典型的应用有广告系统,舆情监测等。

5>.数据分析层 

  数据可视化技术指的是运用计算机图形学和图像处理技术,将数据转换为图形或图像在屏幕上显示出来,并进行交互处理的理论,方法和技术。它涉及计算机图形学,图像处理,计算机辅助设计,计算机视觉人际交互技术等多个领域。

  数据可视化层时直接面向用户展示结果的一层,由于该层直接对接用户,是展示大数据价值的“门户”,因此数据可视化是极具意义的。考虑到大数据具有容量大,结构复杂和维度多等特点,对大数据进行可视化是具有挑战性的。下面我们剧烈说明发展可视化技术的意义集挑战。

  在医学领域,为了认识人体内部结构,美国国家医学图书馆于1989年开始实施可视化人体计划(VHP),并委托克罗拉多大学医学院建立了一男一女全部结构结构数据库。他们分别将男女不同性别的两具尸体从头到脚CT扫描和核磁共振(难的间距1毫米,共1878个断面,女的间距0.33毫米,共5189个断面),然后将尸体填充蓝色乳胶并以明胶后冻至零下80摄氏度,再以同样的间距对尸体做组织切片的数码相机摄影,分辨率为2048 x 1216,最终所得数据共56GB(男13GB,女43GB)。全球用户可以在美国国家医学图书馆允许的情况下获得该数据并用于教学和科学研究。VHP数据集的出现标志着计算机三维重构图像和虚拟现实技术进入了医学领域,从而大大促进了医学的发展和普及家。

 

三.企业级大数据技术实现方案

 1>.Google大数据技术栈

  真正意义上的大数据技术源于互联网行业,尤其是大数据技术引领着谷歌公司,由于其数据量大,解决的问题都是前沿的,对大数据技术的发展起到了重要的作用。

  Google公司在大数据方面的技术,均是以发表论文的形式对外公开的,尽管没有对外开源系统实现代码,但这些论文直接带动了大数据技术的发展,尤其为大数据开源技术的发展指明了方向。Google公开发表的大数据系统方面的论文目前绝大都存在对应的开源系统实现。总结近10年Google发表的论文,设计的大数据系统如下图所示:主要分布在数据存储层,资源管理层于服务协调层,计算引擎层,数据分析层这四层中。

一.数据存储层
1>.GFS[GGL03]
  Google文件系统(Google FIle System)是一个分布式文件系统,具有良好的容错性,扩展性和可用性,尤其是容错性表现突出,这使得GFS可构建在大量普通廉价机器上,进而容易进行“Scale out”(横向扩展),相比传统的“Scale up”(向上扩展)方案中采用的大型机或小型机等,大大降低了成本。
2>.BigTable[CGG+06]
  构建在GFS之上的分布式数据库本质上是一个稀疏的,分布式的,持久化存储的多维度排序映射表。BigData支持插入和更新操等操作,且行数和列数可以无限扩展,这在很大程度上弥补了传统关系型数据库在schema上的不灵活。
3>.MegaStore[BBC+11]
  MegaStore是构建在BigData之上,支持ACID特性的分布式数据库。它是一个具有高扩展性并可进行高度交互的可用存储服务,其在Google的基础系统之中,起初主要解决App Engine的数据存储问题。MegaStore能够在广域网中同步复制文件些操作,在可接受的延迟下,支持数据中心故障迁移。
4>.Spanner[CDE+13]
  Spanner是一个可扩展的,多版本,全球分布式,支持同步复制的数据库。它是第一个把数据库分布在全球范围内的系统,并且支持外部一致性的分布式事务。Google官方认为,Spanner是下一代BigTable,也是MegaStore的继续着。

二.资源管理与服务协调
1>.Borg[VPK +15]
  一个集群资源管理和调度系统,它负责集群的资源管理和统一调度,并对应应用程序进行接受,启动,停止,重启和监控。Borg的目的是让开发者能够不必操心资源管理的问题,让他们专注于应用程序开发相关工作,并且做到跨多个数据中心的资源利用率最大化。
2>.Omega[SKA+13]
  Google下一代集群资源管理和调度系统,采用了共享状态的架构,这使得应用程序调度器拥有整个集群的权限,可以自由获取资源,同时采用了基于多版本的并发访问控制方式(又称乐观锁,全称为MVCC,即Multi-Version-Concurrency Control),解决潜在的资源冲突访问问题。
3>.Chubby[Bur06]
  该系统旨在为松散耦合的分布式系统提供粗力度的锁以及可靠性存储(低容量的),它提供了非常类似于分布式文件系统的接口,能够很容易的实现leader选举,分布式锁,服务命名等分布式问题,它设计的侧重点在可用性及可靠性而不是高性能。

三.计算引擎层
1>.MapReduce[DG08]
  MapReduce是一个批处理计算框架,它采用“分而治之”的思想,将对大规模数据集的操作,分解成Map和Reduce两个阶段,Map阶段并行处理输入数据集,产生中间结果,Reduce阶段则通过整合各个节点的中间结果没得到最终结果。简单的说,MapReduce就是“任务的分解与结果的汇总”。MapReduce具有高吞率,良好的容错性,扩展性以及易于编程等特点,被广泛用用于构建索引,数据挖掘,机器学习等应用中。
2>.Dremel[MGL+10]
  Dremel是一个分布式OLAP(OnLine Analytical Processing)系统,通过引入列式存储,树状架构等技术,能够帮助数据分析师在秒级处理PB级数据。Dremel在一定程度上弥补了类MapReduce系统在交互式查询方面的不足。
3>.Pregel[MAB+10]
  Pregel是一个分布式图计算框架,专门用来解决网页链接分析,社交数据挖掘等实际应用中设计的大规模分布式图计算问题,Pregel采用了BSP(Bulk Synchronus Parallel Computig Model)模型,即“计算--->通信--->同步”模型,通过消息传递的方式,实现高效的迭代计算。
  WIKI地址:https://en.wikipedia.org/wiki/Bulk_synchronous_parallel。
4>.Precolator[PD10]
  Percolator是一个基于BigTable构建的大数据集增量更新系统。其目标是在海量的数据集上提供增量更新的能力,并通过支持分布式事务来确保增量处理过程中的数据一致性和整体系统的可扩展性。Percolator最初是为了解决网页库增量更新而提出了的,用以弥补MapReduce无法诸葛处理小规模更新的缺陷。
5>.MillWheel[ABB+13]
  MillWheel是一个分布式实时处理框架,它允许用户自定义一些处理单元,并按照一定的拓扑结构链接在一起形成一个有向图,从而形成一个流式处理数据线。MillWheel具有低延迟,自动处理乱序,数据严格一次投递(exactly-once delivery)等优点,在Google被广泛应用于构建低延迟数据处理应用。

四.数据分析层
1>.FlumeJava[CRP+10]
  FlumeJava是一个建立在MapReduce之上的Java编程库,提供了一层高级原语以简化复杂的MapReduce应用程序开发,非常适合构建复杂的数据流水线。FlumeJava内置优化,会自动优化应用程序的执行计划,并基于底层的原语来执行优化后的操作。
2>.Tenzing[CLL+11]
  建立在MapReduce之上的SQL查询执行引擎,它可以将用户编写的SQL查询执行引擎,它可以将用户编写的SQL语句转化为MapReduce之上的SQL查询执行引擎,它可以将用户编写的SQL语句转化为MapReduce程序,并提交到集群中分布式并行执行。

2>.阿里飞天系统架构

 

阿里公司C++自己研发了一套“阿里飞天架构”,飞天平台内核包含的模块可以分为以下几部分:
一.分布式系统底层服务
    提供分布式环境下所需要的协调服务、远程过程调用、安全管理和资源管理的服务。这些底层服务为上层的分布式文件系统、任务调度等模块提供支持。
1>.分布协调服务(女娲)
    女娲(Nuwa)系统为飞天提供高可用的协调服务(Coordination Service),是构建各类分布式应用的核心服务,它的作用是采用类似文件系统的树形命名空间来让分布式进程互相协同工作。类似于zookeeper服务。

2>.远程过程调用(夸父)
    夸父(Kuafu)是飞天平台内核中负责网络通信的模块,它提供了一个RPC的接口,简化编写基于网络的分布式应用。夸父的设计目标是提供高可用(7×24小时)、大吞吐量(Gigabyte)、高效率、易用(简明API、多种协议和编程接口)的RPC服务。

3>.安全管理(钟馗)
    钟馗(Zhongkui)是飞天平台内核中负责安全管理的模块,它提供了以用户为单位的身份认证和授权,以及对集群数据资源和服务进行的访问控制。

二.分布式文件系统(盘古)
    提供一个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能力聚集起来,并能够自动屏蔽软硬件故障,为用户提供不间断的数据访问服务;支持增量扩容和数据的自动平衡,提供类似于POSIX的用户空间文件访问API,支持随机读写和追加写的操作。
    盘古(Pangu)是一个分布式文件系统,盘古系统的设计目标是将大量通用机器的存储资源聚合在一起,为用户提供大规模、高可靠、高可用、高吞吐量和可扩展的存储服务,是飞天平台内核中的一个重要组成部分。

三.任务调度(伏羲)
    为集群系统中的任务提供调度服务,同时支持强调响应速度的在线服务(Online Service)和强调处理数据吞吐量的离线任务(Batch Processing Job);自动检测系统中故障和热点,通过错误重试、针对长尾作业并发备份作业等方式,保证作业稳定可靠地完成。
    伏羲(Fuxi)是飞天平台内核中负责资源管理和任务调度的模块,同时也为应用开发提供了一套编程基础框架。伏羲同时支持强调响应速度的在线服务和强调处理数据吞吐量的离线任务。在伏羲中,这两类应用分别简称为Service和Job。

四.集群监控和部署
    对集群的状态和上层应用服务的运行状态和性能指标进行监控,对异常事件产生警报和记录;为运维人员提供整个飞天平台以及上层应用的部署和配置管理,支持在线集群扩容、缩容和应用服务的在线升级。
1>.集群监控(神农)
    神农(Shennong)是飞天平台内核中负责信息收集、监控和诊断的模块。它通过在每台物理机器上部署轻量级的信息采集模块,获取各个机器的操作系统与应用软件运行状态,监控集群中的故障,并通过分析引擎对整个飞天的运行状态进行评估。

2>.集群部署(大禹)
    大禹(Dayu)是飞天内核中负责提供配置管理和部署的模块,它包括一套为集群的运维人员提供的完整工具集,功能涵盖了集群配置信息的集中管理、集群的自动化部署、集群的在线升级、集群扩容、集群缩容,以及为其他模块提供集群基本信息等。每个飞天模块的发布包都包含一个部署升级的描述文件,定义了该模块部署和升级的流程,提供给大禹使用。

3>.其它公司大数据平台

  除了我们介绍的Google,阿里有自己的大数据平台,其实很多大公司都有自己的大数据平台,比如IBM,FaceBook,华为,亚马逊,百度等国际互联网公司,如下图所示,就是百度公司大数据离线计算的相关信息。

4>.Hadoop与Spark开源大数据技术栈

  随着大数据开源技术的快速发展,目前开源社区以及累计了比较完整的大数据技术栈,应用最广泛的是以Hadoop与Spark为核心的生态系统,如下图所示,整个大数据技术栈涉及数据收集,数据存储,资源管理与服务协调,计算引擎和数据分析这五个层级。

一.数据收集层
  主要由关系型与非关系型数据收集组件,分布式消息队列构成。
1>.Sqoop/Cannel
  关系型数据库收集和导入工具,是连接关系型数据库(比如:MySQL)和Hadoop(HDFS)的桥梁,Sqoop可将关系型数据库中的数据全量到入Hadoop,反之亦可,而Cannel则可用于实现数据的增量导入。
  Sqoop官方地址:https://sqoop.apache.org/
  Cannel官方地址:https://github.com/alibaba/canal
2>.Flume
  非关系型数据库收集工具,主要是流式日志数据,可近实时收集,经过滤,聚集后加载到HDFS等存储系统。
  Flume官方地址:https://flume.apache.org/
3>.Kafka
  分布式消息队列,一般作为数据总线使用,它允许多个数据消费者订阅并获取感兴趣的数据。相比其他消息队列,它采用分布式高容错设计,更适合大数据应用场景。
  Kafka官方地址:https://kafka.apache.org/

二.数据存储层
  主要由分布式文件系统(面向文件的存储)和分布式数九(面向行/列的存储)构成。
1>.HDFS
  Hadoop分布式文件系统,Google GFS的开源实现,具有良好的扩展性与容错性等优点,尤其是出色的容错机制设计,使得它非常适合构建在廉价的机器上,这大大降低了大数据存储成本。目前开源社区已经开发了各种类型的数据存储格式,包括SSTable(Sorted String Table),文本文件,二进制key/value格式Sequence File,列是存储格式Parquet,ORC和Carbondata等。
  Hadoop官方地址:https://hadoop.apache.org/
  Parquet官方地址:https://parquet.apache.org/
  ORC官方地址:https://orc.apache.org/
  Carbondata官方地址:https://carbondata.apache.org/
2>.HBase
  构建在HDFS之上的分布式数据库,Google BigTable的开源实现,允许用户存储结果化的数据,支持行列无限扩展以及数据随机查找和删除。
  HBase官方地址:https://hbase.apache.org/
3>.Kudu
  分布式列示存储数据库,允许用户存储结构化数据,支持行无线扩展以及数据随机查找与更新。
  Kudu官方地址:https://kudu.apache.org/


三.资源管理与服务协调
1>.YARN
  统一资源调度管理与调度系统,它能够管理集群中的各个资源(比如CPU和内存等),并按照一定分配给上层的各类应。YARN内置了多种多租户资源调度器,允许用户按照队列的方式组织和管理资源,且每个队列的调度机制可独立定制。
2>.Zookeeper
  基于简化的Paxos协议实现的服务协调系统,它提供了类似于文件系统的数据模型,允许用户通过简单的API实现leader选举,服务命名,分布式队列与分布式锁等复杂的分布式通用模块。
  zookeeper官方地址:https://zookeeper.apache.org/

四.计算引擎层
  包含批处理,交互模式处理和流式处理三种引擎。
1>.MapReduce/Tez
  MapReduce是一个经典的批处理计算引擎,它是Google MapReduce的开源实现,具有良好的扩展性与容错性,允许用户通过简单的API编写分布式程序;Tez是基于MapReduce开发的通用DAG(Directed Acynlic Graph的简称,有向无环图)计算引擎,能够更加高效地实现复杂的数据处理逻辑,目前被应用在Hive,Pig等数据分析系统中。
  Tez官方地址:https://tez.apache.org/
2>.Spark
  通用的DAG计算引擎,它提供了基于RDD(Resilient Distributed Dataset)的数据抽象表示,允许用户使用标准SQL处理存储在Hadoop中的数据。他们采用了并行数据库架构,内置了查询优化器,查询下推,代码生成等优化机制,使得大数据处理效率大大提高。
  Spark官方地址:https://spark.apache.org/
3>.Storm/Spark Streaming
  分布式流式实时计算引擎,具有良好的容错性和扩展性,能够高效地处理流失数据,它允许用户通过简单的API完成实时应用程序的开发工作。
  Storm官方地址:https://storm.apache.org/

五.数据分析层
  为方便用户解决大数据问题而提供的各种数据分析工具。
1>.Hive/Pig/SparkSQL
  在计算引擎上构建的支持SQL或脚本语言的分析系统,大大降低了用户进行分析的门槛。其中,Hive是基于MapReduce/Tez实现的SQL引擎,Pig是基于MapReduce/Tez实现的工作流引擎,Spark SQL是基于Spark实现的SQL引擎。
  hive官方地址:https://hive.apache.org/
  pig官方地址:https://pig.apache.org/
2>.Mahout/Mlib
  在计算引擎之上构建的机器学习库实现了常用的机器学习和数据挖掘算法。其中,Mahout最初是基于MapReduce实现的,目前正逐步迁移到Spark引擎上,Mlib是基于Spark实现的。
  mahout官方地址:https://mahout.apache.org/
3>.Apache Beam/Cascading
  基于各类计算框架而封装的高级API,方便用户构建复杂的数据流水线。Apache Beam统一了批处理和流式处理两类的计算框架,共提供了更高级的API方便用户编写与具体计算引擎无关的逻辑代码;Cascading内置了查询计划优化器,能够自动优化用户实现的数据流。采用了面向tuple的数据模型,如果你的数据可表示成类似于数据行的格式,则使用Cascading处理将变得很容易。
  beam官方地址:https://beam.apache.org/
  cascading官方地址:https://www.cascading.org/

 

四.大数据架构:Lambda

    Lambda Architecture(简称:LA)最早是Twitter工程师Nathan Marz提出来的,它是一种大数据软件设计设计架构,其目的是指导用户充分利用批处理和流式计算技术各自的优点实现一个复杂的大数据处理系统。通过结合这两类计算技术,LA可以在延迟,吞吐量和容错之间找到平衡点。如下图所示,LA主要思想是将数据处理流分解成三层:批处理层,流式处理层和服务层。

一.批处理层
  它的主要思想是利用分布式处理计算,以批处理为单位处理数据,并产生一个经预算产生的只读数据视图。该层将数据流看成只读的,仅支持追加操作的超大数据集。它可以一次性处理大量数据,引入复杂的计算逻辑(比如机器学习中的模型迭代计算,历史库的匹配等),其优点是吞吐率高,缺点是数据处理延迟高,即从数据产生到最终被处理完成,整个过程用时较长,通常是分钟或小时级别。

二.流式处理层
  为了降低批处理层带来的高延迟,LA又引入了流式处理层,该层采用流式计算技术,大大降低了数据处理延迟(通常是毫秒或秒级别),其优点是数据处理延迟低,缺点是无法进行复杂的逻辑计算,得到的结果往往是近似解。

三.服务层
  批处理层和流式处理层可以看结合在一起,这样既保证数据延迟低,也能完成复杂的逻辑计算(只能保证最终一致性)。为了整合两层的计算结果,LA进一步引入服务层,它对外提供了统一的访问接口以方便用户使用。

四.LA应用案例
  一个经典的LA应用案例是推荐系统。在互联网行业,推荐系统被应用在各个领域,包括电子商务,视频,新闻等。推荐系统等设计目的是根据用户的兴趣特点和购买行为,向用户推荐感兴趣的信息和商品。推荐系统是建立在海量数据挖掘的基础上的一种高级商务智能平台,以帮助商家为其顾客购物提供完全个性化的决策支持和信息服务。推荐系统最核心的模块是推荐算法,推荐算法通常会根据用户的兴趣特点和历史行为数据的构建推荐模型,以预测用户可能感兴趣的信息和商品,进而推荐给用户。

如下图所示,它为一个典型的推荐系统数据流水线架构。在该架构中,数据统一流入Kafka,之后按照不同时间粒度导入批处理和流式处理两个系统中。批处理层拥有所有历史数据(通常保存到HDFS/HBase中),通常用以实时推荐模型,它以当前数据(比如最近一小时数据)和历史数据为输入,通过特征工程,模型构建(通常是迭代算法,使用MapReduce/Spark实现)及模型评估等计算环境后,最终获得最优模型并将产生的推荐结果存储(比如Redis)起来,整个过程延迟较大(分钟甚至小时级别);为了解决推荐系统中的冷启动问题(新用户推荐问题),往往会引入流处理层:他会试试手机用户的行为,并基于这些行为数据通过简单推荐算法(通常使用Storm/Spark Streaming实现)快速产生推荐结果并存储起来。为了便于其他系统获取推荐结果,推荐系统往往通过服务层对外提供访问接口,比如网站后台在渲染某个访问页面时,可能从广告系统,推荐系统以及内容存储系统中获取对应的结果,并返回给客户端。

 

五.Hadoop与Spark版本选择及安装部署(企业大数据平台技术选型)

 

随着社区迅猛发展以及各大互联网公司投入的增加,Hadoop与Spark已经成为大数据技术标准,这吸引了大量商业公司基于开源Hadoop与Spark版本实现了自己的发型版本。
一.Hadoop的版本选择
  目前比较知名的Hadoop版本有以下几个发行版本:
1>.Apache Hadoop
    社区原始版本,由Apache基金会维护,是其他商业公司发行版的基础。
    2005年Hadoop作为Lucene的子项目,Nutch的一部分正式引入Apache基金会。
    2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入称为Hadoop的项目中。
    官网地址:http://hadoop.apache.org/

2>.CDH(Cloudera Distributed Hadoop)
    Cloudera公司发型版,其社区版所有源代码均开源,但企业版则闭源且收费,是使用最广泛的发型版本之一。
    2008年成立的Coudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要包括支持,咨询服务,培训;
    2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support;
    CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强;
    Coundera Manager是集群的软件分发及管理监控平台(这个组件是闭源的,但有对应但API可供二次开发),可以在几个小时内部署好的一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support就是对Hadoop的技术支持;
    Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。
    CDH官方地址:https://www.cloudera.com/

3>.HDP(Hortonworks Data Platform)
    Hortonworks公司发行版,其社区版所有源代码也开源,但企业则闭源收费。
    2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建;
    公司成立之初最吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop 80%的代码;
    雅虎工程副总裁,雅虎Hadoop开发团队负责人Eric Baldeschwieler 出任Hortonworks的首席执行官;
    Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目还包括Ambari,一款开源的安装呵呵管理系统;
    HCatalog,一个元数据管理系统,Hcatalog现已集成到Facebook开源的Hive中。Hortonworks的Stringer开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒;
    Hortonworks开发很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Windows Server和Windows Azure在内的Microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元;
    2018年10月,均为开源平台的Cloudera与Hortonworks公司宣布他们以52亿美元的价格合并。两家公司称合并后公司将拥有2500客户、7.2亿美元收入和5亿美元现金,且没有债务。
    HDP官方地址:https://hortonworks.com/

4>.MapR
    2011年6月,在Hadoop 2011峰会上,MapR的创始人M.C. Srivas做了名为《Design, Scale and Performance of MapR's Distribution for Hadoop》的演讲,比较详细的介绍了MapR设计原则,部分实现细节以及MapR的性能,外界也第一次从内部了解MapR Hadoop。
    整个MapR的核心是其分布式NameNode, 在MapR的设计中,分布式的NameNode又被称作Container,和Hadoop原始设计中的Namenode不一样的是,Container不仅维护了用户文件的meta data,也维护数据块。和其它的Hadoop发型版本相比,它的优势在于他支持linux,unix,hdfs文件系统。并且在容灾方面相比其它的版本来说更好一些。据说比HDFS读写快2-5倍,还具有镜像,快照等特性,但用的人少。
    官方文档:https://mapr.com/docs/61/。

5>.Amazon EMR
    这个是亚马逊推出的一个托管的方案。它可以轻松运行和扩展 Apache Spark、Hadoop、HBase、Presto、Hive 以及其他大数据框架。
    Amazon EMR 提供的托管 Hadoop 框架可以让您快速、轻松、经济高效地在多个动态可扩展的 Amazon EC2 实例中处理大量数据。您还可以运行其他常用的分布式框架(例如 EMR 中的 Apache Spark、HBase、Presto和 Flink),以及与其他 AWS 数据存储服务(例如 Amazon S3 和 Amazon DynamoDB)中的数据进行交互。EMR Notebooks 基于热门的 Jupyter Notebook,可为即席查询和探索性分析提供开发和协作环境。
    官方文档:https://docs.aws.amazon.com/zh_cn/emr/?id=docs_gateway。

二.Spark的版本选择
  比较知名的Spark发行版本有:
1>.Apache Spark
    社区原声版本,由Apache 基金会维护,是其他商业公司发行版本的基础。

2>.Databricks Spark
    Databricks公司发行版,其社区版所有源代码均开源,内置企业版本,增加安全,审计,云等方面的支持。
    Databricks Spark官方地址:https://databricks.com/

3>.Hadoop企业发行版
    各大Hadoop企业发行版,比如HDP和CDH,均内置了对Spark的支持。

三.各个发行版本的区别
    各个发行版本之间统一系统对外使用和接口的方式完全兼容的,不同之处在于他们引入了不同系统解决某个场景的问题,比如CDH选择Impala解决交互式分析问题,而HDP选择Hive On Tez;CDH引入了Cloudera Navigator和Sentry解决安全问题,而HDP则使用Ranger和Knox。
另外,他们均提供了个性化的运维和管理工具等。在线上环境部署私有Hadoop与Spark集群时,为了避免各个系统之间兼容性(比如HBase不同版本和Hadoop版本之间的兼容性)带来的麻烦,建议大家直接选用商业公司发行版。当然,我们在上课的时候会会给大家讲免费版本的简单使用。

 

 六.大数据体职位构建体系(职能概述)

1>.基础平台类(基础架构)

大数据基础平台共分为硬件平台和软件平台两大类别,硬件平台包括服务器,操作系统和网络维护等工作,主要由网络工程师负责;软件平台包括Hadoop运维,数据仓库管理,软件系统运维等工作,由Hadoop运维工程师,数据仓库管理员和系统管理员负责。

一.网络工程师
  网络工程师在计算机行业是一个非常“古老”的职业,主要目的是维护多台计算机及其外部设备,保证计算机在资源共享和信息告诉传递的稳定性。网络工程师主要是负责网络环境稳定运行,然后划分对应的IP地址给系统运维工程师,系统运维工程师根据网络工程师划分的IP地址,给对应的主机配置对应的IP地址。
  随着大数据技术,IPv6标准,物联网,移动互联网技术的快速发展,使得对于新型网络工程师的人才和技能要求也越来越多,也因此而细分出多个发展方向,对相应的技能要求的侧重点也不同,例如网络安全类,数据存储类,架构设计类,移动网络类,网络效率类。

二.Hadoop运维工程师(大数据运维工程师)
  作为大数据产业下的一个新型职位,Hadoop运维工程师是大数据系统稳定运行最重要的保障,其主要职责是维护高性能的Hadoop分布式数据存储系统,并为业务系统提供稳定的数据访问服务,开发新接口和维护原有系统。
  由于Hadoop技术生态组件绝大部分是由Java语言实现并且基于Linux操作系统运行的,对于该职位来说,你需要关注以下几点:
    (1)对Map/Reduce运行机制,Hadoop集群的硬件资源(CPU,内存,存储)配置与管理,Hadoop各组件(如HDFS,Hive,HBase,Impala等)的运行原理,集群组件监控,集群节点故障解决方案等;
    (2)需要懂得如何保障数据安全,数据存储效率,计算效率,运维效率的优化与提高等;
    (3)如果觉得Hadoop集群性能差时,绝大部分上责任是运维工程师对Hadoop了解太少,Hadoop的效率没有被发挥出来(要知道运维是背锅侠的名称可不是闹着玩的,哈哈哈~);
    (4)当然,如果你精通Java编程和Linux操作系统的话,对该职位无疑是加分享哟。

三.数据库运维工程师
  数据库运维工程师在公司发展的不同阶段有着不同的职责与定位。工作内容包括负责数据库的运营和维护,包括数据库的安装,监控,备份,回复等工作。工作内容包括负责数据库的运营和维护,包括数据库的安装,监控,备份,恢复等基本工作,并需要覆盖产品从需求设计,测试到交付上线的整个生命周期,在此过程中不仅要负责数据库管理系统搭建和运维,更要参与前期的数据库设计,中期的数据库测试和后期的数据库容量管理和性能优化。

四.系统运维工程师
  和企业传统的系统运维工程师一样,大数据系统运维工程师需要维护所有业务系统的功能运行,并检测系统的所有功能是否正常,维持系统现状,协助解决新的的现有的系统问题形成系统运维自动化流程。由于大数据生态体系的技术组件更新升级频率非常快,且新技术发展异常迅速,要求所有大数据系统运维工程师必须拥有非常高的行业知识更新和学习能力。

2>.技术研发类

技术研发类岗位是值针对大数据相关系统,软件,产品和功能进行的开发,而非IT系统的开发。由于大数据类的开发是一个相对完整的工作链,并且具有特殊应用需求和场景特征,因此涵盖了几乎与IT系统相同的职能岗位。技术研发类包括大数据架构师,数据仓库架构师,大数据开发工程师,数据采集工程师,数据仓库开发工程师,系统开发工程师,算法开发工程师。

一.大数据架构师
  作为大数据技术平台成功落地的重要保障,大数据架构师在大数据技术发展指出就已经奠定了必不可少的角色基础,该职位主要负责Hadoop技术解决方案的整个生命周期的确定并进行引导,包括:大数据需求分析,平台选择,技术架构设计,应用设计的开发,应用测试和部署等大数据实施全流程的跟踪,并在实施过程中带领技术团队,为设计和开发大规模集群的数据处理系统提供技术和管理。
  由于该角色的重要性,通常情况下该职位应该拥有重点院校(985211)计算机相关专业的硕士及以上学历且至少5年以上Java编程经验,精通Java原理和Hadoop,Hive,HBase,Impala,Spark等大数据技术生态体系,熟悉常用的数据挖掘算法,如逻辑回归,决策树,关联规则,序列模式,实现序列,SVM,贝叶斯,聚类等,以便更好的架构方案选型。除以上技术要求外,该岗位聚焦与互联网涉及的各领域平台设计架构,可能回涉及到电商平台,虚拟化,云计算,数据分析等。

二.数据仓库架构师
  数据仓库的开发和管理在大数据时代显得尤为重要,相关的数据库管理,运维和开发技术,将成为广大BI,大型企业和咨询分析机构特别看中的技能体现。而之前一般企业中的数据仓库架构师都由数据部门开发经理兼任,同时数据仓库团队工作内容比较纯粹,所以该职位可视数据仓库量级和企业实际情况而定,有其他职位兼任或单独设立都可以。  

三.大数据开发工程师
  大数据相关的技术组件包括分布式存储(结构化和非结构化),缓存,查询,计算(实施与离线),监控与管理,资源调度等,为了保障各技术开发的专业性,一般以开发工作的内容进行划分:Hadoop开发工程师(离线计算),实时计算工程师,数据处理工程师,文本挖掘工程师(非结构化数据处理)等

四.数据采集工程师
  数据采集工程师的主要职责是收集和处理海量数据原始数据,工作内容包括:脚本便携,网页获取,调用APIS,便携SQL查询等。

五.数据仓库开发工程师
  传统数据仓库开发团队在企业技术岗位中属于不太容易看到“效果”的团队之一,而且所需要的人数都不太多。但是在进入大数据时代,代表着更多类型(尤其是非结构化类型)的海量数据不断涌现,客观上要求对数据进行实时采集,分析和传输,这就对基础设施性能提出类严峻挑战,尤其是对运维管理数据仓库开发和管理人员提出了更高的要求。  

六.系统开发工程师
  大数据系统按应用类型分为数据可视化类和数据应用类。
  可视化类系统包括:
    商业智能,数据监测,舆情监测,用户画像等,该类系统一般使用前段技术可视化组件开发,要求工程师精通javaScript,Ajax/JQuery,HTML,CSS等Web前段技术,以及数据可视化技能和工具,例如D3,Echarts,HighCharts,Tableau,Supperset等。熟悉各个主流浏览器(IE/Chrome/Firefox/Safari)兼容性问题解决方案和Oracle,MySQL,MangoDB,Hive,HBase等数据查询能力,另外还需了解各种调试,抓包工具如HTML类,CSS类,Debug类等。
  数据应用类系统包括:
    互联网广告精准投放(DSP),精准营销系统,征信/风控系统,个性化推荐系统,大数据平管理平台(DMP)。该类系统除了回使用前端技术和可视化组件外,还需要结合大数据分布式算法,高并发查询,负载均衡等技术,更侧重Redis,Nginx,MQ,Zookeeper,Hadoop等技术。熟悉TCP/IP协议和多线程并发技术,同时也要兼具可视化系统开发所应用到的Web前段技术,数据可视化,浏览器兼容等。

七.算法开发工程师
  算法开发工程师之前一直是一个比较“冷门”且“高深”的岗位,随着大数据应用越来越广泛,使得算法模型在企业大数据应用中越来越广泛。由于每个行业的特性不同,数据模型在跨行业应用时可复用度不高。比如,金融行业应用数据模型进行金融产品的风险控制和反欺诈,建立并优化风险政策。电商及快消行业则应用数据模型进行用户价值评分,偏好预测,商品关联销售和个性化精准推荐。但不管是什么行业,用到的算法是相通的(例如逻辑回归,SVM,神经网络,决策树,贝叶斯等)。
  大数据环境下的数据建模开发工程师,除了要求精通传统建模工具SPSS/Modeler之外,还要精通R,Python,Hadoop,MLib,Mahout等开发组件,了解大数据分析处理(HDFS,MapReduce,HBase,Hive,Pig)等技术内部机制,熟悉Linux系统,熟练使用Shell/Perl/Python脚本。

3>.数据管理类

数据管理类岗位中的管理针对的对象是数据,而非职能岗位中的管理角色。数据管理类岗位包括首席数据官,数据管理员和数据安全工程师。

一.首席数据官
  随着大数据的不断发展,企业对于数据的依赖也越来越强,当企业内部的数据类型和数据用途越来越多时,需要一个“数据管理者”从数据全场景和流程方面进行整体规划和管理,一个大数据新的工作岗位应运而生,即首席数据官(CDO)。
  该职位的职责包括:与数据所有者和数据管理员共同为内部和外部创建数据管理策略并且实现数据的准确性和制定工作流程的需求目标,定义大数据战略,设计多阶实施路线图。建立数据管理策略及标准,创建并领导数据管理团队,监管组织类的数据质量工作,配合CIO/CTO和IT部门协调管理和完善数据管理策略的实施,并负责企业信息数据管理的预算和数据相关系统的审核。

二.数据管理员
  对于一般公司来说,数据管理员的工作可能由数据库运维工程师来兼任,从部署操作系统,到数据库安装,设计和部署监控,放置漏洞和攻击,主数据管理,权限管理与审核等,而大数据环境下对数据管理员工作的技能要求更加精细。

三.数据安全管控师
  数据安全是互联网行业中一个永恒的话题,无论是对于单位还是个人,数据安全是至关重要的,如果数据不慎丢失或者泄漏,都会造成重大影响。

4>.数据挖掘类

  数据挖掘类岗位通常是一系列岗位的通常,因为不同公司对该职位的定义和内涵界定不同,而三个月挖掘由于是侧重与应用的岗位,因此通常是围绕某一业务或技术主体进行定义,例如会员数据挖掘,销售数据挖掘,营销数据挖掘等。

5>.数据分析类

  数据分析岗位包含各种各样的非“技术”类岗位,例如战略分析师,数据分析师,网站分析师,用户研究员,商业智能分析员等,这些岗位通常都具有特定的分析应用场景,因此大多数以应用场景来定岗定责

一.战略分析师
  战略分析师在很多公司被成为市场分析师,这是一个“高大上”的岗位,它的核心是提高行业对竞争对手的认知,增加公司决策层的战略支持。

二.数据分析师
  数据分析是一类职位的统称,通常数据分析师会定位于解决某一类问题而带有业务主体特征,例如营销分析师,会员分析师,运营分析师,商品分析师等。

三.网站分析师
  网站分析师是数据分析类中一个较为特殊的职位分类,从工作体形态看,除服务器需要IT部门配合进行相应配置,调试和部署外,网站分析师几乎可以独立完成从数据采集,存储,计算,分析到数据应用的完整流程。网站分析师的工作主体和对象是网站为主的业务主体,包含营销部门,网站运营部门,用户体验部分等。

四.用户研究员
  用户研究员是公司针对用户研究的岗位。主要负责是通过研究方法来提升用户满意度,降低用户流失并提升用户生命周期价值等。

五.商业智能分析员
  商业智能分析员也叫BI分析师,是借助或依托于BI系统进行数据分析的岗位。该岗位通常是在企业内部已经建立起BI体系并搭建BI系统的前提下产生。

6>.产品设计类

  项目产品类岗位通常是每个公司不可获取的岗位,这些岗位是有计划开发数据工作的基本前提,通常决定了一个产品或项目未来的方向和具体实施的概念定义。而项目产品类泛指数据项目工作的前段职位,含项目经理,产品经理,UI,UE等。

一.项目经理
  项目经理的职能核心是项目宏观管理者和协调者,也是项目实际的总策划人和负责人。

二.产品经理
  产品经理是微观曾面落实具体项目需求的关键推动者,也是辅助项目奖励进行项目把控的关键,但从职能角度来看通常不具有实权,因此数据典型的“有义务,无权利”的职位。

三.UI
  UI也成为视觉设计师,主要工作侧重于视觉效果展示,产品察觉效果的好坏主要取决于UI的审美水平和输出能力。熟练使用视觉设计工具如:Photoshop,Illustrator,CorelDRWA是必备技能。

四.UE
  UE也称为交互设计师,主要侧重于交互设计效果。很多公司将UI和UE合并到一个岗位职责,总体负责产品的平面和交互设计效果。

 

 


posted @ 2019-06-12 21:57  尹正杰  阅读(1792)  评论(0编辑  收藏  举报