大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和 .... 继承了其他分布式系统的优良基因,并且加以改良和扩充。

注脚

1.大数据关键技术介绍

2.董锐 rdong@ctrip.com 基础业务研发 - 大数据部门 大数据产品研发 Team 技术栈 :搜索, 高 可用系统服务, 大数据平台,推荐系统 自我介绍

3.目录

4.大 数据 Volume 数据规模大 Variety 数据种类多 Velocity 数据要求处理速度快 Value 数据价值密度低 4V 大数据概念 “大数据”是需要新处理模式才能具有更强的 决策力 、 洞察 发现力和流程优化能力来适应海量、高增长率和多样化的信息 资产 。 [1]  

5.大数据关键技术 数据来源 数据存储 ( 读取 ) 数据处理 数据应用 哪来 放哪 怎么变成钱 怎么花 大数据的关注点

6.数据采集: ETL 抽取,应用埋点,数据同步等。 数据存取: 关系数据库、 DFS 、 NOSQL 等 。 基础架构: 调度系统,数据血缘,数据安全等。 数据处理: 批量,流式,实时, Hadoop,Spark,Strom 统计分析: 回归分析、多元对应分析(最优尺度分析)、 bootstrap 技术 等等。 数据挖掘: 分类 ( Classification )、估计( Estimation )、预测 ( Prediction )、相关性分组或关联规则( Affinity grouping or association rules )、聚类( Clustering )、描述和可视化、 Description and Visualization )、复杂数据类型挖掘 (Text, Web , 图形图像,视频,音频等 ) 模型预测: 预测模型、机器学习、建模仿真。 结果呈现: 云计算、标签云、关系图等。 大数据处理流程

7.Spark Streaming & Spark 数据流向图

8.HDFS ( 分布式文件系统 ) HBase (分布式数据库) YARN (分布式计算框架) MapReduce (离线计算) Spark (内存计算) Spark SQL MLLib kafka Hive Cascading Pig Storm Sqoop ( 数据库 ETL 工具 ) ZooKeeper (分布式协调服务) Manager -Portal ( 权限管理,资源分配,作业调度等 ) Flume ( 日志收集 ) Shark Application ( 应用层 ) Redis (分布式缓存) 大 数据技术架构

9.HDFS ( 分布式文件系统 ) HDFS 源自于 Google 发表于 2003 年 10 月的 GFS 论文,是 GFS 的克隆版。 良好的扩展性 高容错性 适合 PB 级以上海量数据的存储 Yarn ( 资源管理系统 ) 负责集群的资源管理和调度 支持多种计算框架 多租户共享资源 MapReduce ( 资源管理系统 ) MapReduce 源自于 Google 发表于 2004 年 12 月的 MapReduce 论文 , 是 Google MapReduce 克隆版 高容错性 适合 PB 级以上海量数据的处理 大 数据关键技术 -Hadoop

10.Namenodes & Datanodes Blocks ( 64 MB ,replication 3 by default ) Client ( cmd , java api , Thrift ) RPC Editlog (open ,update ,delete etc..) FsImage (block-file mapping, file attribute) M/S/C Model M : Namenode S : Datanode C : Client Hadoop - HDFS (分布式文件系统 )

11.RPC ,即 Remote Procdure Call ,中文名: 远程过程调用, 在 OSI 网络通信模型中, RPC 跨越了传输层和应用层,易用于开发分布式系统程序。 Hadoop RPC :   ( 1 )序列化层: Clent 与 Server 端通信传递的信息采用了 Hadoop 里提供的序列化类或自定义的 Writable 类型;   ( 2 )函数调用层: Hadoop RPC 通过动态代理以及 java 反射实现函数调用;   ( 3 )网络传输层: Hadoop RPC 采用了基于 TCP/IP 的 socket 机制;   ( 4 )服务器端框架层: RPC Server 利用 java NIO 以及采用了事件驱动的 I/O 模型,提高 RPC Server 的并发处理能力; Hadoop - RPC

12.1 ,打开要读的文件。 2 ,与 namenode 通信( RPC ) , 获取第一批 BLOCK 的地址。 3 , NameNode 会计算 block 所在位置与客户端的距离,返回最近的。 4 ,客户端直接与 datanodes 通信,追步完成所有 block 读取。 5 ,关闭文件。 HDFS – 读

13.1 ,创建一个新文件或追加已存在文件。 2 ,与 namenode 通信( RPC ) , 由 namenode 按照一定的策略来分配具体写入的 datanodes 。 3 ,如果设置有多个副本,会循序写入。 4 ,关闭文件。 HDFS – 写

14. 一种分布式计算的模型的框架,解决海量数据的计算问题。 两个函数(阶段): Map : 对一些独立元素组成的列表的每一个元素进行指定的操作,可以高度并行。 Reduce :对一个列表的元素组进行合并。 Hadoop - MapReduce

15.Hbase 是建立的 hdfs 之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统 (参考 google bigtable )。   大 数据关键技术 - HBase

16. 一个表可以有上亿行,上百万列 可以只对一行上“锁” 对行的写操作是始终是“原子”的 面向列 : 面向列 ( 族 ) 的存储和权限控制,列 ( 族 ) 独立检索。 稀疏 : 对于为空 (null) 的列,并不占用存储空间,因此,表可以设计的非常稀疏。 HBase - HTable

17.region 按大小分割的,每个表一开始只有一个 region ,随着数据不断插入表, region 不断增大,当增大到一个阀值的时候, Hregion 就会等分会两个新的 Hregion 。当 table 中的行不断增多,就会有越来越多的 Hregion 。 Table 在行的方向上分割为多个 Hregion HBase - HTable

18. HRegion 是 Hbase 中分布式存储和负载均衡的最小单元。最小单元就表示不同的 Hregion 可以分布在不同的 HRegion server 上。但一个 Hregion 是不会拆分到多个 server 上的。 HBase - HTable

19.region 由 [ startkey,endkey ) 表示,不同的 region 会被 Master 分配给相应的 RegionServer 进行管理 : HBase - HRegion

20.HRegion 虽然是分布式存储的最小单元,但并不是存储的最小单元。 事实上, HRegion 由一个或者多个 Store 组成,每个 store 保存一个 columns family 。 每个 Strore 又由一个 memStore 和 0 至多个 StoreFile 组成。如图: StoreFile 以 HFile 格式保存在 HDFS 上。 HBase - HRegion

21.HRegionServer 主要负责响应用户 I/O 请求,向 HDFS 文件系统中读写数据,是 HBase 中最核心的模块 。 HBase - HRegionServer

22.HMaster 在功能上主要负责 Table 和 Region 的管理工作: 1. 管理用户对 Table 的增、删、改、查操作 2. 管理 HRegionServer 的负载均衡,调整 Region 分布 3. 在 Region Split 后,负责新 Region 的分配 4. 在 HRegionServer 停机后,负责失效 HRegionServer 上的 Regions 迁移 HBase - HMaster

23.Spark Hadoop Spark 是一个快速,通用的分布式内存计算平台。 快速 基于内存,比 Mapreduce 快 10-20 倍。 通用 继承了其他分布式系统的优良基因,并且 加以改良和扩充。 (批处理,迭代计算,交互式查询,流处理) 开放 支持 python, Java , Scala , Sql 执行引擎和丰富的算法库,并且可以与 Hadoop 集成。 Yarn HDFS Core Sql streming MLib GraphX 大 数据关键技术 – Spark

24.Spark Core : 任务调度,内存管理,容错机制,故障转移等。 RDDs ( Resillient distributed datasets , 弹性分布式数据集 ) 。 RDDs 可以对比 Hadoop Block ,可被并行处理。 Spark SQL : 主要用于结构化数据处理和对 Spark 数据执行类 SQL 的查询。通过 Spark SQL ,可以针对不同格式的数据执行 ETL 操作(如 JSON , Parquet ,数据库)然后完成特定的查询操作。 Spark Streaming : 流失处理(小批量),对比 Strom ,但比实时性差,秒级延迟。 Mllib : 通用机器学习算法包(分类,聚类,回归,协同过滤,模型评估等) Graphx : 图计算库,和 Spark streaming , Spark Sql 同样都是基于 Spark 核心 api 进一步扩展。 大 数据关键技术 – Spark

25.Muise 是什么? Muise ,取自希腊神话的文艺女神缪斯之名,是携程的实时数据分析和处理的平台; 它底层基于开源的消息队列 Kafka 和开源的实时处理系统 Storm ,能够支持 秒级,甚至是毫秒级延迟的流式数据处理 。 数据接入 :使用 Hermes Producer API 将数据写入 Kafka 的 Topic 中 数据处理 :使用 Muise Storm API 从 Kafka 的 Topic 实时读取数据,使用 Storm 提供的实时数据处理的方式处理数据 数据管理 : Portal 提供对于 Kafka Topic 和 Storm 作业的管理 监控和告警 :使用 Storm 提供的 Metrics 框架,支持自定义的 metrics ; metrics 信息中心化管理,接入 Ops 的监控和告警系统,提供全面的监控和告警支持 Muise 的功能 大 数据关键技术 – 携程 Muise

26.Infrastructure API Service Storm Cluster Kafka Cluster Dashboard Graphite CAT Hermes Producer API Hermes Consumer API Muise Storm API Hermes Kafka Service Muise Storm Service Muise Portal 携 程 Muise – 基础架构

27.携 程 Muise – 数据流程

28.携 程 Muise – 作业管理

29.携 程 Muise – 应用

30.The End Thanks!

31.携 程大数据系统实践

32.何蜀波 hesb@ctrip.com 基础业务研发 - 大数据部门 大数据 产品 分析 Team 负责: 用户画像,用户行为,站外 广告,ABtest 自我介绍

33.何蜀波 hesb@ctrip.com 基础业务研发 - 大数据部门 大数据 产品 分析 Team 负责: 用户画像,用户行为,站外 广告,ABtest 自我介绍

34.用户行为系统 用户画像系统 用户推荐系统 携 程大数据应用系统

35.用户在网站上的浏览,排序,搜索,筛选,收藏,下单等行为 什么 是用户行为

36.每天 处理 20 亿 条 左右 的数据 量 数据 从上线到可用的时间在 300 毫秒 左右 查询 服务每天 服务 亿级 的 请求 平均 延迟在 6 毫秒左右 携程实时用户行为 系统

37.携 程实时用户行为 系统

38.storm 具有强大的 scale out 能力。只要通过后台修改 worker 数量参数,并重启 topology ( storm 的任务名称),可以马上扩展计算能力,方便应对突发的流量洪峰 。 对 消息的处理 storm 支持多种数据保证策略, at least once , at most once , exactly once 。对实时用户行为来说,首先是保证数据尽可能少丢失,另外要支持包括重试和降级的多种数据处理策略,并不能发挥 exactly once 的优势,反而会因为事务支持降低性能,所以实时用户行为系统采用的 at least once 的策略。 利用 storm 解决 流量洪峰

39.高 可用 - 系统降级

40.兆级记录条数 支持秒级查询 覆盖 10 亿级用户 携程用户画像系统

41.用户画像整体架构

42.用户画像组件

43.用户画像离线标签 更新

44.用户画像离线标签 更新

45.用户 画像实时标签更新

46.实时 标签更新实例

47.用户 画像使用实例

48.千人千面 用户画像提供了针对不同人的精准营销可能性 场景整合 OI 及 PI 系统提供了跨 bu 的场景整合方案 实时 解决推荐总是慢一拍的问题 用户 推荐系统

49.聚合 规则 Client 应用服务 消息队列( MQ ) 分拣过滤 …… 数据清洗 实时意图 实时统计 实时特征 Hbase 收藏 搜索 反馈 订单 点击 … 产品相似算法 产品画像 用户画像 ….. Redis 在线 近线 离线 行为数据 Storm 在线排序 Nosql 产品相关算法 目的地相关算法 数据访问模块 选品库 ElasticSearch 用户意图 浏览历史 相似相关 推荐策略 业务规则 场景规则 上下文情境 可订 检查 用户画像 业务规则 算法融合 排序模型 在线存储 算法 job 实时监控 自动降级响应 ABtest 配置 算法配置 业务指标实时报表 用户 推荐系统

50.HIVE/MR 用户行为 订单数据 反馈数据 … Mahout/Spark Hbase ( Redis ) 数据源 预处理阶段 数据挖掘阶段 结果导入存储 预处理 : 进行数据过滤,整理等工作。 数据挖掘: 相关算法(逻辑回归,贝叶斯, SVM , CF .. )。 结果导入存储: 通过配置化工具将结果导入到 HBASE+Redis (全量 / 增量)以及建立 ES 索引。 Zeus 调度 ES 离线 计算 - 处理流程

51.浏览 搜索 购买 反馈 用户行为特征 用户画像 订单信息 情景 模型 算法 意图引擎 ( 规则 ) 意图 1 意图 2 场景 用户行为 离线输入 意图示例: 用户想去哪儿 ? ( 出行目的地预测 ) 用户去这儿做什么? ( 出差 / 旅游 / 其它 /…) 出行人群类型? ( 亲子 / 家人 / 爸妈 / 朋友 / 情侣 / 同事 ….) 出游主题? ( 海岛 / 温泉 / 专业滑雪 / 徒步 .) 什么时候去?计划什么时候回来? ( 出行时间预测 ) … 预处理 近 线计算 - 用户意图

52.User Behavior Trace Order Trace Spout Order Spout Trace Bolt Order Bolt UVMap Bolt Trace2Preference Bolt Order2Preference Bolt Intention Bolt Redis HBase Hermes Topic Muise (Storm) Storage 推荐场景下的流式计算 —— 实时意图 架构及实现

53.实时 ETL 行为数据和订单数据的信息抽取 数据过滤 数据 Join 数据转化 User Behavior Trace Order Trace Spout Order Spout Trace Bolt Order Bolt UVMap Bolt Trace2Preference Bolt Order2Preference Bolt Intention Bolt Redis HBase 推荐场景下的流式计算 —— 实时意图

54.实时跨设备平台 更新 UID 与 设备的关系 更新设备与 UID 的关系 User Behavior Trace Order Trace Spout Order Spout Trace Bolt Order Bolt UVMap Bolt Trace2Preference Bolt Order2Preference Bolt Intention Bolt Redis HBase 推荐场景下的流式计算 —— 实时意图

55.实时计算用户行为特征 基于滑动时间窗的行为特征 基于牛顿冷却定律的时间衰减 噪声数据剔除 更新用户 context 信息(订单,经纬度) User Behavior Trace Order Trace Spout Order Spout Trace Bolt Order Bolt UVMap Bolt Trace2Preference Bolt Order2Preference Bolt Intention Bolt Redis HBase 推荐场景下的流式计算 —— 实时意图

56.实时计算用户意图 基于马尔科夫预测模型的 cross-selling , up-selling 基于 LBS 的推荐 基于行程状态的推荐 规则引擎 订单反向推荐 常驻 地推荐 User Behavior Trace Order Trace Spout Order Spout Trace Bolt Order Bolt UVMap Bolt Trace2Preference Bolt Order2Preference Bolt Intention Bolt Redis HBase 推荐场景下的流式计算 —— 实时意图

57.HBASE Redis 请求 用于缓存热点 全量数据 存储 —Redis 缓存

58. 根据用户的 feature 和产品的 feature 提供统一的选品查询接口。 提供复杂排序功能,如按照地理信息排序,按照命中率排序。 ElasticSearch 产品信息 用户产品 rating 产品 id 产品 ID 产品类型 Topic 行程天数 … UV 数 评论数 订单数 产品等级 … 格式化 统计 评分 格式化 数据管理工具 全量 / 增量 索引实例 索引管理 存储 —ElasticSearch

user picture
  • 励志师---★
  • Apparently, this user prefers to keep an air of mystery about them.

相关Slides

  • 大规模实践基于Docker的MySQL私有云平台。集成高可用、快速部署、自动化备份、性能监控、故障分析、过载保护、扩容缩容等多项自动化运维功能。数据库高可用是不容忽视的,在Docker容器分配时如何保障主从不在同一宿主机上呢?我们通过自研Docker容器调度平台,自定义Docker容器的分配算法。实现了MySQL的高密度、隔离化、高可用化部署。同时结合我们自研的数据库中间件,支持了分片集群及无感知的高可用切换功能。截止目前平台支撑了目前总量90%以上的MySQL服务(实际数量超过2000个),资源利用率提升30倍,数据库交付能力提升70倍。并且经受住了十一黄金周、春节票务业务高峰期的考验。未来将致力于数据库自动化向智能化的推进。

  • 在云时代的今天,企业数据库面临着复杂的选择,数据库异构迁移往往达不到预期效果,樊文凯想大家分享了ADAM数据库和应⽤用迁移(Advanced Database & ApplicationMigration, 以下简称ADAM),ADAM是阿里云结合阿里巴巴多年年内部业务系统数据库和应⽤用异构迁移的经验(去IOE),⾃自主研发的、迁移ORACLE数据库和应⽤用⾄至阿⾥里里云相关云产品的专业产品,分享了ADAMA的结构、高性能、数据库割接、智能分析、所用的生态工具等,典型的数据库中出现的痛点。

  • 主要介绍阿里云MongoDB服务使用上的一些最佳实践,以及对MongoDB的部署、参数调优

  • Lindorm 是新一代面向在线海量数据处理的分布式数据库,阿里的技术专家通过分享这些多种场景下的数据存储技术实践,帮助企业更好地理解各种数据存储技术的特点,针对自己的业务发展对数据存储技术进行选择和组合。