版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第集团大数据云平台方案规划目录 TOC o 1-3 f 1综述 PAGEREF _Toc508652073 h 31.1项目背景 PAGEREF _Toc508652074 h 31.2建设目标 PAGEREF _Toc508652075 h 31.3需求分析 PAGEREF _Toc508652076 h 31.3.1基础平台 PAGEREF _Toc508652077 h 41.3.2企业画像应用 PAGEREF _Toc508652078 h 52大数据云服务平台对应用的支撑需求 PAGEREF _Toc508652079 h 62.1用户与企业画像支撑能力 PAGEREF _Toc50
2、8652080 h 62.2物联网数据分析能力 PAGEREF _Toc508652081 h 82.3互联网数据应用支撑能力 PAGEREF _Toc508652082 h 112.3.1爬虫引擎 PAGEREF _Toc508652083 h 112.3.2实时查询 PAGEREF _Toc508652084 h 122.4非结构化数据处理能力 PAGEREF _Toc508652085 h 172.4.1文本识别 PAGEREF _Toc508652086 h 172.4.2PDF图像识别 PAGEREF _Toc508652087 h 212.4.3全文检索 PAGEREF _Toc5
3、08652088 h 213总体建设方案 PAGEREF _Toc508652089 h 233.1平台框架设计理念 PAGEREF _Toc508652090 h 233.2功能架构 PAGEREF _Toc508652091 h 243.3技术架构 PAGEREF _Toc508652092 h 253.4产品覆盖综述 PAGEREF _Toc508652093 h 263.5数据分布架构 PAGEREF _Toc508652094 h 273.6关键技术说明 PAGEREF _Toc508652095 h 273.6.1云服务平台 PAGEREF _Toc508652096 h 273.
4、6.2Hadoop平台 PAGEREF _Toc508652097 h 393.6.3元数据管理 PAGEREF _Toc508652098 h 403.6.4数据治理 PAGEREF _Toc508652099 h 473.6.5爬虫引擎 PAGEREF _Toc508652100 h 523.6.6数据探索 PAGEREF _Toc508652101 h 563.6.7自助分析 PAGEREF _Toc508652102 h 573.6.8企业画像 PAGEREF _Toc508652103 h 58综述项目背景互联网、云计算、物联网、及时通讯工具和社交网络的兴起和普及,特别是大数据技术的
5、应用,正深刻改变着当前市场格局。达沃斯世界经济论坛发布的大数据,大影响:国际发展的新可能的报告宜称,大数据已成为与货币和黄金一样的一种新的经济资产类别。,美国总统办事室(EOP)公布了大数据研究和发展规划,把大数据研发应用从商业行为提升到国家战略层面。在这种新形式下,大数据项目将会作为整个集团的跨公司、跨部门、跨内外的数据综合服务平台,承载着互联网+业务的核心枢纽。该平台的主要建设目标是为集团及其全部相关机构提供全栈大数据服务,包括技术平台、数据应用及产品、数据服务。该平台的建设目标并不仅仅局限于使用大数据技术构建数据分析系统,而是基于云计算、云服务的理念,打造集团“数据即服务”的平台理念。通
6、过整合集团、子公司、互联网+平台、第三方等数据,通过授权机制为集团本部、各子公司、合作伙伴、投资方等提供经营、决策等所需的相关大数据能力和数据服务。建设目标本期项目建设目标:为集团及其全部相关机构提供全栈式大数据服务,包括技术平台、数据应用及产品、数据服务;基于云计算、云服务的理念,打造集团“能力、数据即服务”的平台理念;为集团本部、各子公司、合作伙伴、投资方等提供经营、决策等所需的相关大数据基础能力和数据服务。需求分析本期大数据云服务平台项目包括大数据基础平台建设、企业画像应用两部分。其中数据云平台接入中信云平台,统一进行运营和对外提供服务。基础平台基础平台提供一站式大数据解决能力和一站式数
7、据分析能力。平台系统支持PaaS层能力,承载用户创建、修改、删除计算与存储资源,创建、发布、与回收业务应用等平台管理功能以及元数据管理、数据质量等数据管控功能;平台系统支持DaaS层能力,即支持数据采集、存储(数据湖)、计算以及展现四大部分能力;平台系统支持SaaS层能力,支持数据的分发、共享、探索、以及协作等功能。采集部分支持通过探针、爬虫、ETL手段从数据源将数据录入该平台,从数据类型上看,采集部分支持结构化数据采集与非结构化数据采集;从实效性上看,平台支持实时数据采集、初始化数据采集以及增量数据采集;从业务层面看平台支持业务数据采集与第三方数据采集多个维度。存储部分负责将采集端收集的数据
8、,以及平台内部处理后生成的数据永久性存放。从数据类型上看,平台支持结构化存储、半结构化存储以及非结构化存储;从使用方式上看可以平台支持归档数据存储、批处理数据存储以及在线热数据存储;从业务层面来看平台支持外部数据、子公司业务主数据以及互联网+平台数据存储。计算部分负责对存储区的数据进行操作,平台支持增删改查、分析统计、模糊检索、挖掘预测等功能。从数据类型上看,平台支持结构化数据计算(SQL)与半结构化/非结构化数据计算;而从使用方式上看,平台支持离线计算、在线应用以及实时处理。数据展现层支持开发运维展现与应用展现能力。该平台具有完整的可视化开发运维界面,能够通过图形的方式进行平台的状态与健康监
9、控、性能分析、日志查询、资源管控等运维功能,以及在线开发、调试、部署与诊断功能。平台支持在BI报表,OLAP交互式分析、用户自由查询、交互式挖掘、模糊检索、移动端展示等可视化功能。平台基于云计算、云存储的理念,打造集团“数据即服务”的平台理念,该平台能够使集团将各个子公司、机构与部门的数据有机地结合到一起,能够使用户在该平台中自由地创建、修改、删除计算存储资源,能够有效灵活地访问到其他用户公开的数据,并自由定义自身需要的数据处理逻辑与报表展现方案,并将结果数据进行公开与共享。平台需要能够满足用户自定义数据加工与分析流程,包括:支撑用户与企业画像应用;提供物联网数据分析能力;支撑互联网数据应用;
10、提供非结构化数据处理能力。企业画像应用企业画像应用围绕集团的子公司,整合集团内外部数据从多个维度进行企业画像,增强对子公司的洞察和智能管控。企业画像将围绕企业基本资料、股东信息、股权关系、关联图谱、管理层信息等维度展示,以及结合企业动态、其它动态信息等动态更新。内部数据以从多个集团公司上报的股权结构、财务数据、合同文件等为主,同时结合外部数据服务、互联网爬虫收集的企业相关信息,对企业进行多维度深入分析,构建统一的企业画像系统。应用具备良好的用户体验,提供移动端应用。大数据云服务平台对应用的支撑需求用户与企业画像支撑能力企业用户画像通过内部采集企业自有数据、购买和交换政府等其他外部组织数据、爬取
11、互联网公开数据,并对这些数据进行融合加工,形成企业用户画像的基础数据,为后续企业用户画像深加工奠定基础。企业用户画像的数据源如下图所示:图:企业用户画像数据源通过对数据进行深度加工、数据挖掘、统计分析等操作,企业用户画像构建了企业全景视图,包含企业基本信息、股权信息、风险评估、投资关系、关系图谱、市场动态、行业热点等信息,如下图所示:图:企业用户画像全景视图企业用户画像提供丰富的可视化应用展现,使集团领导和企业用户画像的业务应用部门,得以清晰和直观地了解和分析企业用户的偏好和行为。应用展现提供PC和移动端等多种形式,提供优秀的用户体验效果。可视化应用展现示例如下图所示:图:企业画像PC可视化展
12、现图:企业画像移动终端展现物联网数据分析能力针对当前企业级用户实时数据处理的需求,Hadoop平台产品引入了Spark stream和Storm作为流处理计算引擎,并在其上进行功能增强,搭建了流处理工厂。流数据处理产品提供基于开源流处理框架的底层优化版本,系统管理工具,可视化开发工具。在对开源组件的深入了解及分析的基础上,结合实际项目应用进行了大量的组件优化与重构,从而使组件拥有更加高效的数据处理能力及稳定性。主要特点为:支撑基于多个实时数据流的数据处理。更贴近用户需求,提供预制的数据标签,方便用户业务订制,减少开发工作;支持通过界面配置的方式,对实时数据进行增强与扩展,也可以在使用中央标签库
13、的原有标签的同时,通过对接自定义标签接口,实现个性化数据增强需求,通过界面化配置即可以插件方式注册到流计算平台。 完整的解决方案(包括消息中心、高速缓存等),内置的分布式缓存框架支持海量静态数据分布式缓存,满足动态数据与静态数据的快速交互读写需求。 友好易用的可视化界面,便于用户业务定制和监控运维;数据接入、应用开发可视化:通用可配置的数据源适配器,简化流数据接入及合并,针对不同数据格式的融合及不同数据源的时间延迟优化流数据采集。通过流程化配置,快速实现业务逻辑。丰富的数据订阅方式,通过输出适配,可方便将结果输出至不同应用使用。丰富简单的开发API接口,降低特性业务插件开发难度。在对物联网数据
14、分析时,配置Flume组件作为日志收集工具。在两个接口机器上各启动三个flume agent分别收集三类物联网数据。配置界面如下:图:Flume Agent配置界面Flume收集物联网数据并通过Kafka sink输出给Kafka上的对应topic, 然后Spark Streaming程序从Kafka的topic中获取数据进行分析;然后通过spark命令提交作业监听某类数据的topic;最后, Spark Streaming从topic中获得数据,并将数据写入HBase中三类数据的对应表中。处理过程中三类数据同时传入,配置规则引擎drools,使流处理程序可以对物联网数据中超过80度且湿度大于
15、60%的数据生成告警;流处理程序收到的数据经过规则引擎处理,将告警数据写入HBase中的告警表。在物联网日志数据分析全部过程中,各组件性能指标:图:Flume组件性能指标图:集群CPU指标图:集群磁盘变化互联网数据应用支撑能力爬虫引擎互联网是一个庞大的非结构化的数据库,将数据有效的检索并组织呈现出来有着巨大的应用前景。互联网数据形式丰富,且网络技术不断发展,图片、音频、视频等不同数据大量出现,需要网络爬虫将这些多样化的网页中用户真正关心的内容抓取下来。利用网络爬虫,有效地提取并利用这些信息,将低价值密度的公开数据进行加工,形成自己的数据,可以发现网络趋势、预测商机等。随着企业的不断发展,进入了
16、被数据“追赶”的阶段,越来越多的企业会依赖大数据来提升自身的经营能力。单独一个企业所掌握的数据不足以支撑自有业务分析,通过网络爬虫可整合各方公开的数据,方便各方对数据的利用。网络爬虫是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络爬虫就可以用这个原理把互联网上所有的网页都抓取下来。网络爬虫的目标如下:对互联网海量公开数据获取 对庞大的互联网数据进行有效地提取并利用,将数据进行沉淀和加工形成价值数据,支撑
17、企业建设自己的全网资源库,有着巨大的应用前景。用户互联网行为分析,助力企业精准营销随着人们对互联网的习惯性依赖,使得互联网数据对用户行为的分析尤为重要,通过对用户在互联网海量内容中的选择倾向性分析,挖掘用户上网行为规律,与企业广告策划和营销策略相结合,为企业带来更大的价值。互联网舆情和商情数据捕获,助力企业舆情竞品分析在人人自媒体时代,信息实时化、碎片化明显,通过收集各类新闻、社交、论坛、贴吧、微博等网站信息,进行网络舆情话题发现与追踪,社会不利因素预警监测。实时查询基于云平台,构建实时查询能力,解决海量数据处理的性能瓶颈问题。提供的实时查询能力是开放的,支持Thrift、Java API、H
18、TTP、FTP等多类接口。查询服务对上层业务提供灵活的数据查询,屏蔽下层不同存储处理方式的查询。通过统一的接口让使用者和物理数据源隔离了开来。这使得不同的数据结构或异构的数据存储,都不会对使用者产生不利影响。半/非结构化数据查询:使用OpenApi的形式,通过HTTP协议来查询小批量数据,系统提供高稳定性与低延迟的性能保证。结构化数据查询:使用各种复杂的SQL中聚合分组语法来获取数据,导出XML、JSON等格式数据,适用于稍大数据量的即时分析类查询需求。针对以下数据查询的典型的业务场景分别描述。模型类API对于数据模型表如渠道模型,使用多维API的方式来查询。数据存在关系型数据库或Spark
19、RDD中,通过API接受参数生成过滤SQL返回出二维表格数据。服务请求:以上请求地址:http:/server:port/open/channel/brand=1,2/channel_id,fh,biz服务会把请求参数转换成类似的sql为:select channel_id,fh,biz from channel where brand in (1,2)文件接口服务支持在内外部系统的不同存储间(如Hadoop、DB2、MPP等),进行数据的交换、同步、分发。交互的可以通过接口文件、JDBC等多种方式,适用于需要大量数据交换的场景。针对大批量数据的交互,不适用使用HTTP服务承载,通过调用底层事
20、件服务与分发服务,提交一个异步分发请求,如输入分发脚本、分发目录包装成消息,提交到事件服务,数据导出完成后分发到相应的主机目录在提供的实时查询能力引入phoenix sql解析引擎,并对phoenix进行封装,直接调用封装后接口传入sql语句便可执行sql语句得出结果,无需关注连接细节,同时,我们也将phoenix数据库连接池管理功能封装在OCNoSQL中,用户无需开发连接池功能。sql支持能力,支持大部分常用函数,支持多表union,支持多表join,支持subquery(子查询),支持二级索引JAVA native API接口: public List queryByRowkey(Conn
21、ection conn, String rowkey, List tableNames, Criterion criterion, Map param,List columnFamilies)根据单个rowkey进行多表查询,返回由数据组成的记录。参数说明Connection:HBase连接rowkey:主键tableNames:表名criterion:过滤条件param:额外参数columFamilies:需要查询的列名public List queryByRowkey(Connection conn, String rowkey, List tableNames, Criterion cr
22、iterion, Map param,List columnFamilies)根据多个rowkey进行多表查询,返回由数据组成的记录。参数说明Connection:HBase连接rowkey:多个主键tableNames:多个表名criterion:过滤条件param:额外参数columFamilies:需要查询的列名public List queryByRowkey(Connection conn, String startKey, String stopKey,List tableNames, Criterion criterion, Map param,List columnFamili
23、es)根据starkKey和stopKey进行多表条件查询,返回由数据组成的记录。参数说明Connection:HBase连接startKey:开始主键stopKey:结束主键tableNames:多个表名criterion:过滤条件param:额外参数columFamilies:需要查询的列名JDBC接口:public int excuteNonQuery(String sql)执行更新操作,返回成功条数。参数说明sql:待执行sql语句public void excuteNonQuery(String sqls, int batchSize)执行批量更新操作,返回成功条数。参数说明sql:
24、待执行sql语句batchSize:批量更新阈值,即每更新多少条提交一次public int excuteNonQuery(String sql, Object args)执行批量更新操作,返回成功条数。参数说明sql:待执行sql语句args:sql语句参数值public void excuteNonQuery(String sqls, List args, int batchSize)执行批量更新操作,返回成功条数。参数说明sql:待执行sql语句args:sql语句参数值batchSize:批量更新阈值,即每更新多少条提交一次public ResultSet executeQueryRa
25、w(String sql)执行查询操作,返回标准JDBC ResultSet。参数说明:sql:待执行sql语句public ResultSet executeQueryRaw(String sql, Object args)执行查询操作,返回标准JDBC ResultSet。参数说明:sql:待执行sql语句args:sql语句参数值public ListMap executeQuery(String sql)执行查询操作,返回Map数组。参数说明:sql:待执行sql语句public ListMap executeQuery(String sql, Object args)执行查询操作,返
26、回Map数组。参数说明:sql:待执行sql语句args:sql语句参数值Thrift接口public int excuteNonQueryFir(String sql)执行更新操作,返回成功条数。参数说明sql:待执行sql语句public int excuteNonQuerySec(String sql, List param)执行批量更新操作,返回成功条数。参数说明sql:待执行sql语句param:sql参数值public int excuteNonQueryThr(List sql, int batchSize)执行批量多条sql语句更新操作,返回成功条数。参数说明sql:待执行sq
27、l语句数组batchSize:批量更新阈值,即每更新多少条提交一次public int excuteNonQueryFou(List sql, ListList param, int batchSize)执行批量多条sql语句更新操作,返回成功条数。参数说明sql:待执行sql语句数组param:sql对应参数值batchSize:批量更新阈值,即每更新多少条提交一次public ListMap executeQueryFir(String sql)执行查询操作,返回Map数组。参数说明:sql:待执行sql语句public ListMap executeQuerySec(String sql
28、, List param)执行查询操作,返回Map数组参数说明:sql:待执行sql语句param:sql参数值非结构化数据处理能力文本识别本期集团公有云平台将引入外部非结构化文本数据。集成商应协助对外部行业数据进行梳理,并负责外部数据的采集,建模,加工等工作。文本数据梳理、建模应对外部行业的结构化数据进行梳理,找到与移动数据的耦合点。结合外部行业数据特点进行概念建模、逻辑建模、物理建模。实现外部行业数据的集中存储。文本数据梳理整合外部数据整合数据整合前要检查采集数据的质量,检查合格的数据方可整合。外部数据整合数据整合入库主要包括互联网原始信息数据、互联网门户结构目录数据和标准化相关数据整合入
29、库。整合主要包括:1)通用性整合,具有通用意义的互联网信息的整合,整合时在逻辑上放置到一个表中。2)业务专题整合,基于某个特定业务应用需要整合的互联网信息信息,整合是根据实际需求,放置到同一表中或分表存储。对于整合的处理办法:1)同一区域范围内,多个数据来源,同种互联网信息整合问题。用去重处理,通过在方案时确定优势性最高的数据源为基准数据,以此为基础对其他数据源同种数据进行去重后,进行整合。2)根据互联网信息业务应用集中,需要整合的互联网信息的时效性问题。确定采集时间点来处理整合的时效性问题。数据分类我们对于分类的处理,主要包含互联网信息切词处理,并获取词的长度、词性、属性等信息,对于分类的分
30、析,我们主要是通过规则分类、关键词分析和语义分析三个方面进行处理。语义分析特征模式:语义类一般存在有特别的特征模式。包括组成词的词性,词形式,上下文等都满足一定的规则。利用这种模式就可以做基本的语义判断。各个语义类的处理按照优先级顺序执行,后处理的语义类依赖先处理的语义类的执行结果。当某个词已经被识别为某个语义后,就不会被再识别为其他语义。先处理模式清晰,会给其他语义类带来歧义的语义。这样剥离了大量可能会对复杂语义类造成干扰的因素,简化了其他语义类的处理。例如“三元桥地铁站机场专线”作为地铁出口提取后,“机场专线”就不会再被识别为机场类别。中文分词中文分词主要是对中文信息的自动智能分析,对地理
31、位置信息的处理,主要是将一个汉字序列切分成一个一个单独的词,加快对于地名的识别,以及对于POI分类的精准性。中文分词算法实现分词有以下几个步骤: 1)全切分,原子切分;2)N最短路径的粗切分,根据隐马尔科夫模型和viterbi算法,达到最优路径的规划;3)地名等实体名识别;4)系统词典补充;5)用户自定义词典的补充;6)词性标注。实体名识别,包括人名识别、地名识别、机构名识别,还包括有监督识别和无监督识别。有监督的还好,无监督基本是无解的,比如“上海的自来水来自海上”是“上海”还是“海上”,对于中文分词很重要。分词的颗粒度,可以通过规则来确定,比如“北京大学”是“北京”+“大学”还是“北京大学
32、”,就连同一个人不同时间的标注也有可能是有区别的,对分词结果的评测却有着很大的关系。建立词典,一方面对地理系统的专业词进行补充,一方面采用新词发现的方式,不使用规则,用统计重复串识别新词,根据词性去掉干扰词。添加词性的标注,对于POI分类中,中文的理解,有很大的用处。格式为:自定义词 词性 词频,如:csdn创新院 userDefine 1000,中间用TAB键隔开 原分词结果:csdn, 创新, 院, 是, 一个, 好, 公司 增加词典后:csdn创新院, 是, 一个, 好, 公司文本数据清洗外部数据有效性判断,是对爬虫采集过来的外部数据信息,按照相关规范标准,进行规范化转换,转换成符合规范
33、标准的数据基础、数据格式一致的基础数据。外部数据有效性数据的判断,主要不符合要求的数据主要是有不完整的数据、错误的数据和重复的数据三大类。1)外部数据缺失数据,其特征是一些应该有的互联网数据信息缺失,将这一类数据过滤出来,按缺失的内容,需要进行补全。2)外部数据无效数据,产生原因是互联网的海量数据过多,导致爬虫采集到的数据会产生数值错误格式不规范,可能对互联网信息无效,互联网爬取内容无效。这一类的无效、错误数据,采取修正或删除。3)外部数据重复数据,该数据主要分为两种,基于互联网外部数据爬虫,从各个门户网站爬取下来的信息,包含大量重复信息,初期需要建立较为完善的过滤规则,同时,在数据整合之前,
34、需要对数据进行质量检查。PDF图像识别光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料转换为电子资料。Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生2005年,Tessera
35、ct由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。Tesseract引擎功能强大,概括地可以分为两部分:图片布局分析 字符分割和识别 图片布局分析,是字符识别的准备工作。工作内容:通过一种混合的基于制表位检测的页面布局分析方法,将图像的表格、文本、图片等内容进行区分。字符分割和识别是整个Tesseract的设计目标,工作内容最为复杂。首先是字符切割,Tesseract采用两步走战略:利用字符间的间隔进行粗略的切分,得到大部分的字符,同时也有粘连字符或者错误切分的字符。这里会进行第一次字符识别,通过字符区域类型判定,根据判定结果对比字符
36、库识别字符。 根据识别出来的字符,进行粘连字符的分割,同时把错误分割的字符合并,完成字符的精细切分。全文检索搜索引擎是目前互联网信息服务的主要工具,对于传统意义上的互联网搜索引擎来说,他的资源范围广、面积大,资料全,用户输入一个检索关键词,结果几乎任何类型、任何主题的资源。随着企业信息系统的发展,越来越多的应用系统投入使用,经过多年的运行积累,存储了海量的信息。这些信息存储在相应的应用系统中,当用户在使用这些信息时,需要耗费大量的时间去查找。Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON
37、格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。Solr的体系结构如下图所示:图:Solr体系结构文档通过Http利用XML 加到一个搜索集合中。查询该
38、集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。总体建设方案平台框架设计理念大数据云服务平台整体可分为基础能力、服务管理、应用及工具能力三个层次,基础能力通过通用的服务框架供给出去,让应用和工具无需关心底层细节;服务管理起到承上启下的作用,贯穿基础能力和上层应用及工具;应用框架提供了应用及工具的开发管理、部署和运行服务,通过Docker实现最小化改动和便利部署。功能架构如上图所示,大数据平台功能需
39、包括基础能力服务、服务管理、应用和工具、数据可视化及管控中心五部分内容:基础能力服务包括中间件及数据库等服务和大数据服务两个方面,为满足本期项目需求,中间件及数据库服务包括Tomcat、Kafka、RabbitMQ、Redis、MongoDB、Greenplum、MySQL、Solr、Flume等基础服务,大数据服务包括HDFS、HBase、Hive、Spark、R等基础服务。服务管理包括多集群资源调度管理、服务管理和容器编排管理功能。大数据应用包括企业客户画像应用,工具包括DataHub工具、企业级ETL工具、数据治理工具、自助分析工具、数据探索工具和非结构化数据处理工具。数据可视化包括平台
40、运维可视化、大数据基础存储与计算能力可视化、大数据开发可视化、自助BI可视化、应用与开发管理可视化、数据交换能力可视化及企业画像应用可视化。管控中心功能包括租户管理、资源管理、服务集群管理、计费管理、安全管理和系统管理功能。技术架构从技术上,本期提供的基础服务能力包括Tomcat、Kafka、RabbitMQ、Redis、MongoDB、Greenplum、MySQL、Solr、Flume等,Hadoop基础服务能力包括HDFS、HBase、Hive、Spark、R等。服务管理核心技术包括Mesos(实现多集群资源调度管理)、ServiceBroker(实现基础服务与应用统一的服务管理)、Ku
41、bernetes(实现容器编排管理)。应用与工具都是基于基础服务能力构建起来的:企业客户画像应用:Web中间件采用Tomcat,数据处理能力采用Greenplum和Spark计算框架;DataHub工具:Web中间件采用Tomcat,消息中间件采用Kafka,数据库采用MySQL、Redis和MongoDB;企业级ETL工具:Web中间件采用Tomcat,消息中间件采用Kafka和RebbitMQ,数据库采用MySQL,数据处理采用Hive和Spark;数据采集使用flume;数据治理工具:Web中间件采用Tomcat,数据库采用MySQL;自助分析工具:Web中间件采用Tomcat,数据库采
42、用Greenplum;数据探索工具:Web中间件采用Tomcat,数据库采用MySQL,数据处理采用SparkR;非结构化数据处理工具:Web中间件采用Tomcat,数据库采用MySQL,爬虫采用HttpClient,全文检索采用Solr,图像识别采用OCR tesseract。数据可视化能力采用的核心技术包括HTML5、JQuery、BITools、JFreeChart、Canvas等。管控中心Web中间件采用Tomcat,数据库采用MySQL,Hadoop集中式安全管理框架采用Ranger,Hadoop统一运维监控告警采用Ambari。产品覆盖综述产品可完整覆盖上述功能架构:大数据平台整体
43、框架采用云服务平台产品,Hadoop平台采用Hadoop平台产品,企业客户画像采用企业画像产品,DataHub工具采用DataHub产品,企业级ETL工具采用ETL产品,数据治理工具采用治理产品,自助分析工具采用自助分析产品,数据探索工具采用探索产品,非结构化数据处理工具采用非结构化数据处理产品,包括爬虫工具、图像识别工具和全文检索工具。数据分布架构大数据平台数据分布架构如上图所示:接口机:承担数据采集的功能,内部渠道数据包括合同文件、股东信息、物联网数据等,外部数据包括工商数据、法务数据、运营商数据等,通过接口机进入HDFS文件系统;文件系统HDFS:存放企业合同附件(PDF),股东信息、企
44、业关系、法务信息、工商税务信息、数据交换信息等在HDFS上加工处理后入到HBase、Redis数据库中;HBase:存放企业股东信息、企业关系等相关数据;外部数据(包括工商税务及外部爬取的相关数据);物联网相关数据;Greenplum:存放在线汇总数据(如未来接入的物联网数据二次汇总数据);Redis:存放爬虫引擎所需的实例库及DataHub的数据信息;MySQL:平台配置信息库。关键技术说明云服务平台应用封装工具Docker是一种容器技术,和Hypervisor(KVM/Xen这类)不同的是,Docker不会提供一整个操作系统,他能提供隔离的程序运行环境。对一个应用来说这已经够了。 作为一个
45、开源的应用容器引擎,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 机器上,与KVM这类超级底层虚拟化方案相比,Docker是一种轻量级虚拟化方案,他不需要对内核进行改变,他主要利用linux内核特性实现虚拟化,所有容器运行在同一个内核中。另外,docker还可以部署在KVM/XEN这类虚拟机中!容器与虚拟机对比如下图。Docker使用客户端-服务器(client-server)架构模式。Docker客户端会与Docker守护进程进行通信。Docker守护 进程会处理复杂繁重的任务,例如建立、运行、发布你的Docker容器。Docker客
46、户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker客户端去连接一个远程的Docker守护进程。Docker客户端和守护进程之间通过socket或者RESTful API进行通信。Docker主要有三个重要模块:镜像、仓库和容器镜像(Image):Docker镜像是一个只读的模板。举个例子,一个镜像可以包含一个运行在Apache上的Web应用和其使用的ubuntu操作系统。镜像是用来创建容器的。Docker提供了简单的,你也可以下载别人已经创建好的镜像。仓库(Image) :Docker仓库用来保存镜像。其相当于一个代码仓库,同样的,Docker仓库也有公有和私有的概念。公有的
47、Docker仓库名字是Docker Hub。也可以自己创建仓库。容器(Container):一个Docker容器包含了某个应用运行所有的所需要的环境。每一个Docker容器都是从Docker镜像创建 的。Docker容器可以运行、开始、停止、移动和删除、保存为镜像。每一个Docker容器都是独立和安全的应用平台。Docker内部采用Linux的命名空间机制实现隔离性,采用cgroup实现资源的划分。我们主要用Docker来做分布式环境下的进程管理。Docker工作流如图7所示,我们不仅把Docker应用到生产阶段,也应用到开发阶段,所以我们每天编辑Dockerfile,提升Docker Ima
48、ges,测试上线,发Docker镜像,在我们内部私有Docker regis里面,再调到我们Docker集群生产环境里面,这和其他的Docker工作流没有什么区别。应用的Docker化,可以推动应用与平台分离、应用与服务分离、应用与数据分离,给应用的开发、生产和运维带来很大的变化:1、Docker化给应用带来了一种全新的轻量级虚拟化体验。同样是虚拟化,Docker相对虚拟机最大的优点是复用了宿主机的操作系统,使得Docker的运行和镜像的存储节省了大量存储和计算资源,使得应用在性能和灵活性方面得到很大的改善。2、采用Docker封装的方式进行应用交付,其封装内容不仅包括程序也包括相关的参数、配
49、置和环境设置。这种带环境的交付方式真正实现了开发运维环境的统一,避免了因为环境不同带来相关组件和程序在开发、测试、生产环境中的反复部署。不仅降低由此带来的额外工作量,同时也避免了环境差异可能造成的各种差错。这种封装使得应用的部署和运维简单到只需关注地址分配和依赖关系,使得应用的自动化运维成为可能。3、Docker化交付缩短了应用开发、测试和上线的时间,原本以周和月为单位的程序开发、测试和生产环境的准备时间,现在可以以小时和天来计算。同时,我们辅以应用的灰度发布和在线升级技术,大大加快应用迭代速度,通过开发与运维的一体化能力,更好的支撑业务层面的敏捷化要求。4、Docker容器与集群管理技术相结
50、合不仅实现整个应用集群的资源高效利用,同时实现资源的按需分配和水平方向的自动和手动的扩展和收缩。例如:当业务进入峰值时期,我们可以设置策略,比如CPU或内存超过90%集群自动进行扩展30%。峰值过后,应用集群可以根据策略实现自动化缩容,把空闲的资源交还给资源池,使得其他的应用能够有足够的资源使用。这种自动化扩展和收缩对业务是透明的,只要资源池里的资源足够业务永远不可能出现性能瓶颈问题。5、通过应用与平台分离、应用与服务分离,实现应用与平台的合理分工。平台可以聚焦和改善资源和服务的供给、安全及稳定问题,例如:自动化的实现数据库、中间件等服务的部署、配置、开通和故障处置;自动化的实现应用部署、资源
51、分配、运行监控、故障恢复;动态监控业务负荷的变化自动实现应用的扩缩容等。分布式集群管理工具Kubernetes是Google推出的开源容器集群管理系统,基于Docker构建一个容器调度服务,为容器化的应用提供资源调度、部署运行、均衡容灾、服务注册、扩容缩容等功能,其本质上可看作是基于容器技术的mini-PaaS平台,提取PaaS中的业务编排和管理模块而形成的。部署容器的过程中最大化利用资源是十分重要的,Docker和Kubernetes组合就可以完美的实现这一点。Kubernetes以RESTFul形式开放接口,用户可操作最基本的REST对象有三个:Pod、Service和Replicatio
52、nController。pod:是Kubernetes最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例。比如一个web站点应用由前端、后端及数据库构建而成,这三个组件将运行在各自的容器中,那么我们可以创建包含三个container的pod。service:是pod的路由代理抽象,用于解决pod之间的服务发现问题。因为pod的运行状态可动态变化(比如切换机器了、缩容过程中被终止了等),所以访问端不能以写死IP的方式去访问该pod提供的服务。service的引入旨在保证pod的动态变化对访问端透明,访问端只需要知道service的地址,由service来提供代理。re
53、plicationController:是pod的复制抽象,用于解决pod的扩容缩容问题。通常,分布式应用为了性能或高可用性的考虑,需要复制多份资源,并且根据负载情况动态伸缩。通过replicationController,我们可以指定一个应用需要几份复制,Kubernetes将为每份复制创建一个pod,并且保证实际运行pod数量总是与该复制数量相等(例如,当前某个pod宕机时,自动创建新的pod来替换)。Kubernetes的优点是可以通过定义一个Replicationcontroller来将同一个模块部署到任意多个容器中,并且由Kubernetes自动管理。比如定义了一个Apache Po
54、d,通过Replicationcontroller设置启动100个Replicas,系统就会在Pod创建后自动在所有可用的Minions中启动100个Apache Container。并且轻松的是,当Container或者是所在的服务器不可用时,Kubernetes会自动通过启动新的Container来保持100个总数不变,这样管理一个大型系统变得轻松和简单。Master运行三个组件:apiserver:作为kubernetes系统的入口,封装了核心对象的增删改查操作,以RESTFul接口方式提供给外部客户和内部组件调用。它维护的REST对象将持久化到etcd(一个分布式强一致性的key/va
55、lue存储)。scheduler:负责集群的资源调度,为新建的pod分配机器。这部分工作分出来变成一个组件,意味着可以很方便地替换成其他的调度器。controller-manager:负责执行各种控制器,目前有两类:endpoint-controller:定期关联service和pod(关联信息由endpoint对象维护),保证service到pod的映射总是最新的。replication-controller:定期关联replicationController和pod,保证replicationController定义的复制数量与实际运行pod的数量总是一致的。Slave(称作minion)
56、运行两个组件:kubelet:负责管控docker容器,如启动/停止、监控运行状态等。它会定期从etcd获取分配到本机的pod,并根据pod信息启动或停止相应的容器。同时,它也会接收apiserver的HTTP请求,汇报pod的运行状态。proxy:负责为pod提供代理。它会定期从etcd获取所有的service,并根据service信息创建代理。当某个客户pod要访问其他pod时,访问请求会经过本机proxy做转发。下面分别从它们的对象创建出发,通过时序图来描述Kubernetes各个组件之间的交互及其工作流。Kubernetes和Docker可以运行在物理机上,也可以运行在虚拟机上。提供P
57、ass支撑,对项目的开发、测试、实施运行、运维都提供极大的便利,是目前最先进的技术,在国内外得到较多的采用,如google、阿里等。Kubernetes和Docker支持集群服务,自动负载均衡和提供高可靠的稳定服务。实例的注册与发现服务发现可以让一个服务实例发现其运行环境以及其它服务实例的信息。它通常采用分布式key-value的存储方式,它也用来作为查询配置细节信息。通过服务发现工具可以将Docker实例与运行的配置分离,使得用户就可以在一个集群中使用同一镜像运行多个实例以构建分布式应用。服务注册与发现服务发现的基本思想是任何一个应用的实例能够以编程的方式获取当前环境的细节。这是为了让新的实
58、例可以嵌入到现有的应用环境而不需要人工干预。服务发现工具通常是用全局可访问的存储信息注册表来实现,它存储了当前正在运行的实例或者服务的信息。虽然服务发现平台的初衷是提供连接信息来连接不同组件的,但是它们更普遍地是用来存储任何类型的配置信息。许多部署工具通过写入它们的配置信息给发现工具来实现这个特性。如果容器配置了这些,它们就可以去查询这些预配置信息,并根据这些信息来调整自身行为。服务发现的机制每一个服务发现工具都会提供一套API,使得组件可以用其来设置或搜索数据。正是如此,对于每一个组件,服务发现的地址要么硬编码到程序或容器内部,要么在运行时以参数形式提供。通常来说,发现服务用键值对形式实现,
59、采用标准HTTP协议交互。服务发现门户的工作方式是:当每一个服务启动上线之后,他们通过发现工具来注册自身信息。它记录了一个相关组件若想使用某服务时的全部必要信息。例如,一个Docker启动后会在注册它运行的IP、端口等信息。当服务消费者(有依赖关系的节点)上线时,它能够通过服务发现机制查询到该Docker的配置信息,然后基于查到的信息与其需要的Docker进行交互。服务发现机制可以让容器的部署、变更更加灵活,不受限于特定的配置信息,同时容器与容器之间交互时变得简单,可以动态进行调整配置。全局配置存储在Docker部署中,分布式键值对存储其中一个功能是对集群成员的存储和管理。配置存储是为了追踪D
60、ocker集群宿主机成员变更和管理工具的最好环境。这些信息是:宿主机的IP地址宿主机自身的链接信息跟调度信息有关的标签或元数据信息集群中的角色(如果是采用了主从模式的集群)在正常情况下,使用一个服务发现平台时,这些细节可能不是你需要考虑的。但是他们为管理工具提供了一个可以查询或修改集群自身信息的地方。故障检测机制故障检测的实现方式也有很多种。需要考虑的是如果一个Docker出现故障,服务发现能否更新状态指出该Docker不再提供服务。这种信息是至关重要的,关系到将应用或服务故障可能性降到最低。许多服务发现平台允许赋值时带一个可配置的超时时间。服务可以设置一个超时时间,并能定期去请求服务发现来重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《时空会客厅》节目方案
- 安质部管理制度
- 公共厕所保洁制度
- 2024年道路客运从业资格证模拟考试下载
- 2024年吉林客运驾驶员考试虚拟场景考试题目
- 2024年哈尔滨客运从业资格证题库
- 吉首大学《风景建筑速写》2021-2022学年第一学期期末试卷
- 《机械设计基础》期末考试试卷六
- 广东省公务员考试2021-2020申论真题(附答案)
- 吉林艺术学院《数字空间设计表现》2021-2022学年第一学期期末试卷
- 超星尔雅学习通走近核科学技术章节测试答案
- 初中艺术鄂教七年级上册(2022年新编) 漫步艺术长廊舞剧欣赏《永不消逝的电波》教学设计
- 水电厂检修标准化作业流程图
- 中考数学复习专题课件:瓜豆原理之直线型
- GB 18384-2020 电动汽车安全要求
- 腹股沟斜疝护理查房ppt
- 精品堆垛机安装指导书
- PMC生产计划与物料控制实务课件
- 鸡的饲养管理-优质课件
- 人工湿地设计规范标准[详]
- 提灌站项目施工组织设计
评论
0/150
提交评论