- ?
回顾·大数据平台从0到1之后
Sandy
展开
本文根据链家赵国贤老师在DataFun Talk数据架构系列活动“海量数据下数据引擎的选择及应用”中所分享的《大数据平台架构从0到1之后》编辑整理而成,在未改变原意的基础上稍做修改。
大数据平台构建方法大同小异,但是平台构建以后也面临很多挑战,在面临这些挑战我们如何去克服、修复它,让平台更好满足用户需求,这就是本次主题的重点。下面是本次分享的内容章节,首先讲一下架构1.0与2.0,两者分别是怎么样的,从1.0到2.0遇到了哪些问题;第二部分讲一下数据平台,都有哪些数据平台,这些数据平台都解决什么问题;第三个介绍下当前比较重要的项目“olap引擎的选型与效果”以及遇到的一些问题;第四个简单讲一下在透明压缩方面的研究。
架构1.0阶段,底层是Hadoop,用来存储数据和分析数据。需要把log数据和事务数据传输到Hadoop平台上,我们使用的是kafka和sqoop进行数据传输。然后在Hadoop平台基础上,通过一个开源的Hive和oozie做一个调度,开发者写Hql来完成业务需求,然后将数据mysql集群或redis集群,上层承接的是一个报表系统。这个需求基本跑了一年,也解决了一些问题。但存在的问题有:(1)架构简单,不易解耦,结合太紧密出现问题需要从底层一直查到上面;(2)平台架构是需求驱动,面临一个需求后需要两周时间来解决问题,有时开发出来运营已经不需要;(3)将大数据工程师做成一个取数工程师,大量时间在获取怎样数据;(4)故障频发,比如Hql跑失败了或者网络延迟没成功,oozie是通过xml配置发布任务,我们解决需要从数据仓库最底层跑到数据仓库最高层,还要重刷msl,花费时间。
面对这些问题我们做了一次架构调整,数据平台分为三层,第一层就是集群层(Cluster),主要是一些开源产品,Hadoop实现分布式存储,资源调度Yarn,计算引擎MapReduce、spark、Presto等,在这些基础上构建数据仓库Hive。还有一些分布式实时数据库HBase还有oozie、sqoop等,这些作用就是做数据存储、计算和调度,另外还有一个数据安全。第二层就是工具链,这一层是一个自研发调度平台,架构1.0用的oozie。基本满足需求有调度分发,监控报警,还有智能调度、依赖触发,后续会详细介绍。出问题后会有一个依赖关系可视化,数据出问题可以很快定位与修复。然后就是Meta(元数据管理平台),数据仓库目前有3万多张表,通过元数据管理平台实现数据仓库数据可视化。还有一个AdHoc,将数据仓库中的表暴露出去,通过平台需求方就可以自主查找自己需要的数据,我只需要优化查询引擎、记录维护、权限控制、限速和分流。最上层将整个大数据的数据抽象为API,分为三个,面向大数据内部的API,面向公司业务API,通用API。大数据内部API可以满足数据平台一些需求,如可视化平台、数据管理平台等,里面有专有API来管理这些API。面向公司业务API,我们是为业务服务的,通过我们的技术让业务产生更多产出,将用户需要的数据API化,通过API获取数据就行。通用API,数据仓库内部的报表都产生一些API,业务需求方根据自己的需求自动组装就OK了。架构2.0基本解决了我们架构1.0解决的问题。
第二部分就简单介绍下平台,第一个是存储层-集群层,解决运维工作,我们基于开源做了一个presto。实习人员经过一两周能适应这个工作,释放了运维的压力,数据量目前有18PB,每天的任务有9万+,平均3-4任务/分钟;第二个就是元数据管理平台,这种表抽象为各个层,分析数据、基础细节数据等抽象,提供一个类似百度的搜索框,通过搜索获得所需数据,这样业务人员能够非常方便的使用我们的数据。它能实现数据地图(数据长怎样,关联关系是怎么样都可以显示出来),数据仓库可视化,管理运维数据,数据资产非常好的管理和运维,将数据开发的工作便捷化、简易化。
第三个数据平台调度系统,数据仓库中的各个层需要流转,数据出现问题后如何去恢复数据。数据调度系统主要的工作有:(1)数据流转调度,可以非常简易的配置出数据的流转调度。(2)依赖触发,充分利用资源,能够让调度任务非常紧凑,能够尽可能快的产出我们的数据。(3)对接多个数据源,需要将多种多样的数据源集成到数据仓库中,如何将sql server数据、Oracle数据等数据导入到数据仓库中,系统能够对接多种数据源,因此我们财务人员、运营人员、业务人员都可以自主将数据接入到数据仓库,然后分析和调度。(4)依赖关系可视化。比如我们有100个任务是关联的,最底层std层有50个任务,中间层有20个任务,如果中间ODS层出问题了,会影响上层依赖层任务,通过可视化就能很方便定位。
除了前面三个平台,还需要一个平台来展示我们的数据,才能向我们的用户显示数据的价值。我们的指标平台支持上卷下钻、多维分析、自助配置报表,统一公司的各个指标。说一下统一公司的各个指标,比如链家场景,比如说一个业绩(一周卖出十套房子,需要提佣),16年我们发现有多个口径,因此通过指标系统将指标统一化,指标都从这里出,可以去做自己的可视化。还有各种财务人员、区长或店长也可以自主从指标平台上配置自己的数据,做自己的desktop,指标系统的后端使用后续讲Kylin的一个多维分析引擎支撑的。
指标平台架构,一个应用的可视化平台肯定需要底层能力的支撑,这次主题也是数据引擎,链家使用的是一个叫kylin的开源数据引擎,可以把数据仓库中的数据通过集群调度写入到HBase中做一个预计算。这样就可以支持指标系统千亿级数据亚秒级的查询,不支持明细查询因为做过预计算。还引入了百度开源的palo,经过优化,通过这样一个架构就满足上层的地动仪、指标平台和权限系统。运营、市场、老板都在用这个指标平台,能够实现多维分析、sql查询接口、超大规模数据集、释放数据的能力以及数据可视化。
我们是需求驱动,每天都会遇到很多需求,数据开发人员就是取出需要的数据。利用adhoc平台将数据从数据仓库中取出,基于这个我们做了一个智能搜索引擎,架构在adhoc上的搜索引擎有很多,比如presto、hive、spark等。用户也不知道该选择那种引擎,他的需求就是尽可能取出自己所需的数据,因此开发智能选择引擎、权限控制,并且能够支撑各种接口、自助查询,这样就基本解决了数据开发的工作。我们自研发了一个queryengine,在底层有presto、sparksql、hive等,queryengine特点就是能够发挥各自引擎的特性,如presto查询快,但是sql支撑能力不强,sparksql同样,在某些特殊sql查询不如hive快,hive就是稳但是慢。queryengine就是智能选择各种引擎,用户把sql提交过来,queryengine判断哪个引擎适合你。如何做的简单介绍下,对sql进行解析成使用的函数、使用的表、需要返回的字段结构,根据各个引擎的能力判断哪个合适。目前还在开发功能就是计费,因为资源是有限的。queryengine支持mysql协议,因为有些用户需要BI能力,需要对返回的数据进行聚合,我们不能开各种各样的BI能力,我们只需满足mysql协议将数据暴露出去,用户只需用其他BI就能使用。
通过架构1.0到架构2.0衍生出很多平台,大架构已经有了,但是遇到的一些问题如何解决。这里分享两个案例,一个是olap引擎的选型与效果,第二个就是为什么要做透明压缩,是如何做的。Rolap引擎基本是基于关系型数据库,基于关系模型实时进行聚合运算,主要通过传统数据库或spqrk sql和presto,spqrk sql和presto是根据数据实时计算;Molap是基于一个预定义模型,预先进行聚合计算,存储汇总结果。先计算好一个立方体,基于立方体做上传下钻,实现由Kylin/Druid,Druid主要是实时接入(Kylin没有),实时将kafka数据用Spark sql做一次计算然后将数据上传上去,可以支持秒级查询;还有一个比较流行的是叫olap,混合多引擎,不同场景路由到不同引擎。
Rolap查询时首先将数据扫描出来,然后进行聚合,通过聚合结果将多个节点数据整合到一个节点上然后返回。优势是支持任何sql查询,因为数据是硬算,使用明细数据,没有数据冗余,一致性非常好,缺点是大数据量或复杂数据量返回慢,因为你是基于明细数据,一条一条数据计算无论如何优化还是会出现瓶颈,并发性很差。
Molap中间会有一个中心立方体cube,在数据仓库通过预计算将数据存储到cube中,通过预聚合存储支持少量计算汇总,为什么少量计算,因为数据都已经预计算好了。优点就是支持超大数据集,快速返回并发高,缺点是不支持明细,需要预先定义维度和指标,适用场景就是能预知查询模式,并发有要求的场景,固化场景可以使用molap。
对于技术选型,当时面临的需求,基本上开源组件有很多,为什么选择kylin,因为支持较高的并发,面对百亿级数据能够支持亚秒级查询,以离线为主,具有一定的灵活性,最好有sql接口,而这些需求刚好kylin能满足。Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析能力,以支持超大规模数据,最初由e Bay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。其解决方案就是预先定义维度和指标,预计算cube,存储到hbase中,查询时解析sql路由到hbase中获取结果。
现在讲一下链家olap架构,HBase集群,数据仓库计算和预处理在这块,还有一个为了满足kylin需求而做的HBase集群。Kylin需要做预计算,因此有个build集群,将数据写入到基于kylin的Hadoop集群中,然后利用nginx做一个负载均衡,还有一个query集群,然后就是面向线上的一个查询,还有一个kylin中间件,解决查询、cube任务执行、数据管理、统计。指标平台大部分是查询kylin,但是kylin不能满足明细查询,这个就通过queryengine智能匹配,通过spark集群或presto集群,还有alluxio做压缩,然后将明细查询结果返回指标平台,最终返回其他业务的产品。在横向还做了一个权限管理、监控预警、元数据管理、调度系统,来实现整体平台支撑。
接下来讲一下链家kylin能力拓展,基本大同小异,遇到的问题主要有:分布式构建,cube增长很快,build集群无法承载,因此做了分布式优化能够满足500cube在规定时间跑完;优化构建时字典下载策略,kylin构建时需要将所有元数据字典全部下载下来,因此从Hadoop将元数据字典下载都得好几分钟,每次build都去下载元数据字典会很耗时,优化后只需要下载一次就可以;优化全局字典锁,build时需要锁住整个build集群,完成后锁才释放,源码发现并不需要全局锁只需要锁住所需要的字段就可以,优化将锁设置到字段级别上;Kylin 的query查询机器使用G1垃圾回收器。我们自研发了一个中间件基本可以容纳一个无限容量的队列,针对特定cube的预先调度,以及权限的管控、实现任务的并发控制。架构有外面的调度系统,有一个kylin中间件,所有的查询和build都经过kylin中间件。还做了一个任务队列、统计、优先级调度、监控报警、cube平分、以及可视化配置和展示。
架构从0到1.0遇到了另一个问题-集群,存储链家所有数据,数据量大、数据增长快(0-1PB两年时间,1PB-16PB不到一年时间,面临成本问题)、冷数据预期,针对这些问题提出透明压缩项目。就是分层存储(Hadoop特性),根据不同数据分不同级别存储,比如把一部分数据存储在ssd,把另一部分数据存储到磁盘之上。Hot策略将数据全部存储到磁盘之上,warm策略就是一部分数据存储在磁盘上,一部分存储archive(比较廉价,转数小)。第二个就是ZFS文件系统,它具有存储池、 自我修复功能、压缩与可变块大小、 写时拷贝/校验和/快照、 ARC(自适应内存缓存)与L2ARC(SSD做二级缓存)。
透明压缩设计实现思路是:(1)界定要做数据冷处理隔离的主要内容。需要将一部分数据存储到ZFS文件系统做一个透明压缩来满足减少成本的需求,这样需要把冷数据界定出来;(2)生成特定的通过获取特定的冷数据列表,并标记其冷数据率;然后,定期从冷数据表中取出为完成冷数据迁移的行,进行移动。通过HDFS目录把界定出来的冷数据移动到ZFS压缩之上,把不需要的移除到Ext4上。这样一部分数据存储在ZFS上,一部分存储在EXT4上。
透明压缩优化工作有:第一个Hadoop冷热数据分离优化。涉及有异构存储策略选择、HDFS冷热数据移动优化;第二个就是ZFS文件系统优化。ZFS支持很多压缩算法,经过测试发现Gz压缩效率最好,下图是各种算法效率对比。随着压缩数据越来越大,CPU占用越来越高。海量数据集群不光是存储还有计算。Datanode对压缩数据的加载时间,直接关系到访问此部分数据时的效率,从表可知,ZFS的gz压缩在datanode加载数据上对LZ4有部分优势。较为接近EXT4。综合考虑压缩率,读取,写入速度,datanode加载速度等,选定gz作为ZFS文件系统的压缩算法。
透明压缩前数据增长是非常快的,接近30%的增长速率,逻辑数据有3PB,3备份后总空间:9.3PB实际总空间:7PB,就目前简单预估节省成本有300万。压缩后虽然实际数据再增长,但真实数据是缓慢下降的。
透明压缩未来展望,透明压缩是对cpu是有损耗的,我们希望将透明压缩计算提取出来,通过QAT卡进行压缩,希望...
- ?
怎样搭建一个大数据分析平台?内附资料福利
梅维丝
展开
一般的大数据平台从平台搭建到数据分析大概包括以下几个步骤:
1、Linux系统安装
一般使用开源版的Redhat系统--CentOS作为底层平台。为了提供稳定的硬件基础,在给硬盘做RAID和挂载数据存储节点的时,需要按情况配置。比如,可以选择给HDFS的namenode做RAID2以提高其稳定性,将数据存储与操作系统分别放置在不同硬盘上,以确保操作系统的正常运行。
2、分布式计算平台/组件安装
当前分布式系统的大多使用的是Hadoop系列开源系统。Hadoop的核心是HDFS,一个分布式的文件系统。在其基础上常用的组件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等。
使用开源组件的优点:1)使用者众多,很多bug可以在网上找的答案(这往往是开发中最耗时的地方);2)开源组件一般免费,学习和维护相对方便;3)开源组件一般会持续更新;4)因为代码开源,如果出现bug可自由对源码作修改维护。
常用的分布式数据数据仓库有Hive、Hbase。Hive可以用SQL查询,Hbase可以快速读取行。外部数据库导入导出需要用到Sqoop。Sqoop将数据从Oracle、MySQL等传统数据库导入Hive或Hbase。Zookeeper是提供数据同步服务, Impala是对hive的一个补充,可以实现高效的SQL查询
3、数据导入
前面提到,数据导入的工具是Sqoop。它可以将数据从文件或者传统数据库导入到分布式平台。
4、数据分析
数据分析一般包括两个阶段:数据预处理和数据建模分析。
数据预处理是为后面的建模分析做准备,主要工作时从海量数据中提取可用特征,建立大宽表。这个过程可能会用到Hive SQL,Spark QL和Impala。
数据建模分析是针对预处理提取的特征/数据建模,得到想要的结果。如前面所提到的,这一块最好用的是Spark。常用的机器学习算法,如朴素贝叶斯、逻辑回归、决策树、神经网络、TFIDF、协同过滤等,都已经在ML lib里面,调用比较方便。
5、结果可视化及输出API
可视化一般式对结果或部分原始数据做展示。一般有两种情况,行数据展示,和列查找展示。
以上就简单介绍这么多,如果有小伙伴想了解和学习更多的大数据技术,可以私信小编索要资料
- ?
人社行业大数据分析平台
又亦
展开
产品概述
对政府公共服务而言,大数据之“大”,不仅仅在于其容量之大、类型之多,更为重要的意义在于用数据创造更大的公共价值,提升政府网上服务能力,形成政民融合、互动的“互联网+政务服务”新格局。
如何利用大数据技术和理念为公众提供更为精准化、个性化的服务,成为构建方便快捷、公平普惠、优质高效的政务服务体系的重要内容和必然要求。这需要从“供给端”和“需求端”两个方面做好政务服务大数据应用工作。一方面,要运用大数据手段推动政府监管模式转型,强化事中事后监管;另一方面,要利用大数据精准感知用户需求和服务体验,即通过对“一张网”中的群众行为数据、电子证照库、数据共享交换平台数据库等数据资源进行整合,充分利用大数据技术对跨领域、跨渠道的多元数据展开分析挖掘,全面掌握用户访问行为特征和规律,深入了解用户的服务需求,从而根据用户需求和体验来优化服务资源配置,丰富服务内容,改进服务方式,为用户提供个性化、精准化的服务,变“被动服务”为“主动服务”,不断提升政务服务水平和群众满意度。
功能框架
1.一个大数据平台
基于人社大数据中心平台基础上建设人社大数据服务平台,形成人社大数据服务平台(DaaS平台),实现统一基础数据库建设、统一块数据加工、统一服务定制及发布、统一服务目录及图谱和统一服务能力管理,为各类人社应用系统的建设奠定数据基础。
2.两个应用服务平台
两个应用服务平台分别是人工智能咨询服务平台和智能分析平台。
(1)人工智能咨询服务平台
实现自动化、智能化、人性化、个性化的机器人自助服务,为居民和企业在政务业务办理时提供自助的智能化政务服务,包括提供政务信息查询、业务导办、业务预受理、自动分发、政策宣传、相关问题引导等功能。
(2)智能分析平台
依托人社大数据,通过主题分析模型算法,进行各类主题分析。比如,分析群众行为习惯和办事需求,探索个性化、主动化、精准化、智能化服务,提供多样化、创新性的便民服务,变被动服务为主动服务;根据数据历史发展及成长情况做出相应的趋势预测分析和风险分析,及时感知政策实施和运行中的问题,促进政策完善,提升人社整体的宏观决策支持。
产品特点
1、通过对群众行为的大数据精准感知用户需求
2、通过大数据进行业务创新
3、利用人工智能+大数据技术,全天候提供智能化的人社咨询服务
成功案例
珠海市人力资源和社会保障局
- ?
大数据十大平台集合
周润发
展开
1数据星河大数据平台
全球首款大数据产业链生态平台,大数据界的App store。
实现数据模型、可视化引擎工具、应用场景、采集爬虫工具、清洗脱敏工具、数据分析平台、数据开发平台、数据管理平台、数据安全组件等大数据资产的分类展示、检索和使用。
一站式服务,快速实现大数据应用设计,同时可在平台进行应用产品交易。
2大数据可视化平台
标准的、友好易用、具备丰富展示形式、与底层数据分析实现解耦。
提供丰富的专业级可视化图表组件,在线进行图表配置、导出,提供使用指导。
提供可视化产品工厂,以及Dashboard自定义布局。
具备可视化编程能力,供用户快速开发可视化图表应用。
3企信宝APP
拥有约9000万海量企业信息数据。
提供失信企业及失信人查询及公布失信榜单,全国各企业查询,股东高管数据挖掘,企业网站地址查询,企业风险信息监测。
4农业大数据平台
涵盖农业监测预警大数据平台、农产品全产业链追溯预警大数据平台和农业产业链企业信用大数据平台。
覆盖农林牧副渔各行业,贯穿农业生产经营管理服务全过程。
目标群体包括部级农业部门、地方农业部门、涉农企业、农业金融机构等。
5金融大数据——54个九宫格小场景
九宫格应用场景包含四大类别,分别是基础数据库类、决策类、预测类、预警类,基础数据库类场景满足客户对基本数据的查询,决策类场景助理用户根基数据分析得到的价值信息进行有效决策,预测类场景便于用户对于潜在的风险及时规避。同时,用户可以根据自身需求进行场景化自定义组合,以满足个性需求。
6工商大数据平台
包括工商大数据分析展示、企业信用信息大数据监管和市场主体全景谱图大数据分析服务。
一网、一库、一中心、一平台、一门户,提升工商公共服务能力、市场监管能力、辅助决策能力和助推发展能力
7食药监大数据平台
对食品、药品、餐饮、中药材的生产、仓储、分销、物流运输、市场巡检及消费者等信息,以及产品名称、执行标准、配料、生产工艺、标签标识等数据,进行采集、跟踪、分析。
使监管部分实现产品种养、生产、销售、流通、公众服务、物流等环节的整个生命周期的监管
通过互联网等途径,实时呈现给消费者,实现食品药品全过程的全知晓。
8旅游大数据平台
显示最直观的客源、客流、经济收入数据、履约企业运营趋势、市场景气指数等指标。
管理部门可以从宏观角度了解地区旅游产业的整体发展水平和竞争力,辅助管理者制定基于大数据的行业发展决策。
所有数据来源于近五年累计数据(2011-2017),每周更新。
9民意云大数据平台
从海量的数据中分析民意诉求,精准分析民意热点——这是大数据在服务民意诉求中的重要作用。九次方民意云大数据平台,通过提供大数据操作台,方便用户实时全面了解区域内民意变化,根据推送消息进行应急反应。
10传播力监测大数据
根据全网采集的文章标题、作者、来源、时间等信息,计算文章的规范被转载量、非规范被转载量、以及文章的影响地域分析,并将各指标进行加权算法,帮助没提了解具体文章的全网传播详情。
协助监管部门加强没提传播监管和提升媒体机构的传播咯、公信力、影响力和引导力。
- ?
大数据的入门级学习
Karli
展开
1.Linux基础和分布式集群技术
学完此阶段可掌握的核心能力:
熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构;
学完此阶段可解决的现实问题:
搭建负载均衡、高可靠的服务器集群,可以增大网站的并发访问量,保证服务不间断地对外服务;
学完此阶段可拥有的市场价值:
具备初级程序员必要具备的Linux服务器运维能力。
1.内容介绍:关注作者:需要大数据学习视频资料可以加我QQ群,此文里面连起来的数字,你会找到我的
在大数据领域,使用最多的操作系统就是Linux系列,并且几乎都是分布式集群。该课程为大数据的基础课程,主要介绍Linux操作系统、Linux常用命令、Linux常用软件安装、Linux网络、防火墙、Shell编程等。
2.案例:搭建互联网高并发、高可靠的服务架构。
2.离线计算系统课程阶段
1. 离线计算系统课程阶段
Hadoop核心技术框架
学完此阶段可掌握的核心能力:欢迎加入722680258零基础到项目实战
1、通过对大数据技术产生的背景和行业应用案例了解hadoop的作用;2、掌握hadoop底层分布式文件系统HDFS的原理、操作和应用开发;3、掌握MAPREDUCE分布式运算系统的工作原理和分布式分析应用开发;4、掌握Hive数据仓库工具的工作原理及应用开发。
学完此阶段可解决的现实问题:
1、熟练搭建海量数据离线计算平台;2、根据具体业务场景设计、实现海量数据存储方案;3、根据具体数据分析需求实现基于mapreduce的分布式运算程序;
学完此阶段可拥有的市场价值:
具备企业数据部初级应用开发人员的能力
1.1 HADOOP快速入门
1.1.1 hadoop知识背景
什么是hadoop、hadoop产生背景、hadoop在大数据云计算中的位置和关系、国内hadoop的就业情况分析及课程大纲介绍
国内外hadoop应用案例介绍
分布式系统概述、hadoop生态圈及各组成部分的简介
1.1.2 HIVE快速入门
hive基本介绍、hive的使用、数据仓库基本知识
1.1.3 数据分析流程案例
web点击流日志数据挖掘的需求分析、数据来源、处理流程、数据分析结果导出、数据展现
1.1.4 hadoop数据分析系统集群搭建
集群简介、服务器介绍、网络环境设置、服务器系统环境设置、JDK环境安装、hadoop集群安装部署、集群启动、集群状态测试
HIVE的配置安装、HIVE启动、HIVE使用测试
1.2 HDFS详解
1.2.1 HDFS的概念和特性
什么是分布式文件系统、HDFS的设计目标、HDFS与其他分布式存储系统的优劣势比较、HDFS的适用场景
1.2.2 HDFS的shell操作
HDFS命令行客户端启动、HDFS命令行客户端的基本操作、命令行客户端支持的常用命令、常用参数介绍
1.2.3 HDFS的工作机制
HDFS系统的模块架构、HDFS写数据流程、HDFS读数据流程
NAMENODE工作机制、元数据存储机制、元数据手动查看、元数据checkpoint机制、NAMENODE故障恢复、DATANODE工作机制、DATANODE动态增减、全局数据负载均衡
1.2.4 HDFS的java应用开发
搭建开发环境、获取api中的客户端对象、HDFS的java客户端所具备的常用功能、HDFS客户端对文件的常用操作实现、利用HDFS的JAVA客户端开发数据采集和存储系统
1.3 MAPREDUCE详解
1.3.1 MAPREDUCE快速上手
为什么需要MAPREDUCE、MAPREDUCE程序运行演示、MAPREDUCE编程示例及编程规范、MAPREDUCE程序运行模式、MAPREDUCE程序调试debug的几种方式
1.3.2 MAPREDUCE程序的运行机制
MAPREDUCE程序运行流程解析、MAPTASK并发数的决定机制、MAPREDUCE中的combiner组件应用、MAPREDUCE中的序列化框架及应用、MAPREDUCE中的排序、MAPREDUCE中的自定义分区实现、MAPREDUCE的shuffle机制、MAPREDUCE利用数据压缩进行优化、MAPREDUCE程序与YARN之间的关系、MAPREDUCE参数优化
通过以上各组件的详解,深刻理解MAPREDUCE的核心运行机制,从而具备灵活应对各种复杂应用场景的能力
MAPREDUCE实战编程案例:通过一个实战案例来熟悉复杂MAPREDUCE程序的开发。该程序是从nginx服务器产生的访问服务器中计算出每个访客的访问次数及每次访问的时长。原始数据样例如下:
通过一系列的MAPREDUCE程序——清洗、过滤、访问次数及时间分析,最终计算出需求所要的结果,用于支撑页面展现:
1.4 HIVE增强
1.4.1 HIVE基本概念
HIVE应用场景、HIVE内部架构、HIVE与hadoop的关系、HIVE与传统数据库对比、HIVE的数据存储机制、HIVE的运算执行机制
1.4.2 HIVE基本操作
HIVE中的DDL操作、HIVE中的DML操作、在HIVE中如何实现高效的JOIN查询、HIVE的内置函数应用、HIVE shell的高级使用方式、HIVE常用参数配置、HIVE自定义函数和TRANSFORM的使用技巧、HIVE UDF开发实例
1.4.3 HIVE高级应用
HIVE执行过程分析及优化策略、HIVE在实战中的最佳实践案例、HIVE优化分类详解、HIVE实战案例--数据ETL、HIVE实战案例--用户访问时长统计
HIVE实战案例--级联求和报表实例:
离线数据挖掘系统
学完此阶段可掌握的核心能力:
1、通过对数据仓库知识的加强初步掌握数据仓库的核心概念和设计流程;2、通过对HADOOP生态圈关键辅助工具的学习掌握hadoop分析系统的整合能力;3、通过电商系统点击流日志数据挖掘系统实战项目,掌握hadoop离线数据挖掘系统从数据采集、入库、分析及报表展现的整套流程
学完此阶段可解决的现实问题:
1、可根据企业具体场景设计海量数据分析系统的通用架构2、根据具体场景的特点有针对性地调整数据分析各环节的技术选型;3、根据具体需求搭建起整套离线数据分析系统;4、简单数据仓库模型的设计和架构5、各环节具体功能模块的开发实现
学完此阶段可拥有的市场价值:
具备企业数据部中高级应用开发和初级架构师能力
2.1 数据仓库增强
2.1.1 数据仓库及数据模型入门
什么是数据仓库、数据仓库的意义、数据仓库核心概念、数据仓库的体系结构
2.1.2 数据仓库设计
建立数据仓库的步骤、数据的抽取、数据的转换、数据的加载、什么是数据模型、数据模型的常见类型、如何设计数据模型、如何选择数据建模的架构
典型数据模型——星型建模实例
2.1.3 数据仓库建模样例
业务建模、领域建模、逻辑建模、物理建模
web点击流日志分析系统数据仓库设计实战:
通过对数据特点和业务需求的分析,关系梳理,设计出一个主题明确、层次合理的数据模型
2.2 离线辅助系统
2.2.1 数据采集系统
数据采集概念介绍
FLUME日志采集框架介绍、FLUME工作机制、FLUME核心组件、FLUME参数配置说明、FLUME采集nginx日志实战案例
2.2.2 任务调度系统
任务调度系统概念介绍、常用任务调度工具比较、OOZIE介绍、OOZIE核心概念、OOZIE的配置说明、OOIZE实现mapreduce/hive等任务调度实战案例
2.2.3 数据导出
数据导出概念介绍、SQOOP基础知识、SQOOP原理及配置说明、SQOOP数据导入实战、SQOOP数据导出实战、SQOOP批量作业操作
2.3 web点击流日志分析系统实战项目
2.3.1 项目介绍
1. 在PC时代,营销的核心是购买,在移动互联网时代,其核心是如何实现用户个性化互动,对用户传播更为精准化的内容,而实现这一核心的基础就是对数据的管理和分析——数据驱动型商业模型。
2. 各类互联网服务产品(如网站、APP)都可以通过前端技术获取用户的详细行为数据(如访问的页面,点击的区域、登陆的频次、注册行为、购买的行为等),将这些点击流日志数据与后台商业数据综合起来,就可以挖掘对公司运营决策意义非凡的商业价值。
3. 本项目则是一个用大数据技术平台实现的点击流日志分析数据挖掘系统,项目内容涵盖一个典型数据挖掘系统中,包括需求分析、数据采集、数据存储管理、数据清洗、数据仓库设计、ETL、业务模型统计分析、数据可视化的全部流程。
2.3.2 需求分析
什么是点击流日志、点击流日志的商业价值、点击流日志分析需求
业务模型指标体系设计——流量分析、来源分析、受访分析、访客分析、转化率分析
2.3.3 系统设计及开发
1. 系统架构设计
2. 数据采集设计及开发——数据格式、数据内容分析、数据生成规律、采集系统技术选型解析、FLUME采集系统实现
3. 数据存储设计及开发——存储技术选型、存储业务流程解析、存储目录规划及文件命名规则、小文件合并实现
4. 数据统计设计及开发——数据预处理、数据加载、原始数据表的创建、数据入库、数据ETL
5. 报表统计设计——数据模型设计、事实表设计、维度表梳理
6. 业务指标设计及开发——PV统计(时间维度、终端维度、地域维度)、来访次数统计(时间维度、地域维度、终端维度)、独立访客统计(时间维度、终端维度、地域维度)、受访页面统计(时间维度、栏目维度)、页面热点图、转化率分析、来源关键词分析、来源搜索引擎分析、来源广告推广分析
2.3.4 任务调度系统设计实现
任务调度单元实现、各环节任务运行频次及依赖关系梳理、工作流设计及实现、工作流定义配置上传部署、工作流启动即状态监控
2.3.5 数据可视化——结果报表展现
1. hive分析结果使用sqoop导出到msyql数据库
2. 报表展现系统技术选型:
后台使用spingmvc + spring + mybatis
前端页面使用全静态异步刷新技术jQuery + Echarts
3. web展现程序架构搭建,使用maven构建项目工程
4. web展现程序页面设计开发:原型页面设计、js代码开发
5. 最终实现以下数据可视化效果:
(1)流量概况可视化效果:
(2)来源地域分析可视化效果:
(3)来源类型分析可视化效果:
3.Storm实时计算部分阶段
实时课程分为两个部分:流式计算核心技术和流式计算计算案例实战。
1.流式计算核心技术
流式计算核心技术主要分为两个核心技术点:Storm和Kafka,学完此阶段能够掌握Storm开发及底层原理、Kafka的开发及底层原理、Kafka与Storm集成使用。具备开发基于storm实时计算程序的技术能力。
学完此阶段可掌握的核心能力:
(1)、理解实时计算及应用场景
(2)、掌握Storm程序的开发及底层原理、掌握Kafka消息队列的开发及底层原理
(3)、具备Kafka与Storm集成使用的能力
学完此阶段可解决的现实问题:
具备开发基于storm的实时计算程序的能力
学完此阶段可拥有的市场价值:
具备实时计算开发的技术能力、但理解企业业务的能力不足
1.1、流式计算一般结构
2011年在海量数据处理领域,Hadoop是人们津津乐道的技术,Hadoop不仅可以用来存储海量数据,还以用来计算海量数据。因为其高吞吐、高可靠等特点,很多互联网公司都已经使用Hadoop来构建数据仓库,高频使用并促进了Hadoop生态圈的各项技术的发展。一般来讲,根据业务需求,数据的处理可以分为离线处理和实时处理,在离线处理方面Hadoop提供了很好的解决方案,但是针对海量数据的实时处理却一直没有比较好的解决方案。就在人们翘首以待的时间节点,storm横空出世,与生俱来的分布式、高可靠、高吞吐的特性,横扫市面上的一些流式计算框架,渐渐的成为了流式计算的首选框架。如果庞麦郎在的话,他一定会说,这就是我要的滑板鞋!
上图是流式分析的一般架构图,抽象出四个步骤就是数据采集、数据缓冲、数据处理、数据输出。一般情况下,我们采用Flume+kafka+Storm+Redis的结构来进行流式数据分析。实时部分的课程主要是针对Kafka、Storm进行学习
1.2、流式计算可以用来干什么
一淘-实时分析系统:实时分析用户的属性,并反馈给搜索引擎。最初,用户属性分析是通过每天在云梯上定时运行的MR job来完成的。为了满足实时性的要求,希望能够实时分析用户的行为日志,将最新的用户属性反馈给搜索引擎,能够为用户展现最贴近其当前需求的结果。
携程-网站性能监控:实时分析系统监控携程网的网站性能。利用HTML5提供的performance标准获得可用的指标,并记录日志。Storm集群实时分析日志和入库。使用DRPC聚合成报表,通过历史数据对比等判断规则,触发预警事件。
一个游戏新版本上线,有一个实时分析系统,收集游戏中的数据,运营或者开发者可以在上线后几秒钟得到持续不断更新的游戏监控报告和分析结果,然后马上针对游戏的参数和平衡性进行调整。这样就能够大大缩短游戏迭代周期,加强游戏的生命力。
实时计算在腾讯的运用:精准推荐(广点通广告推荐、新闻推荐、视频推荐、游戏道具推荐);实时分析(微信运营数据门户、效果统计、订单画像分析);实时监控(实时监控平台、游戏内接口调用)
为了更加精准投放广告,阿里妈妈后台计算引擎需要维护每个用户的兴趣点(理想状态是,你对什么感兴趣,就向你投放哪类广告)。用户兴趣主要基于用户的历史行为、用户的实时查...
- ?
中国邮政大数据平台建设之总体架构与实现
Emily
展开
【IT168 技术】摘要:通过对数据处理阶段性发展的解析,分析大数据、人工智能技术的发展趋势。结合实际生产需求,验证了基于容器云架构的新一代大数据与人工智能平台在数据分析、处理、挖掘等方面的强大优势。
关键词:大数据 人工智能 云计算 Docker 基础能力 多租户
Abstract:Through analyzing the staged development of data processing, this paper analyzes the development trend of big data and AI technology. According to the requirement of customers, the new generation of big data and AI platform based on Docker Cloud verify the powerful advantages in data analysis, processing, mining and so on.
Key Words:Big data; AI; cloud computing; Docker;basic abilities; Multi-tenant
引言
人工智能、大数据与云计算三者有着密不可分的联系。人工智能从1956年开始发展,在大数据技术出现之前已经发展了数十年,几起几落,但当遇到了大数据与分布式技术的发展,解决了计算力和训练数据量的问题,开始产生巨大的生产价值;同时,大数据技术通过将传统机器学习算法分布式实现,向人工智能领域延伸;此外,随着数据不断汇聚在一个平台,企业大数据基础平台服务各个部门以及分支机构的需求越来越迫切。通过容器技术,在容器云平台上构建大数据与人工智能基础公共能力,结合多租户技术赋能业务部门的方式将人工智能、大数据与云计算进行融合。
数据处理的发展阶段
随着信息技术的蓬勃发展,特别是近十年,移动互联技术的普及,运营商、泛金融、政府、大型央企、大型国企、能源等领域数据量更是呈现几何级数的增长趋势。数据量的膨胀除了带来了数据处理性能的压力外,数据种类的多样性也为数据处理手段提出了新的要求,大量新系统的建设同时产生了众多数据孤岛,给企业的数据运营维护与价值发掘带来了重大的挑战。随着大数据技术的不断发展,企业的数据处理技术转型也经历了几个阶段,如图1所示。
▲图1 企业数据处理转型的阶段变化
在第一阶段,大数据技术发展的早期,为了打破数据孤岛,将各类数据向大数据平台汇集,形成数据湖的概念,作为多源、异构的数据的数据归集,在此基础上进行数据标准化,建立企业数据的汇聚中心。在这个阶段,对非结构化数据处理以存储检索为主,对结构化数据处理提供各类API和少量SQL支持,使海量的以SQL实现为主的业务难以迁移到大数据平台,新业务开发使用门槛高,大数据技术的推广受到阻碍。
在第二阶段,企业客户的需求集中表现为,如何更好地处理结构化数据以及将老的IT架构迁移到分布式架构中。各大数据平台厂商开始在SQL on Hadoop领域进行研发和竞争,不断提高SQL标准的兼容程度。在这个过程中,Spark诞生并逐渐取代了过于笨重且TB量级计算性能存在缺陷的MapReduce架构,Hadoop技术开始向结构化数据处理分析更深度的应用领域进发。随着SQL on Hadoop技术的不断发展与星环科技解决了Hadoop分布式事务的难题,越来越多的客户在Hadoop上构建新一代数据仓库,将Hadoop技术应用于越来越多的业务生产场景,技术门槛的降低,使越来越多的客户可以利用强大的分布式计算能力轻松分析处理海量数据。在这个阶段后期,随着企业客户对实时数据分析研判需求的不断提高,流处理技术得以蓬勃发展。
在第三阶段,一部分企业已经完成了由基于关系型数据库为核心的数据处理体系向基于大数据技术为核心的数据处理体系的转变。在本阶段早期,很多企业客户不满足于通过SQL基于统计对数据的分析和挖掘,促使传统的机器学习算法开始实现分布化,但主要还是针对结构化数据的学习挖掘。随着深度学习技术和分布式技术的碰撞,演化出了新一代的计算框架,如TensorFlow等,计算能力的提升,并结合大量训练数据,使机器学习人工智能技术在结构化与非结构化数据领域产生巨大威力,开始应用于人脸识别、车辆识别、智能客服、无人驾驶等领域;同时,对传统机器学习算法产生了巨大冲击,一定程度上减少了对特征工程与业务领域知识的依赖,降低了机器学习的进入门槛,使人工智能技术得以普及。另一方面,可视化的拖拽页面、丰富的行业模板、高效率的交互式体验,极大地降低了数据分析人员的使用门槛,让人工智能技术进一步走入企业的生产应用。
大数据、人工智能与云技术的融合
随着企业内部对于数据资源的应用不再仅仅局限于IT部门,越来越多的内部项目组与分支机构加入大数据平台的使用中,加之数据处理技术的不断发展,如何解决基础平台的资源隔离问题、管理分配问题、编排调度问题;如何将企业业务应用需要的基础服务能力做更好地抽象,降低应用所需的基础服务的环境搭建、开发、测试部署周期,提升IT支撑效能;如何更好地管理众多的基于大数据与人工智能开发的应用等等成为企业急需解决的问题。
在大数据技术发展的早期,仅仅是在计算框架MapReduce中提供简单的作业调度算法,随着资源管理的需求,在Hadoop 2.0时代,Yarn作为单独组件负责分布式计算框架的资源管理。但是,一方面,Yarn仅仅能够管理调度计算框架的资源;另一方面,资源的管理粒度较为粗放,不能做到有效的资源隔离,越来越不能满足企业客户的需求。
云计算技术作为资源隔离封装虚拟化,以及管理调度的技术,本应应用于解决上述问题。但是,在Docker容器技术被广泛接受之前,云计算虚拟化技术主要基于虚拟机封装资源,并在其之上加载操作系统,资源利用率低,早期有厂商尝试将大数据平台构建在基于虚拟机技术的云化方案上,由于资源利用和稳定性问题,在私有云上的尝试鲜有成功案例。在公有云方面,借助公有云较为强大的基础平台硬件与运维支持能力,有一些非核心业务的应用尝试。
随着Docker、Kubernetes等容器技术的发展,与微服务等技术概念的形成,大数据与人工智能基础平台开始基于容器云构建底层资源管理与调度平台。容器云就像一个分布式的操作系统,将集群中的各类硬件资源进行封装、管理以及调度,将封装的资源作为容器承载大数据的相关组件进程,再将这些容器进行编排,组成一个个的大数据和人工智能的基础服务,如分布式文件系统HDFS、NoSQL数据库Hbase、分布式分析型数据库Inceptor、分布式流处理平台Slipstream、分布式机器学习组件Sophon等。由这些基础服务编排构建公共能力服务层,提供如数据仓库、数据集市、图数据库、全文搜索数据库、流处理服务、NoSQL数据库、机器学习平台服务、定制图像识别服务等,为企业打造全新的数据处理核心系统。基于这一核心系统服务于各类企业的不同部门。通过资源隔离技术,通过对每个租户的资源分配和权限管理,满足业务分析人员的个性化分析需求,专注于业务逻辑的开发和数据的分析挖掘。
技术融合的应用
中国邮政大数据平台建设以Transwarp Data Hub(以下简称TDH)与Transwarp Operating System(以下简称TOS)作为基础架构系统,搭建的新一代逻辑数据仓库和数据集市,完全取代了Teradata和Oracle。
总体架构与实现
中国邮政大数据平台服务于量收、邮务、名址等系统,同时运用容器云TOS实现创新多租户的数据分析挖掘环境。建立从业务层到管理层到决策层的智能分析体系,模拟量化风险和收益,实现对邮政各种业务数据进行分类、管理、统计和分析等功能,给各级管理人员提供各类准确的统计分析预测数据,使其能够及时掌握全面的经营状况,为宏观决策提供支持;为省分公司基层业务人员提供详尽的数据,供其对各自的工作目标、当前和历史状况进行准确的把握,对业务活动进行有效支撑,满足邮政经营分析管理及决策支持。
中国邮政大数据平台以五大基础服务集群域为基础,分别是数据湖集群域、企业数据仓库集群域、省分服务集群域、机器学习实验室集群域、开发/测试/培训集群域。
(1)数据湖集群域:基于TDH平台搭建的数据湖,主要承担多源异构的数据归集,数据湖内包括:原始数据池、清洗加工数据池、整合加工数据池等。
(2)企业数仓集群域:基于TDH搭架的数据仓库集群,基于大数据创新搭架逻辑数据仓库,用于迁移改造原有基于Teradata搭架的数据仓库,数据集市和基于Oracle搭建的报刊集市的邮政量收管理系统。
(3)省分服务集群域:基于TOS搭建容器化多租户数据分析平台云。为省、市分公司开发人员和业务人员提供省分多租户的平台环境,集团分发数据与自有数据存储计算,自有应用的开发与管理,独立租户使用运行。
(4)机器学习实验室集群域:基于TOS搭建的容器化多租户大数据机器学习平台,为集团数据中心分析师提供多租户的开发实验环境平台,进行数据探查、业务建模、算法研究、应用开发、成果推广等。
(5)开发/测试/培训集群域:为应用开发人员、系统测试人员、培训师、学员提供多租户的大数据与机器学习平台,为开发商及内部单位提供开发测试培训服务。
以此为基础,达到了数据管理、服务管理、运维管控、安全管控四个维度的统一。在风险管控、决策支持、服务支撑、流程优化、品牌创新、交叉营销六大应用领域展开应用。实现了租户管理、数据治理、数据加工、数据挖掘、数据探索、数据展现六大平台功能。
数据湖和数据仓库基于TDH构建,将包括业务系统数据、实时流数据、合作单位数据、互联网数据等不同数据源,通过ESB接入、ETL工具、Kafka、Sqoop、文本上传、人工接入等方式,统一汇聚进入数据湖。加工后获得的数据资产发布到数据资产目录,通过数据资产目录的构建TDH与TOS用户间数据交互体系。便于用户快速检索数据,通过数据资产目录实现对数据的集成、融合、安全、共享。数据资产目录包括:元数据、主数据、数据安全、数据标准、数据质量、数据轮廓、数据生命周期等。此外,企业用户通过大数据门户按需申请租户存储计算资源、数据资源、审批流程通过后,集群资源管理员按需快速部署集群,自动化将数据从数据湖加载入数据分析集群或省分集群对应的租户空间,供数据开发人员使用。数据开发人员会将数据应用成果固化到数据湖内,对外提供数据服务。
数据仓库与数据集市的完整迁移
中国邮政大数据平台是全球首个采用Hadoop(TDH)技术完全取代Teradata和Oracle的混合架构搭建新一代逻辑数据仓库和数据集市的系统。
原量收系统使用Teradata的数据仓库和Oracle的数据库,数据使用空间目前已接近30TB,现有使用用户约5万人,提供近约900张报表的灵活查询,单日报表查询频次最高能达到40万次,月初高峰查询需支持约2000计算查询并发。
通过项目前期大量调研准备工作,制定了切实可行的项目实施方案。量收管理系统的总体架构、ESB、BI工具、ETL工具、调度工具、门户等都保持不变,仅将原量收系统的数据仓库和数据集市,使用大数据平台进行完全替换,降低了整个迁移风险。
整个迁移过程中,包括环境部署、模型迁移改造、接口迁移改造、数据迁移、ETL迁移改造、报表迁移改造、数据核对、性能优化、业务应用迁移、风险控制,系统测试等。例如模型迁移改造,不改变原有业务逻辑,只需对接口层模型,基础层模型、汇总层模型进行轻度改造。对于模型改造来说,系统基础层模型结构相对复杂,关联度相对较高,原系统使用Teradata数据库。TDH全面兼容Teradata的数据类型与SQL方言,降低了迁移成本。同时迁移完成后,性能大幅提升,见图2。
▲图2 迁移前后数据集市业务场景500并发测试性能对比
基于容器云的大数据与机器学习平台的全面应用
基于TOS实现的多租户新模式,将大数据与机器学习平台组件完全容器化实现,并在TOS提供能力服务。集团统一部署企业内部云平台,对邮政各个租户(集团、省分、市局等)动态分配存储、计算、网络等资源,并实现完整的资源隔离,使得各个租户数据分析人员和业务人员获得相对独立的资源环境,赋能业务创新,同时可动态调配资源,实现资源的共享优势。
集团、省分、市局各级人员通过多租户平台,实现资源发布、申请,使用及应用开发、成果推广。通过项目立项申请审批后,省分项目组人员在租户空间内,接入访问数据资源,使用平台服务资源,大数据分析工具及机器学习挖掘工具展开数据分析挖掘工作,具体开展数据处理、模型开发、算法应用、应用发布等,在审批验收之后,将成果推广到数据湖上部署对全集团提供数据应用服务。
通过TOS+TDH搭架厚平台、薄应用的微服务架构,实现租户之间的异构性、独立测试与部署、资源按需伸缩、高性能计算能力、租户间错误问题隔离、团队全功能化。实现数据资产化管理。面对集团数据多样、海量、跨板块、跨专业的需求,集团对数据进行了全面梳理,创新集成各版块、专业数据,创建数据资产目录便于快速检索获取资产,管控治理资产,让数据即资产从理论阶段上升到实现阶段。
结语
随着企业数据处理与服务需求的不断发展,由大数据的汇聚,分布式技术释放计算能力开始,技术不断延伸发展,大数据、人工智能与云计算的边界越来越模糊,...
- ?
大数据行业图谱之一:底层基础平台公司能做多大?
十指浅
展开
大数据是企业服务市场中的新兴领域,短短几年时间,大数据概念从兴起到落地,开始在各行各业发挥作用,行业政策频出,技术飞速发展,受到资本追捧。
整个大数据行业可大致分为三层,底层基础平台,中间层通用技术,上层行业应用。接下来,爱分析将按照上述分类,逐步介绍各细分领域的行业现状、未来前景。今天是大数据系列的第一篇——底层基础平台。
底层基础平台主要解决的是数据存储、计算的问题,是整个大数据生态的基石。采集到的数据,首先要能高效、快捷地存起来,才能进行数据分析和数据挖掘。
这一层非常重要,同时也是技术含量最高的一层。以底层技术中明星Hadoop为例,用Hadoop的公司很多,能做Hadoop发行版的公司凤毛麟角。
底层基础平台细分领域里的大数据公司众多,有专注Hadoop发行版的星环科技、红象云腾和天云大数据,有传统数据库厂商人大金仓和南大通用,有研发新型分布式数据库的巨杉数据库,还有唯一来自中国的Apache社区顶级项目Kylin背后公司Kyligence。
这里面最受人关注的Hadoop以及由此衍生的公司,接下来爱分析为您重点阐述国内外Hadoop生态的现状。
Hadoop兴起的原因:便宜才是硬道理
进入新世纪的第一个十年,各大企业都在大力投入IT设备,建设自己的机房,上线各套办公系统。第二个十年,经济下行,传统企业的盈利下降,对IT设备的投入已经不像上个十年那般狂热,大型企业采购IT设备的经费受到控制,开始核算成本,意图在满足需求的情况下,降低投入。
以Hadoop为代表的新底层技术能够兴起,抛开技术原因,最主要的原因是便宜、扩展性强。利用分布式架构,将一些性能一般的机器串联起来,达到与高性能单机同样的效果。随着公司发展,数据量增大,不需要更换全套设备,只需要再增加机器就可以达到目的,省时省力。
分布式架构的技术很多,为什么Hadoop最后胜出?还是因为便宜,用的人多。以微软的Cosmos为例,这套系统本身优于Hadoop,主要是针对大型机房,设计理念很好,上万台机器的机房,拿出几十台做别的事情,来提升系统运营效率。但如果是几十台机器,仍然需要拿出很大一部分来做别的事情,机器使用效率就很低。
实际应用时,用上万台机器的公司少,用几十台机器的公司多,因此Hadoop的应用面更广。用的人多,自然帮助优化架构的人多,社区贡献的人多,技术发展快,渐渐成为主流。
国外Hadoop三驾马车,商业模式各有差异
Hadoop三驾马车,数据源:公司公告,爱分析整理
提到Hadoop,必然要提到国外三家围绕Hadoop技术的公司:Cloudera、Hortonworks和MapR。三家公司都成立时间不长,Cloudera和MapR都是2009年成立,而Hortonworks是2011年从雅虎独立出来。
三家公司都在资本市场上受到追捧。Hortonworks在2014年上市,IPO当天市值接近11亿美金;Cloudera获得英特尔7.4亿美金的投资,估值近50亿美金;MapR最近刚刚获得5000万美金融资,估值也超过10亿美金。
Hadoop技术是开源的,为什么还有公司会提供Hadoop相关服务?这是因为开源技术的兼容性和稳定性比较差,同时,企业在实际应用中需要将开源技术和自身系统、产品相连接,这就是Hadoop发行版的市场所在,三家公司利用自己在这领域的技术、经验积累,帮助企业更好地应用Hadoop技术。
尽管三家公司都是提供Hadoop相关服务,但是商业模式区别不小。Cloudera和MapR都研发自己的Hadoop发行版,只不过MapR的技术完全闭源,不会对外开放,而Cloudera的产品分为免费版和企业版,只有企业版的核心组件不对外开放,其他技术均提供给社区。Hortonworks将自己的技术完全贡献给社区,不靠产品获利,靠派驻技术人员到客户现场提供服务盈利。
因为MapR的技术不开源,所以对社区贡献有限,目前对Apache Hadoop社区影响最大的是Cloudera和Hortonworks这两家公司。
国内市场处于跑马圈地阶段,新兴大数据公司刚刚起步
正如开篇所言,尽管近年大数据行业风起云涌,创业公司如雨后春笋般冒出,却少有专注底层基础平台的公司。
星环科技是业内的明星公司,创始团队来自原Intel开发Hadoop发行版的部门,经验丰富。成立三年,星环科技已完成1.55亿人民币的B轮融资,估值超过10亿人民币,目前主要服务金融、电信领域客户。
天云大数据和红象云腾同样在做底层基础平台,发展速度略逊于星环科技,都在寻找适合自身的发展路线。天云大数据的业务在向上层迁移,除了提供Hadoop发行版,目前也涉足复杂神经网络等算法技术;红象云腾将业务下沉,基于芯片层提升系统处理数据的效率。
当前,银行等大型企业纷纷喊出“去IOE”(IBM小型机、Oracle数据库、EMC存储设备),尽管国产企业的产品尚不能满足大型企业核心系统的要求,但是必然会有大量新业务的IT系统采用国产品牌,旧有业务面临更新换代也会优先选择国内厂商。
数据库等底层设施不同于上层应用,更换成本较高,客户黏性很大,非万不得已不会进行替换,同时Hadoop这类新技术迭代速度快,需要后期维护。因此,各家公司都在大力开拓市场,跑马圈地。
新兴公司服务客户的方式类似,前期以产品为内核,用项目制的形式帮助企业搭建系统,后期每年收取20%的维护费。各家企业都在降低初装费,意图占据市场,靠后期维护费用收回成本。
巨头环伺的市场,大数据初创公司突围不易
在去IOE的趋势下,中国大型企业都在面临IT设备的更新换代,整个底层基础平台市场潜力巨大。新兴大数据公司利用其技术优势和初创公司的高效决策机制,迅速抢占一些市场份额,占据一席之地不成问题。
这类公司主要服务金融、电信、交通、电力等领域的大型企业,这些领域原本是传统集成商的地盘,因此新兴大数据公司不可避免地将与集成商正面竞争。华为、浪潮、亚信等公司之前主要是为大型企业提供硬件基础设施,近年看到大数据领域的巨大潜力,纷纷成立了大数据部门,为客户提供全套解决方案。
爱分析认为,未来几年在底层基础平台领域诞生一家估值10亿美金的独角兽公司是可以预见的,但是这些大数据公司中出现类似Oracle这样的巨头公司可能性不大,基于以下几点:
第一, 产品同质化严重,市场竞争激烈
底层基础平台不同于上层应用,客户需求类似,产品很难体现出差异化优势。各家公司主要比拼产品性能的优劣,这种技术上的差异,新兴公司最初会占据一定优势,随着开源技术的普及,华为等公司会逐步赶上,技术的差距会逐步缩小。
这个市场并非全新市场,华为、浪潮、亚信等公司在这领域盘桓多年,新兴公司发展到一定程度,势必会侵入集成商的地盘。最近这段时间,星环科技和华为竞争非常激烈,价格战打得火热。
第二, 技术迭代更新快,长期保持技术领先不易
Hadoop诞生于2006年,Spark于2009年出现,2013年Hadoop已经发布2.0稳定版本,两种技术从诞生到成熟时间之短,令人震惊。在当今这个技术快速发展的时代,新兴大数据公司一方面要应对市场竞争,另一方面还要保持技术的领先地位,难度不小。
Hadoop等分布式架构颠覆了传统单机架构,很难说未来不会有新技术出现颠覆掉Hadoop。一旦大数据公司赖以生存的根基遭到颠覆,谋求转型势必困难重重,公司大概率会失败。不过目前Apache Hadoop社区运作良好,Hadoop经过这些年的改善优化,性能和稳定性上获得很大提升,Spark等新技术大多都会对接在Hadoop上面。未来几年这方面风险较小,毕竟技术发展到现在,独自造轮子的难度很大。
第三, 产品销售能力逊于传统巨头公司
企业级市场,产品销售能力将成为影响公司发展的重要因素。以Oracle为例,早年与Oracle竞争的Sybase和Informix,其技术实力不逊于Oracle,Informix的技术甚至领先于Oracle。这两家公司最后在竞争中出局,落
得被收购的下场,主要是输在市场推广上,市场推广的失利直接影响到公司的技术革新,最后导致衰落。
在这方面,华为等传统巨头公司占据绝对优势,一方面他们与客户有长期合作关系,另一方面销售团队长期服务大型企业,经验丰富。
那么,什么样的公司有机会突围成功,成为中国的Oracle,爱分析认为具备以下几点的公司机会最大。
第一, 开源心态有助于保持技术领先地位
以Hadoop为代表的开源技术正在改变世界,但开源和可持续盈利模式总是存在着一些矛盾,近期RethinkDB公司的倒闭值得警惕,国内专注Hadoop技术的公司效仿国外找到了一条盈利模式,但目前仍然存在一些风险。
公司要不要保持开源的心态,开放自己的技术给更多人使用?对大数据公司而言,技术是核心竞争力之一,特别是对于这些做基础平台的公司,开放技术无疑是削弱自身竞争优势,降低产品的附加值,减少公司的毛利,短期来看,开放技术会对公司的营收造成不良影响。
但是,从公司长远发展来看,完全闭源会增大公司风险,其严重后果远远大于开放技术的影响。大数据公司最担心的是路线图出现偏差,自身技术与时代发展相左,丧失技术上的优势。一旦发生公司的技术发展方向背离整个行业发展方向,需要停止已研发的项目,掉头追赶行业脚步,这对创业公司来说是非常致命的。
如果向开源社区开放自己技术,让更多人了解、研究,有助于自身技术的发展,保证路线图的正确性。同时,不断向开源社区做出贡献,还能提升公司在社区的话语权,进而提升公司在行业的影响力。这也是为什么Cloudera和Hortonworks愿意开放技术,争夺在Hadoop社区的话语权。影响了开源社区,就会影响到整个行业技术发展进程,可以让公司的发展始终保持在正确的轨道中。
第二, 商业拓展与技术研发同等重要
企业服务市场是销售驱动型市场,而非技术驱动型,大数据这个细分领域同样如此。技术实力再强,产品功能再多样,也需要有客户买单才行。有些创业公司只重视研发上的投入,轻视市场推广,公司每年订单少,营收自然不高,团队规模上不去,融资困难,公司发展缓慢。
单纯技术上的优势,在企业级市场并不是绝对影响因素。很多公司在POC阶段都曾遇到过技术标第一,却因为商业谈判阶段不理想而错失订单的事情。特别是现在市场处于跑马圈地阶段,抢占位置比什么都重要,更是需要大力进行商业拓展。一旦市场格局稳定下来,到时候再切入市场难度很大。
另一方面,即使是基础平台技术,也需要在实际应用中进行改进优化,各行各业中应用同样的技术还是有一些差异,在应用过程中才会真正了解企业的痛点,更好地服务企业。在做项目过程中,大数据公司可以积累经验,将这些经验内化成产品的一部分,做出更适合中国企业用户的基础平台产品,筑起公司的壁垒。
第三, 效仿Oracle,建立适合公司的小生态
建立生态这一点并不是适合初创公司,是公司发展到一定程度后需要考虑的。扩大自己合作伙伴的队伍,与其他公司共同开发产品,让其他公司承担一定销售任务,有些时候要比单打独斗更适合企业级市场。
Oracle这样的巨头公司,刚进入中国市场时也遇到不小的阻力。当时采取的做法是与中国本土公司合作,建立围绕Oracle的小生态,借助本土公司的力量敲开中国市场的大门。
做底层基础平台的公司,作为连接硬件和应用的中间层,更需要与其他公司合作。平台上对接的应用越多,越有助于平台产品的推广,开辟新的市场。
- ?
大数据平台快速解决方案
杭邴
展开
内容来源:2017年5月13日,周末去哪儿架构师李锡铭在“Java开发者大会 | Java之美【上海站】”进行《大数据平台快速解决方案中》演讲分享。
阅读字数:1891 | 4分钟阅读
摘要
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。周末去哪儿架构师李锡铭根据自己的成功经验,为我们分享大数据平台快速解决方案。
大咖演讲视频
http://t/R9an7Rr
搭建始末
当时我们确定要做大数据的时候,有两种选型。第一种选型是用用原生的、开源的大数据技术,需要自己搭建;第二种是ODPS。
后来我们选择了利用原生大数据,自己搭建一个大数据平台。因为我们已经有了一定的小积累,并且也想做一个大数据方面的技术沉淀。
在移动互联网时代,用户所有的行为、浏览、记录和收藏等所有的数据,我们都会把它拿下来分析,前段时间阶段性沉淀的东西有多少,是对之前的一个总结。这个数据还能帮助我们进行深度挖掘,之后如何对不同用户分类,做一个精准化的营销定位。
每个公司都会对这些数据进行报表级的展现。我们最开始的数据实现方式是把所有用户的行为数据放到传统的关系型数据库中,利用纯Java应用程序去读这张表。当计算某个指标的时候,还会关联若干张子表。这张主表大概有几千万,其它子表也是百万级甚至千万级的。如果单纯用Java去算的话,还要额外处理多线程。
所以我们用传统的Java纯程序+关系型数据库去处理报表的时候,在存储和计算的性能上会出现问题,以至于报表需求越来越慢。
在这样的大背景下,我们改成了使用大数据去处理这种场景。
技术概览
Hadoop是现在所有大数据计算存储的一个底层概念,后面所有衍生的大数据产品都是在Hadoop的基础上进行衍生的。
这张图是目前大数据平台的架构。
原生的Hadoop应该包含了Hdfs(文件存储)、Yarn(资源调度)和Mapreduce(算法)。
Spark是类似于Mapreduce的一个计算框架,它在很多场景中的性能会比原生的Mapreduce好很多,尤其是迭代计算的时候,会有好几个数量级的提升。
Sqoop是一个数据的迁移工具。
Hive是对底层Hdfs系统的文件抽象出一个类似Mysql的关系型数据库,但大前提是它是在Hadoop这个大的语义下的关系型数据库。
Oozie是一个任务编排和调度的框架。
Hue是大数据的管理后台。
Zookeeper是分布式协调工具。
1.组件分类
基础数据:Mysql,File。基础数据层是游离于大数据之外的概念,它是传统的数据来源。
大数据存储:Hdfs、Hive。大数据存储是最基础的文件存储,在这基础上抽象出一个大数据的关系型数据库。
大数据计算:Mapreduce、Spark、Sqoop。Mapreduce是原生的,Spark是新生的,Sqoop是数据转移的工具。
大数据协调与调度:Yarn、Zookeeper、Oozie。Yarn是原生的,Zookeeper是一个分布式保证文件原子性的工具,Oozie是调度工具。
大数据展现:Hue。Curd的展现层。
2.典型执行流程
最开始说过,我们遇到的问题是,Mysql的表存不下,计算也有问题。在这个场景下要把数据,从Mysql转到大数据,并利用大数据进行计算,最后做一个展现。
它的流程是,首先通过Sqoop把Mysql的数据一次性或是增量的同步到一张Hive表里,用Hive Sql写好查询后,本质上Hive Sql会转化成Mapreduce任务再去执行,最后数据就展现出来了。
很多时候后台的服务Control层会有入口和出口,我们需要把入口和出口的参数都记下来,方便以后排错或做统计方面的应用。
在应用程序里,把这些消息定时写到消息队列中,用Spark定时读消息队列,并把这些读取到的消息按Spark的方式做一个编程。这个任务最终会被丢到Hadoop的底层计算里,然后用Yarn去调度,计算出结果,把这个结果写入Hive,这就完成了一次流式计算。
3.Hue
这里写了一个Hive Sql,与传统Mysql的写法几乎一样。Hive Sql写好以后点执行。它的过程是把Sql首先交给Hive去跑,Hive用自己的Sql解析引擎把这个任务翻译成Mapreduce,Mapreduce再用Yarn跑在Hadoop上,最终把结果跑出来。
4.存储:Hadoop hdfs
HadoopHdfs是基础的存储层。
HadoopHdfs其实只包含了两种类型,一个是Namenode,一个是Datanode。Namenode是一个管理的节点,而datanode只负责数据的存储和冗余。
5.计算:Mapreduce&spark
Hadoop原生的计算框架是Mapreduce,而spark是一个新兴的计算框架,它更快更全面。
6.资源管理器:yarn、Apache、hadoop yarn
资源管理器的架构内包含rescource manager和node manager。Rescource manager是管理节点,node manager是work节点。
把任务丢给rescource manager,它去把任务分发给每个节点,做一些状态的变换,最后把结果通过rescource manager汇总以后,处理完毕交给客户端。
7.hive
hive的架构并不是很复杂,上层是一些用户的API、web页面和命令行。它的核心是执行引擎,把sql翻译成大数据平台可以接受的任务。底层基于存储,它可以存在hdfs上。
8.sqoop
主要用于在hadoop与传统的数据库间进行数据的传递。
9.ooize
大数据任务编排调度。
学习与使用路线
如果想要学习一些大数据相关的东西,我推荐可以先掌握一些基础,然后找一个场景套进技术里,进行快速实践。在快速实践的过程中会发现很多问题需要解决,很多知识需要补充,所以要在实践中前行,在错误中补充。
我的分享到此结束,谢谢大家!
- ?
8个公开大数据网站推荐,帮数据收集的新手入门!
鄂飞槐
展开
如果您对传统企业互联网转型、大数据、工业4.0等内容的文章、资料、PPT等感兴趣(有提供下载哦~),欢迎关注强企阅闻公众号。
来源/钱塘大数据
在这个用数据说话的时代,能够打动人的往往是用数据说话的理性分析,无论是对于混迹职场的小年轻,还是需要数据进行分析和研究的同学,能够找到合适的数据源都是非常重要的。特别是想要对一个新的领域进行研究和探索,拥有这个领域的数据那都是有十分重要的意义的。
1.- 国家数据 -
http://data.stats.gov/index.htm
数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据,并且在月度、季度、年度都有覆盖,较为全面和权威,对于社会科学的研究不要太有帮助。最关键的是,网站简洁美观,还有专门的可视化读物。
2.- CEIC -
http://ceicdata/zh-hans
最完整的一套超过128个国家的经济数据,能够精确查找GDP, CPI, 进口,出口,外资直接投资,零售,销售,以及国际利率等深度数据。其中的“中国经济数据库”收编了300,000多条时间序列数据,数据内容涵盖宏观经济数据、行业经济数据和地区经济数据。
3.- wind(万得)-
http://wind/
万得被誉为中国的Bloomberg,在金融业有着全面的数据覆盖,金融数据的类目更新非常快,据说很受国内的商业分析者和投资人的亲睐。
4.- 搜数网 -
http://soshoo/
已加载到搜数网站的统计资料达到7,874本,涵盖1,761,009张统计表格和364,580,479个统计数据,汇集了中国资讯行自92年以来收集的所有统计和调查数据,并提供多样化的搜索功能。
5.- 中国统计信息网 -
http://tjcn.org/
国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息,建立了以统计公报为主,统计年鉴、阶段发展数据、统计分析、经济新闻、主要统计指标排行等。
6.- 亚马逊aws -
http://aws.amazon/cn/datasets/?nc1=h_ls
来自亚马逊的跨科学云数据平台,包含化学、生物、经济等多个领域的数据集。
7.- figshare -
https://figshare/
研究成果共享平台,在这里你会发现来自世界的大牛们的研究成果分享,同时get其中的研究数据,内容很有启发性,网站颇具设计感。
8.- github -
https://github/caesar0301/awesome-public-datasets
如果觉得前面的数据源还不够,github上的大神已经为大家整理好了一个非常全面的数据获取渠道,包含各个细分领域的数据库资源,自然科学和社会科学的覆盖都很全面,简直是做研究和数据分析的利器。
随便上几个图,满满的都是资源啊
免责声明:本公众号所载文章为本公众号原创或根据网络搜集编辑整理,文章版权归原作者所有。如涉及作品内容、版权和其他问题,请与我们联系! 文章内容为作者独立观点 ,并不代表兮易强企赞同或支持其观点。
- ?
什么是大数据和大数据平台?
易文
展开
“大数据”时下一个热门的词语,近几年来,关于大数据的著作和文章铺天盖地,似乎也在共同在传递一个信息:越来越多的行业、人士开始关注并实际探索大数据的应用,我们正在一起描绘着大数据巨大效用的蓝图,但在实践的路上,我们都孩子起步阶段小步前行。
大数据根基于互联网,数据仓库、数据挖掘、云计算等互联网技术的发展为大数据应用奠定基础。对于任何一个大数据的从业者或初接触者,或者都会有个共同的感触:大数据很有用!但大数据是什么呢?
今天就给大家讲解一下:
对于大数据的定义,我们来引用3个比较差用的大数据定义:
1)Gartner:需要信息处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量、高增长率很多样化的信息资产。
2)IDC:海量的数据规模(Volunme)、快速的数据流转和数据体系(Velocity)、多样的数据类型(Variety)、巨大的数据价值(Value)。
3)Wiki:或称巨量数据、海量数据、大资料,指所涉及的数据量规模巨大到无法通过人工,在合理时间内达到截取、管理、处理、并整理成为人类所能解读的信息。
其他关于大数据的定义也大抵类型,我们可以用几个关键词对大数据做一个界定。
首先,“大规模”,这种规模可以从两个维度来衡量,一是时间序列累积大量的数据,二是在深度上更加细化的数据。
其次,“多样化”,可以是不同的数据格式,如文字、图片、视频等,可以是不同的数据类别,如入口数据,经济数据等,还可以有不同的数据来源,如互联网、传感器等。
最后,“动态化”,数据是不停变化的,可以随着时间快速增加大量数据,也可以是在空间上不断移动变化的数据。
这三 个关键词对大数据从形象上做了界定。
但是还需要一个关键能力,就是“处理速度快”。如果这么大规模、多样化又动态变化的数据有了,但需要很长的时间去处理分析,那不叫大数据。从另一个角度,要实现这些数据快速处理,靠人工肯定是没办法实现的,因此,需要借助于机器实现。
最终,我们借助机器,通过对这些数据进行快速的处理分析,获取想要的信息或者应用的整套体系,才能称为大数据。
我们可以用下面的图示给大数据定义:
这下,就知道什么是大数据了吧
大数据基础平台
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并