• 1. 基于Hadoop生态技术构建阿里搜索离线系统阿里巴巴一淘及搜索技术部——任春德/瓦力
  • 2. 个人简介任春德,花名瓦力 阿里巴巴一淘及搜索事业部 曾就职于阿里集团雅虎中国、阿里云、淘宝子公司,关注于Hadoop及其生态圈、云计算相关技术 Mail: chdren@gmail.com
  • 3. 目录阿里搜索业务简介 搜索技术体系 搜索离线系统 实时计算方案 集群优化与管理 展望未来
  • 4. 阿里搜索业务简介
  • 5. 搜索技术体系算法排序搜索引擎离线系统(计算+存储)数据获取
  • 6. 目录阿里搜索业务简介 搜索技术体系 搜索离线系统 实时计算方案 集群优化与管理 展望未来
  • 7. 离线系统—架构HDFSHBaseYARNZookeeperHistoryServer & HStatsPhoenix (SQL)OpenTSDB (metrics)MapReduce (Batch)iStream (Streaming)Hive (SQL)Ganglia & MonitorOtherHQueue (Queue)Application Framework
  • 8. 离线系统—集群概况发展主要阶段1.x2010.08 Hadoop-0.20.2+HBase-0.20.51.x~2.x2012.12 HDFS-2.0 + MR-1 + HBase-0.922013.07 MR-1 + iStream on YARN + HQueue2.x2013.08 YARN(MR + iStream) + HBase-0.94.102014.08 Hadoop-2.4 + HBase-0.98
  • 9. 离线系统—集群概况集群规模:1k+ nodes(Hadop/HBase) 数据规模: 数十亿全网商品数据 数百亿全网电商网页 每日更新数十亿商品和网页 数据处理: 4w+ Apps(MR,Hive,iStream,…) On YARN / Day 商品数据已实现秒极更新
  • 10. 离线系统—数据流程搜索引擎抓取系统阿里云存储商品数据库离线处理MapReduceiStream实时增量全量&增量HBaseHQueueWebQueryStatsiStream业务逻辑 辅表Join 字段Merge
  • 11. 目录阿里搜索业务简介 搜索技术体系 搜索离线系统 实时计算方案 集群优化与管理 展望未来
  • 12. 实时计算方案阿里搜索统一的实时计算方案 实时数据同步 实时商品处理 实时个性化推荐 技术方案: 流式计算模型:iStream 消息队列:HQueue
  • 13. 实时计算方案 - iStreamiStream TopologyStream SourceStream RoleStream SourceStream RoleStream RoleStream Sink/SourceStream Sink/SourceStream SinkStream Role
  • 14. 实时计算方案- iStream主要特点 运行在YARN上:可与MapReduce等计算模型统一调度管理 消息队列可插件化 数据Locality,计算靠近数据 弹性调度,根据进度动态调整worker数量 动态负载均衡,动态调整Worker的位置 自动Failover,checkpoint,无数据丢失 Metrics可同步到OpenTSDB
  • 15. Stream Source实时计算方案- iStreamsplitsplitsplit RoleWorkerWorkerApplicationMasterStream SinkPartitionPartitionWorkerZookeeper
  • 16. 实时计算方案-HQueueHQueue:分布式消息队列 KeyValue Schema特殊设计 利用HBase Coprocessor开发 基于HBase Client定制HQueue Client 仿照HBase开发HQueue部署和管理工具 主要特点 消息持久化存储,不丢失(MemStore+HFile+HLog) 消息支持TTL设定,自动清理过期消息 消息支持Pull和Subscription两种模式 服务支持自动Failover 可复用HBase集群,无需异构硬件
  • 17. 实时计算方案-HQueue
  • 18. 实时计算方案—对比iStreamStormSpark Streaming消息HQueue,多流程复用消息 Pull/Subscription micro-seconds CheckPoint(Zk) 不支持事务 ZeroMQ Tuple/BatchTuple sub second Ack Task/Coordinator Task TransactionalTopologyBuilder mini batches seconds 保证处理1次计算API:Java&other Locality 基于Message时间进度管理、报警 对计算资源数量进行动态调整 Java&other 无 人工调整worker processor和executor的个数Java&scala 无
  • 19. 目录阿里搜索业务简介 搜索技术体系 搜索离线系统 实时计算方案 集群优化与管理 展望未来
  • 20. 集群优化与管理面临的挑战 存储(HBase)和计算(YARN)共用集群 集群资源有限 集群优化难题 牵一发动全身 全面的衡量指标 高吞吐(Job)和低延迟(实时)的平衡 优化和改进 YARN Resource Scheduler slave node上的计算资源的隔离 HBase的读写限流
  • 21. 集群优化与管理YARN ResourceManager Scheduler 存在问题: 业务线优先级 集群计算资源利用率和调度延时的平衡 MR大Job和实时iStream之间资源竞争 改进: 基于FairScheduler扩展,fix部分bug 按照业务线层级配置queue 按照业务线(queue.weight)的抢占(Preemption)规则 按照App Priority在queue内部优先分配资源
  • 22. 集群优化与管理Slave Node计算资源的隔离 rootgroup: DataNode group: RegionServergroup: NodeManagergroup: container1......group: containerNgroup: others cgroups system: cpu, blkio, net_priocpu.share blkio.weightcpu.share: vcore memory monitor process user: yarn
  • 23. 集群优化与管理集群管理 多业务线,多种计算类型,大量的计算任务 系统metrics和ganglia的局限 应用指标的监控 系统优化效果的全面评估 外围系统 NewHistoryServer HStats OpenTSDB
  • 24. 集群优化与管理MapReduce HistoryServer问题 只支持单一App类型MR 只支持简单查询条件 只支持有限的数据量 性能较差 NewHistoryServer主要特点 兼容社区版本 不同类型的application历史信息查询 多种查询条件,id、queue、user、开始结束时间等及其组合 大数据量,查询信息: app配置,task metrics、log,资源消耗 性能优化: cache,服务器端按条件查询和过滤
  • 25. 集群优化与管理NewHistoryServer HStatsHistoryServerApp MasterHDFSHBasePhoenix
  • 26. 集群优化与管理HStats资源统计 计算资源统计:Job、iStream、SchedulerQueue(业务线)的CPU和Memory用量 存储资源统计: HBase Table、Namespace的存储空间和IOPS 详细查询:了解计算/存储资源统计对象在一段时间的资源占用状况与变化趋势 每日的Top榜单
  • 27. 集群优化与管理Top Job
  • 28. 展望未来多元化的计算模型 Tez Spark 更稳定、高效的服务 Namenode & ResourceManger HA Long-lived services,YARN as PAAS Cgroups/LXC 资源隔离 HDFS优化: centralized cache,tiered storage,rolling upgrade
  • 29. Q&A
  • 30. @InfoQinfoqchina
  • 31. @InfoQinfoqchina