问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

百度是如何使用hadoop的?

发布网友 发布时间:2022-04-23 13:04

我来回答

3个回答

懂视网 时间:2022-05-06 10:32

MapReduce主要是一种思想,不能解决所有领域内与计算有关的问题,百度的研究人员认为比较好的模型应该如下图:

map reduce

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为基础的开源分布式数据存储系统,百度将它作为分析用户行为的平台,同时在元数据集中化、内存占用优化、集群安全停机、故障自动恢复等方面做了一些改进。

    via:中国大数据

    相关阅读:

  • HDFS架构和设计(PDF版)
  • 构建高可用和弹性伸缩的KV存储系统
  • Google Spanner 全球分布式数据库
  • 漫谈云上架构和运维的艺术
  • OpenStack与运维
  • 热心网友 时间:2022-05-06 07:40

    首先最好有编程基础,不然不要试图去学习,会很累的。编程语言最好是java,因为hadoop是java编写的。之后就可以了解了解hadoop是什么,然后看点书,再在网上找到资料看看,之后就可以系统的学习了

    热心网友 时间:2022-05-06 08:58

    学JAVA,已经成为一种社会所“驱”。最近从某日报上看到这样一则新闻,某软件公司开出年薪15万的优厚待遇招聘一JAVA软件工程师,但是几个月过去了,该公司仍旧没有招到合适的人才,而年薪却逐渐涨到了18万……
    可见,企业对JAVA高级软件工程师的需求远远不能获得满足。根据2008年IT行业就业情况调查来看,我国软件企业目前在JAVA高级软件工程师这类职位上的人员空缺至少在8万人,未来五年至少空缺20万人以上,而严重的供小于求的情况使得JAVA高级软件工程师的薪酬水涨船高。据东方标准对近千家企业会员的岗位薪酬统计,目前有一年工作经验的JAVA高级软件工程师的薪酬大致在年薪12-15万左右,而一些接受过相关培训的应届毕业生也有至少6000元左右的月薪,明显超过了今年应届毕业生月薪2785元的平均水平。
    在这种情况下,越来越多的软件培训机构开始倾注于JAVA的培训。只是,半路出家的他们并非真正的专家。只有做专一的,才能做得更专业。深 圳远 标 教 育,深圳首家JAVA实训基地,它专注于JAVA软件工程师的 培 训,因专而精,因精而专。远 标 教 育从 JAVA软件工程师技术研发团、项目经理团、理论讲师团到项目采集、教材研发,无一不从专、从精出发。一度教育,她以打造湖南最专业的JAVA软件工程师实训领导品牌而奋斗着,而提升着。
    远 标 ,深圳人的JAVA实战训练营,中国人的JAVA实战训练营。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... lg自动运行软件从哪看 hadoop,storm和spark的区别,比较 LG电视自动音量控制自动到100 LG全自动洗衣机故障警告中的dE是什么故障? lg显示器自动待机设置有什么用 LG的全自动洗衣机怎么样?能用的住吗? LG电视自动出现搜索网络是怎么回事? LG全自动洗衣机能加热吗? - 信息提示 LG液晶电视自动开关机,像是待机状态,一会又自动开机,反复出现。 用日语怎样说? 乳房怎样自检?摸到硬块是不是很严重? 自测胸围方法 怎样对乳房进行自检? 乳房对女性十分重要,女性怎样自己做乳房自检? 乳房自检方法分享,一般怎样做? 乳房的自检方法是什么? 乳腺健康自测方法有哪些?自己在家可以测试的准吗? 微信视频号不是对方好友能看见吗? 小作文注重细节 LG洗衣机怎么用? spark和hadoop的区别 国内外的Hadoop应用现状 ...现在想转做大数据,没什么经验,想入行的话,hadoop和数据 MapReduce用什么语言开发效率和性能最好 为什么做大数据要学习Java 求Hadoop技术内幕-董西成书籍电子版百度云资源 大数据主要学习什么呢? hadoop生态圈中的框架不包括什么 程序员高级深入应该学习哪些知识? 求万门大学计算机系书单 我微信视频号里的好友,是不是我通讯录里好友都可以看到啊? 怎么解决手机触摸屏幕失灵 怎样用手机安装当贝市场到电视上? 怎么把当贝市场下载到U盘里? 祝福情人图片带字 给爱人的问候图片带字 情人离开祝福的图片带字 情人节图片带字搞笑 情人之间开玩笑的图片加文字