1、Hadoop 在网盘和在线备份的应用与挑战在网盘和在线备份的应用与挑战2提纲提纲 互联网存储应用的特点互联网存储应用的特点 网盘与在线备份的特点网盘与在线备份的特点 分布式存储平台简介分布式存储平台简介 总体实现方案总体实现方案 分布式数据库分析分布式数据库分析 分布式数据库特点分布式数据库特点 分布式文件系统分布式文件系统 分析分析 小结小结3互联互联 网网 存存 储储 应应 用用 的的 特特 点点4互联网存储应用的特点互联网存储应用的特点 高可靠:数据多份存储高可靠:数据多份存储 高可用:高可用:7X247X24 小时服务小时服务 高扩展:透明升级扩容高扩展:透明升级扩容 高性能:高并发,
2、低延迟高性能:高并发,低延迟 高安全:严格高安全:严格 IDCIDC 管理制度和分布式密钥管理管理制度和分布式密钥管理 高性价比:成本价格可控制高性价比:成本价格可控制 易监控维护:响应及时易监控维护:响应及时5网盘网盘 与与 在在 线线 备备 份份 的的 特特 点点6网盘和在线备份的特点网盘和在线备份的特点 网盘与在线备份有很多相同点网盘与在线备份有很多相同点 后台架构类似 访问方式相似(上传及下载)都是云存储服务 目标都是解决数据存储问题等 在线备份相对网在线备份相对网 盘(同步盘)的特殊性盘(同步盘)的特殊性 是否保持用户的原始路径 是否有设备的区分 是否可以备份企业级数据库 是否密钥用
3、户可以自己保存 元数据的存储方式丌一样7分分 布式存储布式存储 平平 台台 简简 介介8HadoopHadoop 生态结构图生态结构图PigHiveZookeeperHBaseMap/Reduce(分布式计算分布式计算)HDFS(分布式文件系统分布式文件系统)OS(操作系统操作系统)9分布式存储平台简介分布式存储平台简介PCMobileWEB数据应用层HBase小数据存储层MongoDBMySQLMapReduce/Carbonite业务处理层文件流信息HDFSCFS大数据存储层10分布式存储平台简介分布式存储平台简介(二二)总共有总共有 10001000 亿个文件亿个文件 每天增加近每天增加
4、近 1 1 个亿新文件个亿新文件 总共服务器台数约有总共服务器台数约有 1 1 万台万台 总存储量约为总存储量约为 200P200P11总体实现方案总体实现方案12总体实现方案总体实现方案DBDFS+WEBDFS+WEBLVS13总体实现方案总体实现方案(二二)分布式数据库:关系数据库与非关系型数据库分布式数据库:关系数据库与非关系型数据库(NoSql)(NoSql)集群集群解决结构化数据的海量存储和高效访问解决结构化数据的海量存储和高效访问 MySQL HBase 分布式文件系统:以文件为存储单位的非结构化数据存储分布式文件系统:以文件为存储单位的非结构化数据存储 HDFS MongoDB
5、前端应用负载均衡前端应用负载均衡 LVS Ngnix/Jetty14分布式数据分布式数据 库库 分分 析析HBaseHBase 和和 MysqlMysql15分布式数据库架构分布式数据库架构16分布式数据库架构分布式数据库架构(二二)HBaseMySQL离散数据信息Master1,2Slave1,2Master1,2,3Slave1,2,3,4,5同步服务同步服务交易数据等文件属性等17分布式数据库特点分布式数据库特点18分布式数据库特点分布式数据库特点-HBase-HBase 成熟度比较高,目前已有多个著名公司在使用成熟度比较高,目前已有多个著名公司在使用 Taobao Facebook A
6、dobe Twitter Yahoo!Trend Micro 广告分析公司19分布式数据库特点分布式数据库特点-HBase-HBase (二二)行强一致性行强一致性 同一行数据的读写只在同一台 RS(RegionServer)机器上进行 同一行的列的写入是原子操作 水平自动伸缩水平自动伸缩 Region 的自劢分裂(生产系统需要看具体情况)Master 的自劢均衡 增加 RegionServer 机器即增加读写吞吐量及处理能力 增加 DataNode 机器可增加容量20分布式数据库特点分布式数据库特点-HBase-HBase (三三)任意增加列任意增加列 高性能随机写高性能随机写 支持支持 T
7、hriftThrift 框架框架21HbaseHbase 经验分享经验分享 合理设计合理设计 RowKeyRowKey 和和 Pre-ShardingPre-Sharding 尽量避免只操作少数几台机器;根据数据量、RegionServer 个数合理 Pre-Sharding。充分利用充分利用 FilterFilter 功能功能 SingleColumnValueFilter SubstringComparator BinaryPrefixComparator FamilyFilter QualifierFilter ColumnPrefixFilter ColumnPaginationFil
8、ter22HbaseHbase 经验分享经验分享(二二)可根据应用需求重写某些方法可根据应用需求重写某些方法 SubstringComparatorOverridepublic int compareTo(byte value)String laststr=Bytes.toString(value).toLowerCase();return laststr.contains(substr)?0:1;23HBaseHBase 经验分享(四)经验分享(四)考虑容量开启压缩考虑容量开启压缩 目前主要是 lzo 方式 提高随机读性能提高随机读性能 前端增加一个分布式缓存 Radis 系统 系统参数优化
9、系统参数优化 GC 策略:-XX:+UseConcMarkSweepGC-XX:+UseParNewGC-XX:CMSInitiatingOccupancyFraction=70 读写策略优化24HBaseHBase 经验分享(五)经验分享(五)系统参数优化系统参数优化 读优化:hbase.regionserver.handler.counthbase.regionserver.global.memstore.upperLimit/lowerLimithbase.hregion.memstore.block.multiplierhbase.hstore.blockingStoreFileshb
10、ase.hregion.max.filesize 写优化:Bloomfilterin-memoryBlockcachehfile.block.cache.size25分布式文件系统分析分布式文件系统分析HDFSHDFS 和和 MongoDBMongoDB26分布式文件系统架构分布式文件系统架构 大文件数据大文件数据 HDFS 小文件数据及分块数据小文件数据及分块数据 MongoDB 文件文件“垃圾垃圾”数据回收数据回收27分布式文件系统架构分布式文件系统架构-HDFS-HDFS (二二)NFS Server/BackupNode28分布式文件系统架构分布式文件系统架构(三三)文件流数据Shar
11、dNShard1Replica setMaster1,2Slave1,2,NMongoDBHDFS校验服务校验服务小文件/分 块 数据大文件29分布式系统架构分布式系统架构(四四)Hadoop Archive,Sequence file,CombineFileInputFormatWebSeverMongoDBHDFS校验服务校验服务小文件大文件/目 录 打包下 载30MongoDBMongoDB 经验分享经验分享 尽量创建索引尽量创建索引 限定返回结果条数限定返回结果条数 FilterFilter 只返回需要的数据只返回需要的数据 优化主键,尽量自己控制主健优化主键,尽量自己控制主健 IDI
12、D UUIDUUID 主键使用主键使用 BinaryDataBinaryData 数据类型存储数据类型存储 注意文件大小不超过注意文件大小不超过 16M16M31HDFSHDFS 经验分享经验分享 系统参数优化系统参数优化 GC 策略 带宽策略优化带宽策略优化 区分带内不带外心跳 NameNode 的备份丌影响正常带宽使用 同步锁机制尽量少用同步锁机制尽量少用 所有文件 IO 操作的地方尽可能丌要加同步锁 大锁尽可能拆成小锁 文件复本数设置文件复本数设置 根据应用的访问频率设置丌同份数32HDFSHDFS 经验分享经验分享(二二)NameNodeNameNode 采取人工切换模式采取人工切换模式 NameNodeNameNode 启动失败分析方法启动失败分析方法查看日志,确定问题位置备份 fsimage,edits 等使用 OfflineImageViewer 方法查看(可能丌行)编译相应 Hadoop 版本在相关读取文件信息的地方适当加一些 try/catch多次查找分析元数据信息Replay 重新生成 fsimage33小结:用什么不是关键,关键是怎么使用小结:用什么不是关键,关键是怎么使用 明析需求明析需求 取舍需求 抓住本质 劢态追踪 选择方法选择方法成熟技术均衡复杂度设计模型多次迭代定期产出 高效运营高效运营 优化配置 智能监控 分级管理34Q Q&A ATHANKS