Big data, big deal ms it168文库
Upcoming SlideShare
Loading in...5
×
 

Big data, big deal ms it168文库

on

  • 164 views

 

Statistics

Views

Total Views
164
Views on SlideShare
164
Embed Views
0

Actions

Likes
1
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Big data, big deal ms it168文库 Big data, big deal ms it168文库 Presentation Transcript

  • Big Data, BigDeal?林默微软资深架构顾问
  • 向上扩展哈勃望远镜的能力,能让我们看到令人惊异的45 万光年的天线星系图像伴随着向上扩展的特征是:• 非商业化• 专用的设备• 单点故障
  • 向外扩展 | 商业化分布式计算哈勃望远镜可以提供巨型银河星云惊人的视图,但是如果是无线电波又怎么样?• 不只是从一个地方,而是从众多的观测站里看到的• SETI: 5.2M 参与者, 1021 浮点计算伴随着商业化分布式计算的特征是• 基于本地的分布式计算• 有成千上百的机器参与• 自动复制功能防止单点故障
  • 大数据的成长机会 10 Billions $ 6.5 39% 复合增 5 5.1 3.9 2.7 长率 0 2012 2013 2014 2015 大数据的软件增长 6 Billions $ 4.6 34%复合增长率 4 3.449%的世界顶级CEOs和CIOs正在使 2 2.5 1.8用大数据做客户分析 0 2012 2013 2014 2015 1. McKinsey&Company, McKinsey Global Survey Results, Minding Your Digital Business, 2012 2. IDC Market Analysis, Worldwide Big 数据 Technology and Services 2012–2015 Forecast , 2012
  • 大数据让企业问出新的问题公众对我品牌和产品的印象怎么样? 我怎么预测将来的财 务收入? 我怎么根据天气和交通 状况来优化我的物流安 排?
  • 为什么大数据突然成为热点?• 各种类型的数据爆发式的增长 – 传感器(例如:位置,声音 …) – Web 2.0 (例如:微博, 维基 … ) – Web 点击• 认识到旧数据的价值而无法随意删除 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1• 硬件价格,特别是存储成本的急剧下降 6
  • 为什么?NoSQL?• 更灵活的数据模型 – 使用JSON作为数据模型 – 没有“schema优先”的需求• 相对松散的一致性模型 – 愿意牺牲一点一致性来保障可用性• 大大节约从数据采集到获得结果所需的时间 7
  • 减少获得结果的时间 数据 Cleanse Transform LoadSQL: Arrives the 数据 the 数据 the 数据 3 4 5 1 Derive a SQL RDBMS schema Queries 6 2NoSQL: 数据 Arrives NOSQL System Application Program 1 2  没有数据清洗!  没有数据传输!  立刻分析数据! 8
  • 两个不同的世界 & 结构化 非结构化关系型数据库 NoSQL 系统结构化数据/已知的 schema (非)(半)结构化数据/没有shcema ACID 非 ACID 事务型 非事务型 SQL No SQL 严格一致性模型 最终一致性 ETL No ETL 得到结果的时间较长 得到结果的时间较快 成熟, 稳定, 高效 灵活 9
  • 我们正面对一场数据领域的变革么?• 这个世界已经真正地改变了• 关系型系统在数据世界里不再 是唯一的• SQL 的兄弟们必须接受这个现 实并考虑如何部署 Hadoop这 样的解决方案  关系型数据库不会灭亡并继续统 治中小型数据的事务处理系统  但现代的业务往往是两者的结合 了 10
  • 进化的开始 2003 2006 MR/GFS Hadoop• 大量的点击数据留不得不进行存储和分析 存储 处理 要求:  可扩展到PBs和1000个节点 Hadoop = HDFS + MapReduce 存储 处理 高容错 GFS + MapReduce   简单的编程 11
  • Hadoop 生态系统• HDFS – 分布式容错文件系统• MapReduce – 写/执行分布式容错算法的框架• Hive & Pig – 类SQL的描叙性语言• Sqoop – 在HDFS和RDBMS传输数据• + 其他… BI ETL RDBMS Reporting Tools Hive & Pig Serialization Zookeeper Map/ Sqoop Reduce HBase HDFS 12
  • 微软和Hadoop• 基于Apache Hadoop的Windows Server和Windows Azure,以及AD的支持 – HDInsight Server – HDInsight Service• Hive ODBC Driver 和 Add-in for Excel• JavaScript Framework for Hadoop• SQL Server and SQL Server Parallel 数据 Warehouse connections for Hadoop• Sharepoint, Powerpivot和Powerview作为前端展示 13
  • 案例分享 - 泰国司法部用大数据优化案件调查 2年 15天
  • HDInsightService 演示
  • Power View 演示
  • HDFS原理 Large File 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 … 6440MB不同颜色代表不同节点 Block Block Block Block Block Block Block Block 1 2 3 4 5 6 … 100 101 64MB 64MB 64MB 64MB 64MB 64MB 64MB 40MB 文件由一系列的块(blocks)组成e.g., Block Size = 64MB • 一般64MB但是可配置 • 每块都作为一个单独文件存储在本地文件 17 系统 (e.g. NTFS)
  • 块的放置 Block Block Block Block Block 1 2 3 2 2 Block Block Block 3 1 3 Block 1 节点 1 节点 2 节点 3 节点 4 节点 5 例如, 复制因子 = 3• 缺省的块放置规则: – 第一个拷贝 写到创建文件的节点 – 第二个拷贝 写到同一个机柜的节点(减少网络交通问题) – 第三个拷贝 写到位于不同机柜上的节点(容错需求) 18
  • HDFS节点类型• 主节点(Name节点) – 一个群集只有一个 – 负责在群集上的文件系统元数据操作,复制和定位文件块 主节点 主• 备份节点 – 主节点的备份 检查点节点 或 备份节点 (备份)• 数据节点 – 在群集的每一节点上一个实例 数据节点 数据节点 – 负责文件快的存储 数据节点 数据节点 从 – 对客户提供实际的数据 19
  • HDFS 架构 主节点 备份节点 命名空间备份 (心跳, 负载均衡, 复制等等)数据节点 数据节点 数据节点 数据节点 数据节点 数据写到本地磁盘 20
  • 文件如何写到HDFS 大文件 {节点2, 节点3, 节点 4} {节点1, 节点4, 节点2, 5} 3}110010101001010100101010 HDFS (基于 “复制因子”) (缺省3)011001010100101010010101 客户端001100101010010101001010 主节点告诉客户端把文件的每一块存储到哪里100110010101001010100101 客户端把块直接传输到分配 主节点 备份节点 的数据节点 等等… 数据节点 数据节点 数据节点 数据节点 数据节点 21
  • 如何从HDFS上读取文件 大文件110010101001010100101010011001010100 HDFS101010010101 客户端 返回文件块的位置001100101010010101001010100110010101001010100101 主节点 备份节点 从数据节点读取块 数据节点 数据节点 数据节点 数据节点 数据节点 22
  • 故障, 故障, 故障• HDFS是专门针对经常发生的故障而设计的 (硬件 和软件) 故障 类型: 数据节点  磁盘错误和故障  数据节点故障  Switch/Rack故障 主节点  主节点故障  数据中心故障 23
  • 容错 (数据节点故障) 主节点 备份节点 根据复制因子的配置块被自动复制到 主节点侦测到数据节点故障 剩余的节点上数据节点 数据节点 数据节点 数据节点 数据节点 24
  • 节点动态扩展 主节点 备份节点 主节点检测到新的数据节点 块被重新分配 被加到群集里面数据节点数据节点 数据节点 数据节点 数据节点 数据节点 25
  • Hadoop MapReduce• 分析存储在HDFS上的数据的编程框架(library and runtime)• MapReduce 由两个函数组成: map()  reduce() 映射 合并和简化• 用户仅需写Map和Reduce的函数• MR框架 负责协调和执行 映射和合并简化的任务. – 容错 – 可扩展 26
  • MapReduce 101 基本上, 就是…映射 1. 把一个大的任务分成几个小任务 … 2. 对每一个小任务执行同一个函数 DoWork() DoWork() … DoWork()简化 3. 合并所有执行结果 … 输出 27
  • MapReduce组成 hadoop-主节点 - 协调所有的M/R任务和事件 - 管理任务队列和调度 JobTracker MapReduce 层 - 维护和控制TaskTrackers - 如果需要,移动/重启map/reduce任务 HDFS层 - 使用“检查点”来处理单点失败的故障 主节点 JobTracker控制监测TaskTracker 节点 hadoop- hadoop- hadoop- hadoop- 数据节点1 数据节点2 数据节点3 数据节点4执行单个由 TaskTracker TaskTracker TaskTracker TaskTrackerJobTracker分配的映 MapReduce层射和简化任务 TaskTrackers 存储临时数据 HDFS层 数据节点 数据节点 数据节点 临时数据存储到本地的文件系统 数据节点 28
  • MapReduce图解: 映射阶段 得到sales的总和并grouped by zipCode (custId, zipCode, amount) 54235 $75 4 54235 $75 54235 $22 数据节点3在HDFS 7 10025 $60 10025 $60的Sales 4 54235 $75 2 53705 $30 10025 $95文件块 5 7 53705 10025 $65 $60 1 02115 $15 44313 $55 3 0 10025 54235 $95 $22 Group 8 44313 $55 Mapper By 53705 $65 数据节点2 5 53705 $65 每个简化任 0 54235 $22 务有一个输 5 53705 $15 2 53705 $30 53705 $30 出结果 6 44313 $10 1 02115 $15 53705 $15 Group Mapper By 02115 $15 5 53705 $15 数据节点1 3 10025 $95 02115 $15 8 44313 $55 6 44313 6 $10 44313 $25 9 02115 $15 44313 $10 6 44313 $25 44313 $25 9 02115 $15 Map 任务 29
  • 简化阶段 Reducer 53705 $65 53705 $65 54235 $75 53705 $30 Sort 53705 $30 SUM 53705 $110 54235 $22 53705 $15 53705 $15Mapper 10025 $60 10025 $95 Reducer 44313 $55 44313 $10 10025 $60 53705 $65 44313 $25 10025 $95 Shuffle 10025 $155 10025 $60 Sort 44313 $10 SUM 44313 $90 10025 $95 44313 $25 44313 $55 44313 $55 53705 $30 53705 $15 简化任务 ReducerMapper 02115 $15 54235 $75 02115 $15 02115 $15 54235 $22 02115 $15 02115 $30 44313 $10 Sort SUM 02115 $15 54235 $75 54235 $97 44313 $25 02115 $15 54235 $22
  • Hive和Pig• 和 对于描叙性的SQL语言和 Google有不同的结论  Facebook开发了像SQL语言一样的  Yahoo开发了稍微不同的程序语言叫 HIVE(蜂 产品叫 PIG(猪) 房) 都是基于Hadoop MapReduce的语言  Hive和Pig的查询最终被编译成一序列的MapReduce的任务
  • 一个例子考虑两个数据集: UserVisits Rankings ( ( sourceIP STRING, pageURL STRING, destURL STRING pageRank INT, visitDate DATE, avgDuration INT adRevenue FLOAT, ); .. // fields omitted ); 查询: 找到产生最多”adRevenue”的”sourceIP”的 地址以及它的平均的”pageRank” 32
  • 在MapReduce的做法 1 33
  • 如果用HiveQLSELECT sourceIP, totalRevenue, avgPageRankFROM SELECT sourceIP, sum(adRevenue) as totalRevenue, avg(pageRank)as avgPageRank FROM Rankings as R, Uservisits as UV WHERE R.pageURL = UV.destURL and UV.visitDate between Date (‘2000-01-15’) and Date (‘2000-01-22’) GROUP BY UV.sourceIPORDER BY totalRevenue DESC limit 1; 34
  • Hive中的表• 就像在关系型数据库里, 数据存储在表里• 比SQL更丰富的字段类型 – 基本类型: ints, floats, strings, date – 复杂类型: associative arrays, lists, structs例子:CREATE Table Employees( Name string, Salary integer, Children List <Struct <firstName: string, DOB:date>> ) 35
  • Hive数据存储 • 像关系型数据库一样, Hive表能被分区 • 数据文件例子: Sales(custID, zipCode, date, amount) partitioned by stateHive DDL: Sales HDFS目录Create Table Sales( custID INT, zipCode STRING, custID zipCode … custID zipCode … custID zipCode … date DATE, 201 12345 … 13 54321 … 78 99221 … amount FLOAT) 105 933 12345 12345 … … 67 45 54321 74321 … … … 345 821 99221 99221 … …Partitioned By (state STRING) Alabama Alaska Wyoming 每一个state 一个HDFS文件 36
  • 希望你还没有。。。 37
  • 总结 关系型数据库和Hadoop? (那一个才是未来?)关系型数据库和Hadoop是用来满足不同的需求的 38
  • 39