首页 游戏 资讯 关注 科技 财经 汽车 房产 图片 视频

数据

旗下栏目: 业内 数据 数码 手机

企业大数据工作的任务、工具及挑战

来源:网络整理 作者:安庆新闻网 人气: 发布时间:2018-05-17
摘要:随着互联网、移动互联网和物联网的广泛而深入地应用,人类活动的踪迹加快在网络空间的映射,网络浏览、行车轨迹、物等等均留下数据记录。

推荐相关文章:

基于Hadoop的大数据平台实施大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星。我们暂不去讨论大数据到底是否适用于您的公司或组织,至少在互联网上已经被吹嘘成无所

大数据与个人隐私,相知莫如仅美国西部时间周二到周三,Facebook创始人兼CEO马克·扎克伯格在在美国众议院能源和商务委员会面前,面对 44 位议员的质询,接受连续两天长达 10 小时的轮番盘问

  随着互联网、移动互联网和物联网的广泛而深入地应用,人类活动的踪迹加快在网络空间的映射,网络浏览、行车轨迹、物等等均留下数据记录。目前,全球数据呈现爆发式增长态势,人类社会迈入大数据时代;全球每18个月新增数据量是人类有史以来全部数据量的总和。大数据的核心是数据,与大小无关,数据已经成为战略资产。数据是人类活动在网络空间的映射,蕴含人类生产、生活的规律,挖掘数据潜在价值,对国家治理、社会管理、企业决策和个人生活影响深远。世界经济论坛的报告认为大数据为新财富,价值堪比石油;商业版图由此被重新划定,通晓如何利用这些数据的企业将成为最强者。

\


  0. 澄清基本概念

  为了不在后面讨论中因概念不清产生误解,我们首先给出几个定义:

  大型IT企业:指对外提供IT相关的软硬件产品及服务的公司,员工至少在万人以上。

  数据平台:指大型IT企业用来为自身服务为主,担负数据存储、处理、分析业务和软硬件综合。主要针对内部服务,不对外开发。

  数据分析:此处的数据分析师广义的,包括一切基于数据得出的insights的行为,包括统计分析、机器学习建模和预测等。

  1. 大型IT企业开展对内数据业务的驱动力

  就目前而言,IT企业针对自身的数据分析业务可以分为广告和非广告两类。对大多数企业而言,除了广告之外的数据业务,并不能直接带来可以量化的收入。但是,无论当前数据分析的结果为企业的现金流做了多少贡献。数据为王的思想已然占据了众多前沿企业间的头脑。数据是矿山,insights是金子,有了矿山才能有金子,有了矿山,终究会有金子。

  因此,开发数据业务最主要的驱动力,实际是对数据业务未来前景的积极预估。

  主要应用有(除广告之外):

  用户画像——越来越多的企业开始观众用户画像,毕竟知己知彼百战不殆,卖东西先得了解买主。

  客户保持——预测哪些现有客户可能弃用产品或服务,即使采取措施挽留之。

  产品使用分析——DAU,MAU,PV,UV,CTR等等,这些看起来都是些简单的统计数字,但却是反应产品被使用情况的重要指标。

  产品推荐、销量预测

  销售指标……等等

\


  具体到某一种应用,看似并不复杂,有些有成熟的方法可以用来训练模型,还有些根本就是统计指标。似乎并不需要什么高深的算法背景。但一旦涉及实际,就不像看起来那么简单了。即使是统计指标,也不像想象得那样,随便run几个sql query就能得出来。

  对于大型分布式系统,不同模块的访问log都有可能分布在不同的cluster上,单纯收集每日全局log就是一个复杂工作,更别说之后的合并、去重、聚合等工作

  因此,大型企业的数据分析不是做个excel表,安装一个免费mysql能够解决的,而是需要专门的大型数据分析平台。

  2. 数据分析平台通用架构

  常见的数据分析平台,至少包括数据存储、处理和分析三个部分。

\


  2.1 数据存储

  数据存储不必解释,是一定必要的。但是如何备份是一个很重要的问题。 假设:某公司一年产生上千PB的数据。按照单纯数据的存储费用1美元/GB年计算,存1TB一年就是1000美元,一PB就是100万,1000PB就是10亿。如果就是简单的使用hadoop的默认配置,每份数据都存3份,那么,这个实际产生数据x 3的体量将有多大?有将有多大的cost?

  这是存储层的挑战。为了解决这个问题,一方面从硬件层面力图降低存储介质的价格,比如近年来冷存储的提出,就是针对运维费用。另一方面就是寻找备份算法。例如,yahoo专门研发了一种图片存储算法,逻辑上是11个备份,但是size只有原size的1.x倍。

\


  2.2 数据处理

  数据处理传统上叫ETL、EDW,主要指数据的清洗、迁移和格式化。大数据平台,由于应用范畴不同,自然多种多样,源数据包括结构化数据和非结构化数据。但是如果数据真的是“大数据”(符合4V特征)的话,即使本身收集上来的数据是结构化的,也往往需要二次处理,转换format或schema。

  数据处理层所需技术相对简单,然而挑战在于对于数据的理解。如果不知道这个收集上来的log文件里面要提取出多少字段,每个字段对应数据源中的哪个部分,则数据提取完全不能进行。这就要求进行数据处理的人必须同时具备对业务的了解。

\


  2.3 数据分析

  数据分析是数据中寻找价值的关键步骤。数据分析工作本身还处于初级阶段。除了一些简单的统计计算,大多数数据还是只能交给分析人员,进行没有特别针对性的探索,效果难以得到保证。

  对于这些挑战,开展数据业务早的公司,相应的平台和技术是在针对自身业务的过程中慢慢发展起来,部分公司选择是将平台外包或者自己开发针对自身业务的定制功能。相对于前两者,数据分析师一个业务针对性更强的步骤,因此更难采用通用方法或手段解决,更加依赖企业自身的积累。

\


  3. 数据分析平台开源框架

  3.1 开源框架


  目前,就国内而言,谈到数据分析相关的开源框架,总不能忽略下面三个:

  hadoop:batch,mapReduce

\


  storm:streaming

\


  spark:batch + streaming

\


  这些开源框架的共同特点是把重点放在并行计算框架上,关注的是job latency, load balance和fault recovery,对于资源分配、用户管理和权限控制几乎不考虑。它们基于的假设是:所有用户都一样,平权,所有用户都能用所有的机器以最快的可能完成所有工作。

  3.2 开源框架的局限

  而在大型企业内部,不同部门,同一部门的不同job,绝对不是平权的。不同部门之间,也有很多私密的数据,不让别人访问。不同用户的权限也是不一样的。对于计算资源的需求,因为不同job的优先级不同,,也要求予以区别。在这种需求之下,催生了一些第三方,专门提供hadoop等开源框架的资源、权限管理产品或者服务。hadoop在升级到2以后,也考虑一些数据隔离的问题。但其力度,恐怕难以满足大多数大型企业的要求。这也是使用开源框架的无奈。使用开源产品的商业发行版,也是一种办法。不过始终是不如企业原生系统在这方面的支持。

\


  3.3 企业原生框架

  确实也有些企业独立开发了全自主(不基于开源产品)的仅限于内部使用的分布式数据处理平台。在用户管理,数据访问权限,存储、运算资源管理等方面很下功夫。

  例如:要求每个用户在提交job前必须先申请token,有多少token,就有多少计算量。不同数据存储路径之间的权限完全单独管理,使用者也要实现申请权限。

  但是开发这样的系统意味着企业必须具备非常强大的研发能力,并能承担得起巨大的人力等资源的消耗。而且相对于开源系统已经实现的功能,难免有重复造轮子之嫌,即使是大型企业,也很少选取这种方案。

  4. 大型IT企业数据业务的挑战

  4.1 通用挑战:意识、技术和人才

  4.1.1 意识


  意识主要是指决策层的思想意识——数据对于企业发展是否真的必要?这一点在很多管理者脑子里还是存疑的,他们目前所处状态很多是:听说数据这东西有用,人家都在搞,所以我们也要搞,至于是不是真有用,搞出来看看再说。如果只是采用游戏或者试探态度,必然影响发展进程。但这也是没办法的事情,所有新事物都必须经历这一过程。

\


  4.1.2 技术


  技术指目前数据分析的技术,基本是采用新框架逆流支持旧接口的策略。曾经有一篇文章,名叫《NoSQL?NO,SQL》,说的就是这个。包括spark回头支持SQL,也是如此。明明我们分析的是非结构化数据,但是因为高阶算法的问题,却连mapReduce都放弃了,索性回到SQL时代。为了让更多人用的舒服,不去开发针对非结构化数据的新方法,而是反过来,向下兼容结构化。个人认为这是一种逆流。这样做则永远无法避免巨大的数据处理工作。

  4.1.3 人才

  “数据科学家”这个词大家肯定都知道。可是,这个职位其实很模糊,不同公司,甚至同一公司的不同部门之间对这一职位的定义相差甚远。有些数据科学家是学数学的博士,有些是以前做BI的,有些是PM转行的,水平参差不齐。所以,恐怕在相当长的时期里,这会是一个门槛低,要求高的职位。很难短时间内批量涌现出优秀者。

  4.2 特有挑战:产品align

  产品align是说每个产品的数据分析结果可以互相对比,也就是要求其定义和实现都一致。对于一个产品众多的大企业而言,要求不同产品、流水线的分析报告具有可比性,这是一个很常见的需求。但是由于现在大多数企业中数据分析不是由一个部门统一管理,各个产品部门各自为战,结果导致在align的过程中互相牵制,进而拉低了所有产品的分析水平。这样的挑战有赖于企业总体数据策略的制定和执行。而整体策略的制定和执行又有赖于前面所说的三点通用挑战,环环相扣,显然不能一蹴而就。

  5. 大企业数据工作的发展趋势

  早期的数据分析工作,在实践层面基本采用批处理模式。随着业务的发展,对于其实时或者准实时(NRT)的需求越来越多。提供latency极短的增量分析和流式服务是众多企业数据分析工作的当务之急。

  从长远考虑,真正拥有数据的是大企业,未来,大企业在数据的分析利用上,也必将全面胜出小企业。不过,处于不同成熟阶段的大公司突破点各不同。有些技术先行,在分析方法和工具上成为领军。另一些则倾向数据管理和治理,在管理层面上,在策略、条例的制定上为整个社会提供先进经验。

责编:zhangxuefeng

基于Hadoop的大数据平台实施

  大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星。我们暂不去讨论大数据到底是否适用于您的公司或组织,至少在互联网上已经被吹嘘成无所不能的超级战舰。好像一夜之间我们就从互联网时代跳跃进了大数据时代!关于到底什么是大数据,说真的,到目前为止就和云计算一样,让我总觉得像是在看电影《云图》——云里雾里的感觉。或许那些正在向你推销大数据产品的公司会对您描绘一幅乌托邦似的美丽画面,但是您至少要保持清醒的头脑,认真仔细的慎问一下自己,我们公司真的需要大数据吗?

  做为一家第三方支付公司,数据的确是公司最最重要的核心资产。由于公司成立不久,随着业务的迅速发展,交易数据呈几何级增加,随之而来的是系统的不堪重负。业务部门、领导、甚至是集团老总整天嚷嚷的要报表、要分析、要提升竞争力。而研发部门能做的唯一事情就是执行一条一条复杂到自己都难以想象的SQL语句,紧接着系统开始罢工,内存溢出,宕机........简直就是噩梦。OMG!please release me!!!

  其实数据部门的压力可以说是常人难以想象的,为了把所有离散的数据汇总成有价值的报告,可能会需要几个星期的时间或是更长。这显然和业务部门要求的快速响应理念是格格不入的。俗话说,工欲善其事,必先利其器。我们也该鸟枪换炮了......。

  网上有一大堆文章描述着大数据的种种好处,也有一大群人不厌其烦的说着自己对大数据的种种体验,不过我想问一句,到底有多少人多少组织真的在做大数据?实际的效果又如何?真的给公司带来价值了?是否可以将价值量化?关于这些问题,好像没看到有多少评论会涉及,可能是大数据太新了(其实底层的概念并非新事物,老酒装新瓶罢了),以至于人们还沉浸在各种美妙的YY中。

  做为一名严谨的技术人员,在经过短暂盲目的崇拜之后,应该快速的进入落地应用的研究中,这也是踩着“云彩”的架构师和骑着自行车的架构师的本质区别。说了一些牢骚话,当做发泄也好,,博眼球也好,总之,我想表达的其实很简单:不要被新事物所迷惑,也不要盲目的崇拜任何一样新事物,更不要人云亦云,这是我们做研究的人绝对要不得。

  说了很多也是时候进入正题了。公司高层决定,正式在集团范围内实施大数据平台(还特地邀请了一些社区的高手,很期待.......),做为第三方支付公司实施大数据平台也无可厚非,因此也积极的参与到这个项目中来。正好之前关于OSGi的企业级框架的研究也告一段落,所以想利用CSDN这个平台将这次大数据平台实施过程记录下来。我想一定能为其它有类似想法的个人或公司提供很好的参考资料!

  第一记,大数据平台的整体架构设计

  1. 软件架构设计


\


  大数据平台架构设计沿袭了分层设计的思想,将平台所需提供的服务按照功能划分成不同的模块层次,每一模块层次只与上层或下层的模块层次进行交互(通过层次边界的接口),避免跨层的交互,这种设计的好处是:各功能模块的内部是高内聚的,而模块与模块之间是松耦合的。这种架构有利于实现平台的高可靠性,高扩展性以及易维护性。比如,当我们需要扩容Hadoop集群时,只需要在基础设施层添加一台新的Hadoop节点服务器即可,而对其他模块层无需做任何的变动,且对用户也是完全透明的。

  整个大数据平台按其职能划分为五个模块层次,从下到上依次为:

  运行环境层:

  运行环境层为基础设施层提供运行时环境,它由2部分构成,即操作系统和运行时环境。

  (1)操作系统我们推荐安装REHL5.0以上版本(64位)。此外为了提高磁盘的IO吞吐量,避免安装RAID驱动,而是将分布式文件系统的数据目录分布在不同的磁盘分区上,以此提高磁盘的IO性能。

  (2)运行时环境的具体要求如下表:

  名称版本说明

  JDK1.6或以上版本Hadoop需要Java运行时环境,必须安装JDK。

  gcc/g++3.x或以上版本当使用Hadoop Pipes运行MapReduce任务时,需要gcc编译器,可选。

  python2.x或以上版本当使用Hadoop Streaming运行MapReduce任务时,需要python运行时,可选。

  基础设施层:

  基础设施层由2部分组成:Zookeeper集群和Hadoop集群。它为基础平台层提供基础设施服务,比如命名服务、分布式文件系统、MapReduce等。

  (1)ZooKeeper集群用于命名映射,做为Hadoop集群的命名服务器,基础平台层的任务调度控制台可以通过命名服务器访问Hadoop集群中的NameNode,同时具备failover的功能。

  (2)Hadoop集群是大数据平台的核心,是基础平台层的基础设施。它提供了HDFS、MapReduce、JobTracker和TaskTracker等服务。目前我们采用双主节点模式,以此避免Hadoop集群的单点故障问题。

  基础平台层:

  基础平台层由3个部分组成:任务调度控制台、HBase和Hive。它为用户网关层提供基础服务调用接口。

  (1)任务调度控制台是MapReduce任务的调度中心,分配各种任务执行的顺序和优先级。用户通过调度控制台提交作业任务,并通过用户网关层的Hadoop客户端返回其任务执行的结果。其具体执行步骤如下:

  任务调度控制台接收到用户提交的作业后,匹配其调度算法;

  请求ZooKeeper返回可用的Hadoop集群的JobTracker节点地址;

  提交MapReduce作业任务;

  轮询作业任务是否完成;

  如果作业完成发送消息并调用回调函数;

  继续执行下一个作业任务。

  作为一个完善的Hadoop集群实现,任务调度控制台尽量自己开发实现,这样灵活性和控制力会更加的强。

  (2)HBase是基于Hadoop的列数据库,为用户提供基于表的数据访问服务。

  (3)Hive是在Hadoop上的一个查询服务,用户通过用户网关层的Hive客户端提交类SQL的查询请求,并通过客户端的UI查看返回的查询结果,该接口可提供数据部门准即时的数据查询统计服务。

  用户网关层:

  用户网关层用于为终端客户提供个性化的调用接口以及用户的身份认证,是用户唯一可见的大数据平台操作入口。终端用户只有通过用户网关层提供的接口才可以与大数据平台进行交互。目前网关层提供了3个个性化调用接口:

  (1)Hadoop客户端是用户提交MapReduce作业的入口,并可从其UI界面查看返回的处理结果。

  (2)Hive客户端是用户提交HQL查询服务的入口,并可从其UI界面查看查询结果。

  (3)Sqoop是关系型数据库与HBase或Hive交互数据的接口。可以将关系型数据库中的数据按照要求导入到HBase或Hive中,以提供用户可通过HQL进行查询。同时HBase或Hive或HDFS也可以将数据导回到关系型数据库中,以便其他的分析系统进行进一步的数据分析。

  用户网关层可以根据实际的需求无限的扩展,以满足不同用户的需求。

  客户应用层:

  客户应用层是各种不同的终端应用程序,可以包括:各种关系型数据库,报表,交易行为分析,对账单,清结算等。

  目前我能想到的可以落地到大数据平台的应用有:

  行为分析:将交易数据从关系型数据库导入到Hadoop集群中,然后根据数据挖掘算法编写MapReduce作业任务并提交到JobTracker中进行分布式计算,然后将其计算结果放入Hive中。终端用户通过Hive客户端提交HQL查询统计分析的结果。

  对账单:将交易数据从关系型数据库导入到Hadoop集群,然后根据业务规则编写MapReduce作业任务并提交到JobTracker中进行分布式计算,终端用户通过Hadoop客户端提取对账单结果文件(Hadoop本身也是一个分布式文件系统,具备通常的文件存取能力)。

  清结算:将银联文件导入HDFS中,然后将之前从关系型数据库中导入的POSP交易数据进行MapReduce计算(即对账操作),然后将计算结果连接到另外一个MapReduce作业中进行费率及分润的计算(即结算操作),最后将计算结果导回到关系型数据库中由用户触发商户划款(即划款操作)。

  部署架构设计

\


  关键点说明:

  目前整个Hadoop集群均放置在银联机房中。

  Hadoop集群中有2个Master节点和5个Slave节点,2个Master节点互为备份通过ZooKeeper可实现failover功能。每个Master节点共享所有的Slave节点,保证分布式文件系统的备份存在于所有的DataNode节点之中。Hadoop集群中的所有主机必须使用同一网段并放置在同一机架上,以此保证集群的IO性能。

  ZooKeeper集群至少配置2台主机,以避免命名服务的单节点故障。通过ZooKeeper我们可以不再需要F5做负载均衡,直接由任务调度控制台通过ZK实现Hadoop名称节点的负载均衡访问。

  所有服务器之间必须配置为无密钥SSH访问。

  外部或内部用户均需要通过网关才能访问Hadoop集群,网关在经过一些身份认证之后才能提供服务,以此保证Hadoop集群的访问安全。

责编:zhangxuefeng


责任编辑:安庆新闻网
首页 | 游戏 | 资讯 | 关注 | 科技 | 财经 | 汽车 | 房产 | 图片 | 视频

Power by pk10 安庆新闻网 www.yyjyw.net 安徽省安庆第一新闻门户网站---安庆新闻网 pk10开奖直播 版权所有

电脑版 | 移动版