解密百度大数据:百度是如何使用hadoop的,并且做了哪些改进?
gaoyangw 2024-10-26 09:47 20 浏览 0 评论
引读:百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,几乎覆盖了中文网络世界中所有的搜索需求,因此,百度对海量数据处理的要求是比较高的, 要在线下对数据进行分析,还要在规定的时间内处理完并反馈到平台上。百度在互联网领域的平台需求要通过性能较好的云平台进行处理了,Hadoop就是很好 的选择。
在百度,Hadoop主要应用于以下几个方面:
日志的存储和统计;
网页数据的分析和挖掘;
商业分析,如用户的行为和广告关注度等;
在线数据的反馈,及时得到在线广告的点击情况;
用户网页的聚类,分析用户的推荐度及用户之间的关联度。
MapReduce主要是一种思想,不能解决所有领域内与计算有关的问题,百度的研究人员认为比较好的模型应该如下图:
HDFS 实现共享存储,一些计算使用MapReduce解决,一些计算使用MPI解决,而还有一些计算需要通过两者来共同处理。因为MapReduce适合处理数 据很大且适合划分的数据,所以在处理这类数据时就可以用MapReduce做一些过滤,得到基本的向量矩阵,然后通过MPI进一步处理后返回结果,只有整 合技术才能更好地解决问题。
百度现在拥有3个Hadoop集群,总规模在700台机器左右,其中有100多台新机器和600多台要淘汰的机器(它们的计算能力相当于200多台新机器),不过其规模还在不断的增加中。现在每天运行的MapReduce任务在3000个左右,处理数据约120TB/天。
百度为了更好地用Hadoop进行数据处理,在以下几个方面做了改进和调整:
(1)调整MapReduce策略
限制作业处于运行状态的任务数;
调整预测执行策略,控制预测执行量,一些任务不需要预测执行;
根据节点内存状况进行调度;
平衡中间结果输出,通过压缩处理减少I/O负担。
(2)改进HDFS的效率和功能
权限控制,在PB级数据量的集群上数据应该是共享的,这样分析起来比较容易,但是需要对权限进行限制;
让分区与节点独立,这样,一个分区坏掉后节点上的其他分区还可以正常使用;
修改DSClient选取块副本位置的策略,增加功能使DFSClient选取块时跳过出错的DataNode;
解决VFS(Virtual File System)的POSIX(Portable Operating System Interface of Unix)兼容性问题。
(3)修改Speculative的执行策略
采用速率倒数替代速率,防止数据分布不均时经常不能启动预测执行情况的发生;
增加任务时必须达到某个百分比后才能启动预测执行的限制,解决reduce运行等待map数据的时间问题;
只有一个map或reduce时,可以直接启动预测执行。
(4)对资源使用进行控制
对应用物理内存进行控制。如果内存使用过多会导致操作系统跳过一些任务,百度通过修改Linux内核对进程使用的物理内存进行独立的限制,超过阈值可以终止进程。
分组调度计算资源,实现存储共享、计算独立,在Hadoop中运行的进程是不可抢占的。
在大块文件系统中,X86平台下一个页的大小是4KB。如果页较小,管理的数据就会很多,会增加数据操作的代价并影响计算效率,因此需要增加页的大小。
百度在使用Hadoop时也遇到了一些问题,主要有:
MapReduce的效率问题:比如,如何在shuffle效率方面减少I/O次数以提高并行效率;如何在排序效率方面设置排序为可配置的,因为排序过程会浪费很多的计算资源,而一些情况下是不需要排序的。
HDFS的效率和可靠性问题:如何提高随机访问效率,以及数据写入的实时性问题,如果Hadoop每写一条日志就在HDFS上存储一次,效率会很低。
内存使 用的问题:reducer端的shuffle会频繁地使用内存,这里采用类似Linux的buddy system来解决,保证Hadoop用最小的开销达到最高的利用率;当Java 进程内容使用内存较多时,可以调整垃圾回收(GC)策略;有时存在大量的内存复制现象,这会消耗大量CPU资源,同时还会导致内存使用峰值极高,这时需要 减少内存的复制。
作业调度的问题:如何限制任务的map和reduce计算单元的数量,以确保重要计算可以有足够的计算单元;如何对TaskTracker进行分组控制,以限制作业执行的机器,同时还可以在用户提交任务时确定执行的分组并对分组进行认证。
性能提 升的问题:UserLogs cleanup在每次task结束的时候都要查看一下日志,以决定是否清除,这会占用一定的任务资源,可以通过将清理线程从子Java进程移到TaskTracker来解决;子Java进程会对文本行进行切割而map和reduce进程则会重新切割,这将造成重复处理,这时需要关掉Java进程 的切割功能;在排序的时候也可以实现并行排序来提升性能;实现对数据的异步读写也可以提升性能。
健壮性 的问题:需要对mapper和reducer程序的内存消耗进行限制,这就要修改Linux内核,增加其限制进程的物理内存的功能;也可以通过多个map 程序共享一块内存,以一定的代价减少对物理内存的使用;还可以将DataNode和TaskTracker的UGI配置为普通用户并设置账号密码;或者让 DataNode和TaskTracker分账号启动,确保HDFS数据的安全性,防止Tracker操作DataNode中的内容;在不能保证用户的每 个程序都很健壮的情况下,有时需要将进程终止掉,但要保证父进程终止后子进程也被终止。
Streaming 局限性的问题:比如,只能处理文本数据,mapper和reducer按照文本行的协议通信,无法对二进制的数据进行简单处理。为了解决这个问题,百度人 员新写了一个类Bistreaming(Binary Streaming),这里的子Java进程mapper和reducer按照(KeyLen,Key,ValLen,Value)的方式通信,用户可以 按照这个协议编写程序。
用户认证的问题:这个问题的解决办法是让用户名、密码、所属组都在NameNode和Job Tracker上集中维护,用户连接时需要提供用户名和密码,从而保证数据的安全性。
百度下一步的工作重点可能主要会涉及以下内容:
内存方面,降低NameNode的内存使用并研究JVM的内存管理;
调度方面,改进任务可以被抢占的情况,同时开发出自己的基于Capacity的作业调度器,让等待作业队列具有优先级且队列中的作业可以设置Capacity,并可以支持TaskTracker分组;
压缩算 法,选择较好的方法提高压缩比、减少存储容量,同时选取高效率的算法以进行shuffle数据的压缩和解压;对mapper程序和reducer程序使用 的资源进行控制,防止过度消耗资源导致机器死机。以前是通过修改Linux内核来进行控制的,现在考虑通过在Linux中引入cgroup来对 mapper和reducer使用的资源进行控制;将DataNode的并发数据读写方式由多线程改为select方式,以支持大规模并发读写和 Hypertable的应用。
百度同时也在使用Hypertable,它是以Google发布的BigTable为基础的开源分布式数据存储系统,百度将它作为分析用户行为的平台,同时在元数据集中化、内存占用优化、集群安全停机、故障自动恢复等方面做了一些改进。
相关推荐
- 惠程科技:控股子公司与字节跳动在游戏推广业务上有日常合作
-
e公司讯,惠程科技(002168)6月18日在互动平台称,公司控股子公司哆可梦与字节跳动在游戏推广业务上有日常合作。
- 借“免费网课”向学生推广网游?!这些平台回应了
-
#虎牙等平台借网课推广网游#在过去的这个假期里,上网课是学生们学习的主要方式,但也出现了不少未成年人在网课期间沉迷网游,甚至是高额网络消费的情况。记者调查发现,虎牙、斗鱼等网络平台利用免费提供的上网...
- 抖音最火的抖音游戏推广,你知道在哪里吗?
-
大家好,我是艳儿逗你笑。今天为大家带来抖音小游戏推广图文流程。首先打开抖音。点击图中标记的地方进入。接着点开我们的小程序。如图里面出现了游戏达人的图标,进入就行了,有的朋友第一次点开的话里面不会有游戏...
- 2025年最适合打金搬砖赚钱十大网络游戏排行榜(端游全新榜单)
-
玩游戏打金搬砖赚钱,这可能是一些年轻人的梦想。而想要真正实现打金搬砖就赚钱,在游戏的选择上就得下下功夫。因此,针对2025年最适合打金搬砖赚钱的网络游戏,本篇打金搬砖赚钱十大网络游戏排行榜(端游全新榜...
- “和牌”即刷题!深圳一学校发明“化学麻将”闯关游戏 网友:建议全国推广
-
封面新闻记者邹阿江杨霁月近日,一段在深圳南山实验教育集团麒麟二中化学课堂上,学生围坐一起打“化学麻将”的视频在网络上迅速走红。视频中,学生们手持写有高锰酸钾、氯离子、加热条件等内容的牌,围坐在“麻...
- 关于游戏推广内容(游戏推广描述)
-
在如今竞争激烈的短视频平台上,想要成功推广游戏,吸引更多的观众,就需要掌握一些有效的方法。以下这四种游戏推广内容,能够让我们在众多的创作者中脱颖而出。...
- 中兴通讯:公司在小红书平台通过“中兴努比亚手机”“红魔游戏手机”等官方账号开展站内营销推广活动
-
证券日报网讯中兴通讯2月17日在互动平台回答投资者提问时表示,目前,公司在小红书平台通过“中兴努比亚手机”“红魔游戏手机”等官方账号开展站内营销推广活动。(编辑王雪儿)...
- 抖音又一低成本高收入的项目:抖音游戏达人推广
-
Hello大家好,欢迎来到「出海创业帮」,我是大海。我将用1000篇文章或视频来给大家分享各种视频和账号的赚钱套路。1、运营手段是什么?2、账号收益多少?今天分享的是《抖音又一低成本高收入的项目:...
- 百度OCPC效果不好怎么办?OCPC的7种出价经典玩法解析
-
文|木比白编辑|木兰百度搜索ocpc出价是现在的主流投放出价,ocpc是一把双刃剑,用好了效果会非常好,用的不好就会造成一些不必要的浪费。作为优化师的你,不管是否认同ocpc,但它已经逐步成为行业主流...
- 什么是竞价托管?竞价托管服务内容及费用
-
什么是竞价托管?竞价托管主要是指付费搜索竞价广告客户将竞价账户托管给第三方竞价托管公司进行管理,并由其对竞价账户进行账户优化、关键词选取、质量度优化、数据分析、效果提升等动态的管理过程,统称为竞价托管...
- 代理记账如何推广?(代理记账推广软文)
-
代理记账是指会计咨询、服务机构及其他组织等经批准设立从事会计代理记账业务的中介机构接受独立核算单位的委托,代替其办理记账、算账、报账业务的一种社会性会计服务活动。那么代理记账该如何进行推广呢?代理记账...
- 东莞米可详解:百度SEM竞价托管服务费为什么不按广告费比例抽佣?
-
如果百度SEM竞价托管公司是按广告费比例来抽取佣金,就意味着客户的广告费花得越多,竞价托管公司公司的收入也就越高。本来应当屏蔽掉的无效广告点击和恶意点击,出于竞价托管公司自身利益考虑,处理这些事情时也...
- 百付科技搜索竞价托管:智能优化提升 ROI 的终极方案
-
在企业追求“竞价效率最大化”的2025年,百付科技推出“百度竞价+DeepSeek竞价”双平台托管服务,通过智能算法、精准策略、实时优化,帮助企业降低竞价成本、提升转化效果,实现搜索...
- 代运营外包网络推广公司怎么选?(代运营公司和外包公司的区别)
-
代运营外包网络推广公司怎么选?在当今数字化时代,网络推广已经成为企业提升品牌知名度、扩大业务范围的重要手段。然而,很多企业由于缺乏专业人才和资源,无法独立完成网络推广任务。这时,选择一家合适的外包网络...
- 「天工大模型4.0」o1版和4o版正式上线天工APP和网页,免费使用
-
2025年1月6日,昆仑万维正式将「天工大模型4.0」o1版和4o版同步上线,并全量登陆天工网页和APP,人人免费可用。作为国内第一款中文逻辑推理能力的o1模型(Skyworko1),不仅包含上线即...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 网站建设 (107)
- 百度收录 (50)
- 搜索引擎排名优化 (49)
- 关键词优化工具 (51)
- 外贸网站建设 (56)
- seo整站优化吧 (50)
- 苏州网站建设 (59)
- 百度搜索推广 (61)
- 关键词优化公司 (51)
- 广州网站建设 (48)
- 电商网站建设 (49)
- 百度站长平台 (48)
- 网站模板 (51)
- 厦门网站建设 (52)
- 百度快照推广 (51)
- 免费网页在线客服系统 (53)
- 雷神代刷网站推广 (53)
- 手机网站建设 (53)
- 网站维护 (53)
- 网页制作教程 (66)
- 百度收录批量查询工具 (48)
- 网站服务器 (53)
- 学生个人网页制作html (56)
- 一键优化 (67)
- 网页制作软件 (49)