数据库 账户java dbdaoo结尾 啥意思

【 2日DBA培训】Oracle数据库的存储结构 - 推酷
【 2日DBA培训】Oracle数据库的存储结构
【 2日DBA培训】Oracle数据库的存储结构
通过本节,您应该能够:
使用Oracle Enterprise Manager里来查看数据库存储结构
在您的数据库中建立新的存储结构
回收数据库中未使用的空间
管理用于恢复数据库变更的结构,并维护一致性
6.2 Oracle数据库结构
Oracle数据库包含下列物理结构:
控制文件 (Control file) : 包含指定数据库物理结构文件。
数据库文件 (Datafile) : 包含所有数据库信息。逻辑数据库结构的内容,例如表格与索引,都储存在数据文件中。
重做日志文件 (Redo log file) : 负责记录数据的所有变更。
6.3 浏览Oracle数据库的存储结构
逻辑数据结构是储存在数据库的物理文件中。您可以使用Oracle Enterprise Manager(Enterprise Manger)很容易地查看数据库的逻辑与物理结构。如需每个结构的详细信息,请在【服务器(Server)】页面上【存储(Storage)】区中的链接上按一下。
6.4 控制文件
包含物理数据库结构信息
多路复用以免遗失
在挂载mount阶段读取
当您启动数据库实例和挂载数据库时,就会读取控制文件。而控制文件中的项目则指定了构成数据库的物理文件。
当您将其他文件加入到数据库时,会自动更新控制文件。
您必须在CONTROL_FILES初始化参数中指定控制文件的位置。
为了避免数据库因为遗失控制文件而失败,您必须【多路复用(multiplex)】控制文件。在初始化参数中指定多个文档,就可以让Oracle数据库保有控制文件的多个副本。
您可以存取数据库中控制文件的相关信息,只要在Enterprise Manager的【服务器(Server)】页面【存储(Storage)】区中按一下【控制文件(Controlfiles)】链接。在【控制文件(Controlfiles General)】页面中会显示数据库控制文件的名称与位置。另外,【高级(Advanced)】页面中会提供建立控制文件和数据库识别的相关信息。而【记录文档段(Record Section)】页面则显示控制文件中项目的相关信息。
6.5 重做日志文件
记录数据库变更
应该多路复用以避免遗失
重做日志文件是用来记录数据库的变更情形,而这些变更源自事务及内部Oracle是数据库服务器操作。
注意:【事务(Transaction)】是工作的逻辑单元,它是由的单一使用者所执行的一或多个SQL命令组成。当发生电源中断、从磁盘错误等问题时,重做日志文件能保护数据库以避免损坏完整性。平时应该多路复用重做日志文件,以确保在磁盘发生错误的时候,不至于遗失储存在其中的信息。【 数据岛】
重做日志是由一组组的重做日志文件构成,而每个重做日志文件组则是由一个重做日志文件及其多重备份的副本组成。每个完全相同的副本是该组的成员之一。而每个组是透过一组号码来识别。日志写入器进程(LGWR)会从重做日志缓冲区讲重做记录写入重做日志组,一直到组中的文件被填满,或是出现日志切换要求为止。接着写入器就会进行切换,然后写入下一个组的文件中。重做日志组是以循环方式来使用的。
您可以查看数据库中重做日志文件的相关信息,请在【服务器(Server)】页面的【存储(Storage)】区中按一下【重做日志组(Redo Log Groups)】链接。您可以选择一个组,再按【查看(View)】来查看各种详细信息,例如重做日志文件名称。
6.6 多路复用重做日志
您可以在现有的日志组中新增一个成员,制作重做日志的多路复用。请按照下列步骤执行,将成员新增到重做日志组中:
在【服务器(Server)】页面的【存储(Storage)】区中按一下【重做日志组(Redo Log Groups)】。会出现【重做日志组(Redo Log Groups)】页面。
选择一个组,再按一下【编辑(Edit)】,或是按一下组的编号链接。接着会出现【编辑重做日志(Edit Redo Log)】.
在【重做日志成员(Redo Log Members)】区按一下【添加(Add)】。会出现【添加重做日志成员(Add Redo Log Member)】页面。
输入文件名称与文件目录。按一下【继续(Continue)】。之后点【应用(Apply)】。
注意:建议您在不同的磁盘上储存成员,以免重做日志项目因磁盘失败事件而全部遗失。
为每个现有大的日志组重复执行这些步骤。
当您将重做日志成员加入日志组时,组的状态会标示为INVALID,这是因为此组的成员还没有被写入。当发生日志切换,而无效日志组成为当前组时,,状态就会变为CURRENT。
6.7 表空间与数据文件
表空间是由一个或多个数据我文件组成。
数据文件只属于一个表空间
区段可以包含表空间中的多个数据文件。
数据库可被切割成多个逻辑存储单位,称为表空间。而表空间可用来将彼此相关的逻辑结构分为各个类别。每个数据库在逻辑上可被分为两个或多个表空间。每个表空间会有一个或者更多专门为它建立的数据文件,以便用物理方式存储表空间中所有的逻辑结构信息。
表和索引等数据库对象是以段(Segment)的形式存在表空间中,每个段都包含一个或更多的区(Extent),而区间是由连续的数据块所组成。数据块是数据库中最小的I/O单位。
您可以在【服务器(Server)】页面的【存储(Storage)】区中按一下【表空间(Tablespaces)】链接,来查看数据库中标空间的相关信息。请选择您感兴趣的表空间,再按一下【查看(View)】来显示关于表空间的详细信息。
6.8 预先设定的数据库表空间
在预先设定的数据库中,已经为您建立了下列表空间:
SYSTEM: Oracle数据库服务器使用SYSTEM表空间来管理数据库。它包含了拥有数据库相关管理信息大的信息说明表。这些都包含在SYS schema中,而且只能以SYS用户账号或其他拥有必要权限的管理用户来存取。
SYSAUX: 这是SYSTEM表空间的辅助表空间。在旧版Oracle中使用SYSTEM表空间或者自有表空间的部分组件及产品,现在都使用SYSAUX表空间。现在,每个Oracle Database数据库都必须有一个SYSAUX表空间。
TEMP: 这个表空间包含只存在于某阶段操作的临时数据。每个数据库都必须有一个临时表空间,并且指派用户作为他们的临时表空间。在预先设定的数据库中,TEMP表空间会被制定为预设的临时表空间。这表示在建立使用者账户时,如果没有特别指定临时表空间,Oracle就会指定这个表空间给用户。
UNDOTBS1: 这是数据库服务器用来储存恢复数据的还原表空间。每个数据库都必须有一个还原表空间,它是在数据库建立期间所建立的。
USERS:这个表空间是用来储存永久的用户对象及数据。在预先设定的数据库中,USERS是给非系统用户建立所有对象的预设表空间。
EXAMPLE:这个表空间包含范例Schema,建立数据库时可以选择安装这些Schema。你看到的Oracle教学资料中提供的范例,就是使用的范例Schema中所定义的对象。【 数据岛】
6.9 加大数据库
你可以用下列方式来加大数据库:
建立新的表空间。
在现有表空间中添加数据文件。
增加数据文件的大小。
为数据文件动态增长做准备。
可使用以下步骤,将数据文件加入现有的表空间中,来增加空间:
在【服务器(Server)】页面的【存储(Storage)】去中按一下【表空间(Tablespaces)】链接。
选择表空间进行【编辑(Edit)】,进入相关页面的数据文件区,再按一下【添加(Add)】。接下来会出现添加数据文件页面。
输入文件名、目录及文件大小。在按一下【继续(Continue)】后点【应用(Apply)】。
【表空间(Tablespaces)】页面会出现一个确认信息。
6.10 建立新的表空间
如果要新建永久表空间,请执行下列步骤:
浏览到【表空间(Tablespaces)】页面。
按一下【创建(Create)】。
注意: 如果您想建立一个类似现有表空间的表空间,请选择一个现有表空间,再从【操作(Actions)】功能表中选择【类似创建(Create Like)】,按一下【开始(Go)】。会出现【建立表空间(Create Tablespace)】页面。
输入表空间的名称。
在【区管理(Extent Management)】标题下方选择【本地管理(Locally Managed)】。本地管理的表空间的Extent,能由Oracle数据库服务器在表空间内有效管理。对于字典(Dictionary)管理的表空间现在已经不适合使用,Oracle公司也不建议使用。
在【类型(Type)】标题下方选择【永久(Permanent)】。永久表空间会存储系统或用户所建立的永久数据库对象。
在【状态(Status)】标题下方选择【读写(Read Write)】。读写状态表示用户可以在表空间建立后,进行读取和写入操作。这是预设的选项。
在页面的【数据文件(Datafiles)】区按一下【添加(Add)】。
在【新增数据文件(Add Datafiles)】页面的【文件名称(File Name)】栏位中输入文件名。接受【文件目录(File Directory)】与【文件大小(File Size)】的预设值。
在【存储(Storage)】标题下方选择【空间已满后自动扩展(AUTOEXTEND)(Automatically extend datafile when full (AUTOEXTEND))】,并且在【增量(Increment)】栏位中指定每次扩充数据文件时您希望增加的量。您可以将【文件大小上限(Maximum File Size)】设定为【无限(Unlimited)】或输入一个特定的限制值。按一下【继续(Continue)】。会回到创建空间页面。
按一下【存储(Storage)】页签。
接受【存储(Storage)】页面中的所有预设值。
按一下【确定(OK)】以创建表空间。您会转到【表空间(Tablespaces)】页面,在此会得到确认建立表空间的信息。您可以在表空间页面上看到新建的表空间。【 数据岛】
6.11 修改表空间
您可以用一下方法来修改表空间:
新增数据文件
将表空间设定为自动扩展
增加数据文件的大小,手动扩展表空间
变更表空间的空间临界值
将表空间的状态变更为离线
您可以手动扩展表空间的数据文件,来增加表空间的大小。您可以将表空间设定为让数据文件在需要空间时能自动扩充。如果您需要在特定表空间上执行恢复处理操作,必须先让表空间离线。
您也可以按照下列步骤新增数据文件,来扩展现有的表空间大小:
在【服务器(Server)】页面的【存储(Storage)】区按一下【表空间(Tablespaces)】链接。
选择表空间,在操作栏选择【添加数据文件(Add Datafile)】,点【开始(Go)】。会出现【添加数据文件(Add Datafile)】页面。
输入文件名称、目录及文件大小。再按一下【确认(OK)】。
【表空间(Tablespace)】页面会显示确认信息。
您可以设定表空间在达到上限时自动扩展:
在【服务器(Server)】页面的【存储(Storage)】区域按一下【表空间(Tablespaces)】链接。
选择您要设定可自动扩充的表空间,再按一下【编辑(Edit)】。会出现【编辑表空间:表空间名称(Edit Tablespace: tablespace name)】的【一般信息(General)】特性页签。
请选择与此表空间相关的数据文件,再按一下【编辑(Edit)】。会出现【编辑数据文件(Edit Datafile)】页面。
请选择”数据文件满后自动扩展(AUTOEXTEND)(Automatically extend datafile when full (AUTOEXTEND))”, 再输入适当的增量。您也可以选择设定文件大小上限或是将文件大小设定为无限。
按一下“继续(Continue)”。会回到”编辑表空间(Edit Tablespace)”页面。
按一下”应用(Apply)”。会出现确认信息。
您可以使用SQL命令来手动调整数据文件的大小。使用这个方式,可以在不增加数据文件的情况下,直接增加数据库的空间,这在必须注意到是否会达到数据库数据文件数量的上限时特别有用。手动降低数据文件大小能让您回收数据库中未使用的空间,此方法在您需要估算空间需求以修正错误时很有用。如需更多关于管理数据文件的相关信息,请参阅Oracle Database Administrator’s Guide。
您可以在”表空间(Tablespaces)”页面选择一个表空间,按【编辑(Edit)】, 然后浏览到”阀值(Threshold)”特性页签,在变更表空间临界值。在这个页面中,可以改变产生警告与重要警示的空间临界值。
您可以在”编辑表格空间(Edit Tablespace)”页面将表空间设定为离线。在”状态(Status)”下方选择”脱机(Offline)”,再按一下”应用(Apply)”。
6.12 删除表空间
删除表空间时,会发生下列操作:
移除存储在表空间中的对象。
从操作系统中移除数据文件。
在删除表空间之后,储存在表空间中的对象和其中的数据都无法再使用。此外,也会从数据定义说明中移除对象的定义。而且,也会从操作系统删除与表空间相关的数据文件。【 数据岛】
您可以使用Enterprise Manager来删除表空间,步骤如下:
在【服务器(Server)】 页面的【存储(Storage)】区中按一下【表空间(Tablespaces)】。会出现【表空间(Tablespaces)】页面。
选择您想要删除的表空间,再按一下【删除(Delete)】。Enterprise Manager会提示您确认是否要从操作中删除这个表空间以及相关的数据文件。
6.13 回收表空间中的空间
您可以用下列方式来回收表空间中的空间:
使用区段建议程序来决定是否可以缩小对象,以释放出空间。
执行缩小操作以压缩区段,将空间还给表空间。
表空间使用一段时间后,对表空间中的表所做的DML操作会产生不少块状的未使用空间。
您可以使用”区段建议程序(Segment Advisor)”和执行缩小操作,来回收这种未使用的空间。在缩小操作中,数据会被压缩到表的前段,多出来的空间就可以重新指派给表空间,或是留在表中等待日后插入数据时使用。表的缩小操作不会影响表的DML操作。
使用区段建议程序
您可以使用区段建议程序来分析特定的表空间,步骤如下:
在【服务器(Server)】页面【存储(Storage)】区中按一下【表空间(Tablespaces)】。会出现【表空间(Tablespaces)】页面。
选择您的表空间,在于【操作(Actions)】下拉列表中选择【运行段指导(Run Segment Advisor)】。操作开始之前请注意一下已使用的空间,之后进行比较时才看得出差异。按一下【开始(Go)】。
注意: 也可以从【指导中心(Advisor Central)】页面来启动段指导程序。
在【段指导: 表空间(Segment Advisor: Tablespaces)】的【选项(Options)】区, 显示高级选项,请接受”无限(Unlimited)”作为分析的时间限制。按一下”下一步(Next)”。
出现”段指导: 调度(Segment Advisor: Schedule)”页面。请接受”立即(Immediately)”为启动条件。也可以让此工作稍后再进行。按一下”下一步(Next)”。
会出现”段指导:复查(Segment Advisor: Review)”页面,并摘要描述工作与选择的对象。请确认是否会按照您需要的项目来执行工作,再按一下”提交(Submit)”。
接下来会出现”指导中心(Advisor Central)”页面,列出与建议程序相关且已经执行的任务工作。
选择查看任务结果,会出现”段指导任务(Segment Advisor Task)”页面,显示您所选择的表空间的建议。如果要实行一个或多个建议,请选择要实行的建议。会启动”缩小精灵(Shrink Wizard)”,者部分会在后续章节中详述。【 数据岛】
缩小数据库表
【段指导】会根据表内空间分段程度,建议表是否有可以回收的空间。在执行【段指导】程序之后,您可以按照下列步骤来缩小数据库表:
在页面下方选”缩小选项(Shrink Options)”。您可以选择”压缩段并释放空间(Compact Segments and Release Space)”,这个选项会将空间释放到表空间,或是,也可以选择”压缩区段(Compact Segments)”。请按一下”调度实行(Schedule Implementation)”来执行缩小操作。
接下来会出现”调度实行(Schedule Implementation)”页面。请接收开始时间为”立即(Immediately)”,再按一下”送出(Submit)”。
接下来会出现“调度器工作(Scheduler Jobs)“页面。其中显示工作状态。按一下”刷新(Refresh)”来更新页面,直到工作状态为”完成(Completed)”为止。在工作完成之后,您可以浏览到”表空间(Tablespace)”页面,比较目前使用空间和之前使用空间的容量。
6.14 管理还原(Undo)
还原记录包含发生变更前所做的数据副本。
还原是用来还原或倒回因明确的回滚要求或还原所造成的未确认变更。
还原提供了读一致性。
还原能启用闪回功能。
还原保留期间会影响原区段的重新使用。
还原(Undo)是一个集合性的说法,是指Oracle Database服务器在数据发生变更之前所写入的记录。还原是在需要进行回滚操作时,用来还原任何数据库所做的未确认变更。回滚操作可能是用户特别发出回滚命令以还原事物变更、事物阶段失败恢复操作的一部分或是实例、介质失败恢复作业的一部分。
还原可用于提供读一致性。每位用户都能取得一致的数据,即使是数据发生其他变更时也一样。
还原信息是Oracle Database几项闪回功能的基础,让您可以查看数据或是将数据复原到之前的时间点。这些功能包含闪回查询、闪回数据列历史记录、闪回事务历史记录以及闪回表。
还原记录存储于还原表空间中。因为还原表空间中的空间是以循环的方式来使用,还原记录很容易被覆盖。这是相当重要的一点,因为如果要成功使用闪回功能以及达成长期事务的读一致性,就不能太快覆盖记录。
如果要控制还原记录的保留时间,您可以指定一个还原保留期间, 还原保留期间会影响还原表空间的大小。在安装时,预设值会启用自动调整还原保留期间功能。
6.15 管理还原保留
还原保留自动调整(Automatic Tuning of Undo Retention): Oracle Database服务器会根据其对还原产生进行的监督,自动调整还原保留期间。
UNDO_RETENTION:会决定还原保留期间的临界值下限。
已确认的还原信息通常在它的还原空间被较新的交易覆盖时就会遗失。但是,为求读取一致性,长时间的查询有时候需要旧的还原信息来还原变更和产生较旧的数据区影像。而几项闪回功能之所以能成功,也要依赖于较旧的还原信息。
Oracle Database服务器会收集数据库使用统计值,并估计成功完成查询所需的还原空间,自动调整还原保留期间。您可以设定UNDO_RETENTION参数的临界值下限,让系统在目前的还原表空间有足够空间的前提下,至少以这项参数中所指定的时间来保留还原信息。但是在空间条件限制下,有时系统保留还原的时间可能会比临界值下限中所指定的时间还要短,才能让DML操作可以成功执行。
UNDO_RETENTION参数的预设值为900。保留期间是以秒为单位来指定的。这项参数会决定还原保留的临界值下限。系统至少会以这项参数中所指定的时间来保留还原。
注意:不能停用还原保留自动调整功能。
6.16 调整还原表空间的大小
您可以使用自动扩充还原表空间,或手动估算您所需要的还原空间,来调整还原表空间的大小。
Oracle Database支持还原表空间的自动扩充。当您建立数据库时,可能不确定还原表空间所需要的空间大小。在这种情况下,您可以启用还原表空间的数据文件自动扩充功能,让他们在需要更多空间的时候可以自动增加大小。藉由结合还原表空间自动扩充与自动调整还原保留功能,就可以保证能提供查询所需的还原信息,以确保长时间的查询可以顺利执行。
在您的系统越来越稳定,而您更熟悉还原表空间需求时,建议您将表空间的最大值设定为比还原表空间目前的大小稍多一些(10%)。
如果您决定要使用固定大小的还原表空间,【还原指导】程序会让您估计需要的容量,接着您可以计算系统所需的保留空间。
6.17 使用Enterprise Manager管理还原
您可以使用Enterprise Manager的”自动还原管理(Automatic Undo Management)”页面来查看还原设置。可查看的项目包含自动调整的还原保留期限以及它的临界值下限保留期限,还有还原表空间的名称大小。
您可以在”服务器(Server)”页面的”数据库配置(Database Configuration)”区中选择”自动还原管理(Automatic Undo Management)”,来查看其相关页面。【 数据岛】
您可以在“自动还原管理(Automatic Undo Management)”页面呼叫下列功能,来调整还原表空间的大小:
使用 Oracle 的还原指导来管理 Undo :在“自动还原管理(Automatic Undo Management)”页面的”还原指导(Undo Advisor)”区,可以指定一段过去的时间,让Oracle服务器分析还原产生结果,并且根据该结果提出新的建议。您可以通过这些分析结果点【应用(Apply)】来接受建议。
使用还原指导程序:还原指导可以用来建议您采用适当的还原保留设定,以及分析新的还原保留设定所造成的影响。
6.18 使用还原指导程序
您可以按一下”还原管理(Undo Management)”页面上的”还原指导(Undo Advisor)”来呼叫还原指导程序。
使用”还原指导(Undo Advisor)”中的”分析(Analysis)”区,可以回答下列关于还原设置的问题:
如果要保证能成功执行查询,需要还原保留时间最大值为何?这个时间对应到您执行查询的最长持续时间。
我的数据库有足够空间可容纳目前表空间设置的最大还原保留吗?请浏览到【还原指导(Undo Advisor)】页面的【分析(Analysis)】区域,点【显示图形(Show Graph)】然后注意【可能的最佳还原保留期(Best Possible Undo Retention)】选项,如果这个时间期限比最长的执行查询还要久,就表示还原表空间的设置适当。
如果最可能的还原保留时间比最长的执行查询还要少会如何?如果是这样,您的还原表空间就太小了。您必须启用表空间自动扩充功能或是手动扩充。在【手动指定以允许查询或闪回持续更长时间(Specified manually to allow for longer duration queries or flashback)】栏位输入您最长的查询执行时间,来决定表空间所需的大小。请输入适当的”分析期间(Analysis Time Period)”, 再按一下”运行分析(Run Analysis)”。
在”分析(Analysis)”下,请留意”新还原保留所需的表空间大小(Required Tablespace size for New Undo Retention)”。
我要如何设定还原来配合闪回处理作业?如果您正在使用闪回功能,例如闪回查询或是闪回表,可以使用还原指导程序来决定要如何设定您的表空间与还原保留。您必须确定还原数据并未被覆盖,闪回操作才能成功。如果要建立闪回复原策略,您可以设定临界值下限参数,此参数会决定自动还原调整所需的最低值。
如果您的闪回复原策略需要往回推八小时复原认为错误,请将临界值下限设定为8小时。
“还原保留长度所需的表空间大小(Required Tablespace Size by Undo Retention Length)”图标会显示保留期间与还原表格空间大小之间的关系,还会标示出可回答上述问题的信息点。
此章节中,您应该学会如何:
使用EM来查看数据库存储结构
在您数据库中建立新的存储结构
– 多路复用重做日志文件
– 建立和修改表空间
使用区段建议程序和回收数据库中为使用的空间
扫码关注dbDao 微信公众号:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致新人求教!哪位大神知道一些数据库oracle漏洞?_dbdao吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,142贴子:
新人求教!哪位大神知道一些数据库oracle漏洞?
新人求教!哪位大神知道一些数据库oracle漏洞?恳请教授
炫酷暗黑奇迹MU页游强悍来袭,秒怪秒BOSS,来玩就送海量RMB礼包!
不是一些漏洞 而是每个大规模软件都会对应有较多的漏洞和补丁, 具体可以参考
例如 CVE-OverviewUnspecified vulnerability in the XDB - XML Database component in Oracle Database Server 11.2.0.3, 11.2.0.4, 12.1.0.1, and 12.1.0.2 allows remote authenticated users to affect confidentiality via unknown vectors.
如果真的有心研究漏洞的话,英语这关还是需要过的,否则没法融入安全这个圈子
我现在没时间,主要是想测试一个oracle漏洞,需要测试过程,结果,能教教我吗
这是一些SQL注入的例子:
这是一些SQL注入的例子:
这是一些SQL注入漏洞的例子:
这是一些SQL 漏洞的例子:
这几个一样?
贴吧热议榜
使用签名档&&
保存至快速回贴【dbdao Hadoop 大数据学习】Hadoop fair Scheduler(公平调度)
引导式IT在线教育
Hadoop 技术学习QQ群号 :
本文固定链接:/archives/hadoop-fair-scheduler.html
原文地址:http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
这个文档是描述 FairScheduler,一个Hadoop中可拔插的调度,允许YARN应用程序在大型的集群中公平的共享资源。
公平调度是给应用程序分配资源的方法,这样随着时间的推移,所有的应用程序都会得到一个相同的共享资源。Hadoop NextGen 能够调度多个资源类型。默认情况下,Fair Scheduler基于内存进行公平调度。其也可以被配置调度内存和CPU,使用Ghodsi等人开发的Dominant Resource Fairness概念。当只有一个应用程序运行时,那个应用程序使用整个集群。当其他应用程序被提交,空闲的资源被分配给新的应用程序,这样每个应用程序最终获得大致相同的资源量。不用于默认的Hadoop调度,默认的调度是一个应用程序的队列,这可以让短因此程序在合理的时间内完成,而不是饥饿的长期应用程序。其也是一个合理的方式来在一些用户之间共享集群。最后,公平共享也可以以应用程序优先级工作-优先级被作为权重来确定每个应用程序应该获得的资源分数。
这个调度将应用程序进一步转换为“队列”,并在这些队列之间公平的共享资源。在默认情况下,所有用户共享一个用户,名称是“default”。如果一个应用程序专门列出了在一个容器中的队列的资源请求,这个请求被提交到队列。其也可以通过配置包含需求的用户名来分配队列。在每个队列中,调度策略被用于在运行中的应用程序之间共享资源。默认情况下是急用内存的公平调度,但是在Dominant Resource Fairness中的FIFO和多资源也可以被配置。队列可以被安排在层级结构中分配资源和被配置权重,以共享特定比例的集群。
除了提供公平共享,Fair Scheduler允许分配保证给队列的最小共享,这个对于确保某些用户、组或生产应用程序始终获得足够的资源是有帮助的。当一个队列包含应用程序,它获得至少其最小的共享,但是当队列不需要其保证足够份额时,多余的是可以在其他应用程序直接分裂。这可以让调度程序保证队列的能力,当这些队列不包含应用程序时,能有效的利用资源。()
Fair Scheduler 让所有的应用程序以默认形式运行,但是也以通过配置文件来限制每个用户和每个队列运行的应用程序的数目。这在一个用户在一次提交数百个应用程序时是有帮助的,或者在一般情况下提升性能,例如一次性运行太多的应用程序,会导致太多的中间数据被创建或太多的上下文切换。限制应用程序不会导致任何随后提交的应用程序失败,只会等待在调度中的队列,直到一些用户的更早的应用程序完成。
3.可拔插策略中的层级化队列
公平调度支持层级化队列。所有队列起源于一个被称为“root”的队列,可利用的资源被分布式的,以典型的公平调度的方式存放在root队列的子队列中。然后,这些孩子把分配给他们的资源以同样的方式分配给他们的孩子。应用程序可能只在子队列上被调度。通过将它们作为它们的父母的子元素放置在公平调度分配文件中,队列可以被指定作为其他队列的子元素。
一个队列的名称从它的父母开始,以分隔符为周期。所以,一个在root队列下队列名称为”queue1”的队列,将被关联作为”root.queue1”,并且在队列parent1之下的队列”queue2”将被关联作为“root.parent1.queue2”,当关联到队列时,root部分的名称时可选的,也就是queue1可以被仅仅关联为”queue1”,queue2可以被关联简称“parent1.queue2”
除此之外,公平调度允许对每个队列设置不同的客户策略以任何用户想的范式,来允许共享队列的资源。一个客户策略可以通过延伸org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.SchedulingPolicy被构建。FifoPolicy, FairSharePolicy (默认情况),并且DominantResourceFairnessPolicy是内置的,可以很容易地被使用。
某些查询不支持原来(MR1)存在的Fair Scheduler.其中,是使用一个自定义策略,控制某些应用程序的“boosting”优先级。
4.自动地将应用程序放置到队列中
Fair Scheduler允许管理员配置策略,自动将提交的应用程序放置到适当的队列中。位置取决于提交的用户和组和通过应用程序传递的被请求的队列。一个策略包含一组规则,将传入的应用程序按顺序分类。每个规则都可以将应用程序放在一个队列中,拒绝它,或者继续下一个规则。下面的配置文件是如何配置这些策略的。
为了使用Fair Scheduler 首先在yarn-site.xml分配合适的调度类:
&property&&name&yarn.resourcemanager.scheduler.class&/name&&value&org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler&/value&&/property&
自定义的Fair Scheduler 通常调用修改2个文件。首先,在你现有的配置目录中的yarn-site.xml文件中增加配置属性可以设置调度-广泛的选项。第二,在大多数情况下,用户将创建一个分配文件列表,包含存在的队列和它们各自的权重和容量。配置文件每10秒加载一次,允许在运行的时候被修改。()
6.1 在yarn-site.xml可以被配置的属性
yarn.scheduler.fair.allocation.file
分配文件的路径。一个分配文件是一个XML清单,描述队列和它们的属性,除了某些策略默认值之外。这个文件必须是XML格式。如果是一个相对路径,文件在类路径中(通常是Hadoop配置路径)。默认是fair-scheduler.xml
yarn.scheduler.fair.user-as-default-queue
是否使用用户名关联分配作为默认的队列名,在未指定队列名称的情况下。如果这个被设置为false或者未设置,所有的作业都有一个共享的默认队列,被称为”default”。默认是true。如果在分配文件中给出了队列的放置策略,则忽略此属性。
yarn.scheduler.fair.preemption
是否使用优先级,默认是false
yarn.scheduler.fair.preemption.cluster-utilization-threshold
在优先级被踢后,利用率的阈值。利用率极端的最大比例是使用所有资源的能力。默认是0.8f。
yarn.scheduler.fair.sizebasedweight
基于它们的大小,分配共享到单个应用程序,而不是不论大小提供一个平等共享给所有的应用程序。当设置为true时,应用程序被由自然对数加上应用程序的总请求的内存,除以自然对数2加权。默认是false。
yarn.scheduler.fair.assignmultiple
是否允许在一个心跳中分配多个容器。默认为false。
yarn.scheduler.fair.max.assign
如果.assignmultiple属性设置为true,那么此参数允许设置在一个心跳中分配的最大容器数目。默认是-1,也就是无限制
yarn.scheduler.fair.locality.threshold.node
对于特定节点上请求容器的应用程序,最后一个分配的容器等待之前允许放置到其他节点的调度机会数。表示在介于0和1之间浮动。其中,作为集群大小的一部分,是通过了的调度机会数,默认是-1,也就是不放弃任何调度机会。
yarn.scheduler.fair.locality.threshold.rack
对于特定机架上的请求容器的应用程序,最后一个分配的容器等待之前允许放置到其他机架的调度机会数。其中,作为集群大小的一部分,是通过了的调度机会数,默认是-1,也就是不放弃任何调度机会。
yarn.scheduler.fair.allow-undeclared-pools
如果这是true,新的队列可以在应用程序提交的时候被创建,是因为它们通过提交被作为应用程序的队列被指定,或因为它们通过用户默认队列属性被放置。如果这是false,任何时间的应用程序可以没放置到没有在分配文件中指定的队列中,而不是放置到”default”队列中。如果一个队列放置策略在分配文件中被指定,则忽略此属性。()
yarn.scheduler.fair.update-interval-ms
锁住调度和重新计算公平共享,重新计算的需求,和检查是否是由于强占的区间。默认是500毫秒。
6.2 分配文件的格式
分配文件必须是XML格式。这个格式包含5类元素:
1.队列元素:
表示队列。队列元素可以选择一个可选属性“type”,当设置为‘parent’可以将其设置为父队列。这个当我们想创建一个父队列而不配置任何子队列时是有用的。每个队列元素可能包含下列属性:
-minResources:队列最小资源所有权,是以”X mb,Y vcores”形式。对于单一资源公平策略,vcores值被忽略。如果一个队列的最小共享不满足,则将在同一个父之前的任何其他队列中提供可用的资源。在单一资源公平策略下,如果一个队列的内存使用率低于其最小内存共享,则被认为是不满足的。在主导资源公平下,一个队列如果它的使用占主导地位的资源相对于集群容量是低于其最低份额的,那么其没认为是不满意的。如果在这个情况下,多个队列是不满足的,资源到队列是相关资源实例用和最小值中间最小的比例。注意这是可能的,一个队列低于其最小值,可能不会立即获得其最小值当其提交一个应用程序时,因为已经运行的作业可能会使用到这些资源。()
– maxResources:队列被允许的最大资源,以”X mb,Y vcores”的形式。对于单一资源的公平策略,Vcores值被忽略。如果其总使用量超过这个限制,一个队列将永远不会被分配到一个容器。
– maxRunningApps:限制同时从队列中运行的应用程序数目。
– maxAMShare:限制可用于运行应用程序主程序的队列的公平份额的分数。此属性只能用于子队列。例如,如果设置为1.0f,然后AMs在子队列可以达到100%的内存和CPU的公平分享。对-1.0f价值将禁用此功能,amShare不会被检查。默认值是0.5f
-weight:非比例的于其他队列共享集群,权重默认值是1,并且一个权重是2的队列应得到作为一个队列权重越2倍多的资源。
– schedulingPolicy:为任何队列设置调度策略。这个允许的值是”fifo”/”fair”/”drf”或任何org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.SchedulingPolicy.延伸类。默认是”fair”。如果是”fifo”,在此之前提交的应用程序被优先给与容器,但是应用程序提交之后可能同时运行,如果这里在满足早期应用程序后,集群上有剩余的空间。
– aclSubmitApps:可以向队列中提交应用程序的用户和/或组的列表。
– aclAdministerApps:可以管理队列的用户和/或组的列表。目前唯一的能管理的动作是杀死一个应用程序。
– minSharePreemptionTimeout:从其他队列试图强占容器资源之前,在最小共享下的秒数。如果没设置,队列将继承其父队列的值。
– fairSharePreemptionTimeout:从其他队列试图强占容器资源之前,在公平共享阈值下的秒数。如果没设置,队列将继承其父队列的值。
– fairSharePreemptionThreshold:队列的公平共享优先权阈值。如果队列等待fairSharePreemptionTimeout没有接受到fairSharePreemptionThreshold* fairShare相应的资源,其可以从其他队列强占容器资源。如果没设置,队列将继承其父队列的值。
2.用户元素:
它代表了管理个人用户行为的设置。它们可以包含一个单一的属性:maxrunningapps,对于特定用户运行应用程序的一个限制。()
3.一个userMaxAppsDefault元素:
对于未指定其他指定的任何用户,设置默认运行应用程序限制。
defaultFairSharePreemption Timeout 元素:
对root队列设置公平共享强占超时时间,被root队列中的fairSharePreemptionTimeout 元素重写
defaultMinSharePreemptionTimeout 元素:对root队列设置最小共享强占超时时间,被root队列中的defaultMinSharePreemptionTimeout元素重写
defaultFairSharePreemptionThreshold 元素:对root队列设置最小共享强占阈值,被root队列中的defaultFairSharePreemptionThreshold元素重写。
7.queueMaxAppsDefault 元素:为队列设置默认运行应用程序限制;被每个队列中的maxRunningApps元素重写。
queueMaxAMShareDefault 元素:为队列设置默认AM资源;被每个队列的maxAMShare 元素重写。
defaultQueueSchedulingPolicy 元素:为队列设置默认的调度策略;如果被指定的话,被每个队列中的schedulingPolicy元素重写。默认是fair
queuePlacementPolicy元素:
其中包含一个规则元素列表,告诉调度如何放置传入的应用程序到队列。规则按照它们被列出的顺序被应用。规则可以获取参数。所有的规则接受”create”参数,这表示规则是够能创建一个新队列。“create”默认是true,如果设置为false并且该规则应该放置应用程序到队列,但是没有在分配文件中配置,我们会继续到下一个规则。最后一个规则必须是一个可能永远不发出继续的规则。有效的规则是:()
-specified:该应用程序配放置到其去修的队列。如果应用程序需求无队列,例如,其指定”default”,我们继续。如果应用程序被需求一个队列名开始或结束是“”.“”,例如,命名例如”.q1”或“q1.“,将被拒绝。
-user:应用程序被放置到名称为提交的用户的队列中。用户名的“.”将被”_dot_”替换,例如对于用户“first.last”的用户是”first_dot_last”
– primaryGroup:应用程序被放置到一个名称为提交用户的主组的队列中,组名中的”.”被替换为”_dot_”,例如组名为”one.two”是“one_dot_two”
– secondaryGroupExistingQueue: 应用程序被放置到一个名称为提交用户的匹配第二组名的队列中。第一个被匹配的第二组名将被选中。组名中的”.”将被替换为”_dot_”,例如一个用户的第二组名为”one.two”将被置换为“one_dot_two”,如果这个队列存在的话。
– nestedUserQueue:嵌套规则。(忽略)
-default:该应用程序被放置在默认规则的属性queue’指定的队列中。如果’queue’为设置,那么应用程序被放置到’root.default’队列。
-reject:应用程序被拒绝
一个分配文件的例子:
&?xmlversion=&1.0&?&&allocations&&queuename=&sample_queue&&&minResources&10000 mb,0vcores&/minResources&&maxResources&90000 mb,0vcores&/maxResources&&maxRunningApps&50&/maxRunningApps&&maxAMShare&0.1&/maxAMShare&&weight&2.0&/weight&&schedulingPolicy&fair&/schedulingPolicy&&queuename=&sample_sub_queue&&&aclSubmitApps&charlie&/aclSubmitApps&&minResources&5000 mb,0vcores&/minResources&&/queue&&/queue&&queueMaxAMShareDefault&0.5&/queueMaxAMShareDefault&&!-- Queue 'secondary_group_queue' is a parent queueand mayhaveuserqueuesunderit --&&queuename=&secondary_group_queue& type=&parent&&&weight&3.0&/weight&&/queue&&username=&sample_user&&&maxRunningApps&30&/maxRunningApps&&/user&&userMaxAppsDefault&5&/userMaxAppsDefault&&queuePlacementPolicy&&rulename=&specified& /&&rulename=&primaryGroup& create=&false& /&&rulename=&nestedUserQueue&&&rulename=&secondaryGroupExistingQueue& create=&false& /&&/rule&&rulename=&default& queue=&sample_queue&/&&/queuePlacementPolicy&&/allocations&
注意,为了向后兼容性,queue元素可以被pool元素代替。
6.3 队列访问控制列表
队列的访问控制列表(ACLS)允许管理员来控制在特定队列上,谁可以执行动作。它们都配置了aclSubmitApps和aclAdministerApps属性,可以对每个队列进行设置。目前只支持管理的行动是kill 应用进程。任何人管理队列的人也可以提交一个队列。这个属性的格式例如“user1,user2 group1,group2”或“group1,group2”。一个在队列上的动作将被提交,如果其用户或组在队列的ACL中或者任何父队列的ACL中。所以如果队列2在队列1中,并且user1在队列1的ACL中,user2在队列2的ACL中,那么这2个用户都可以提交队列2。()
注意:分隔符是空格符。指定唯一的ACL组,使用空格符开始。
在默认情况下,Root队列的ACL是”*”,因为ACL是传递的,意味着每个人可以从每个队列中提交和杀死应用进程。开始限制访问,变更root队列的ACL为其他的而不是”*”
公平调度程序在运行时通过一些机制提供给管理的支持:
7.1 在运行时修改配置
其可以通过编辑分配文件,来修改最小共享,限制,权限,强制超时时间和队列调度策略和在允许时间。调度将在看到其被修改后10-15秒后重新加载()
7.2 通过Web UI 监控
当前应用程序,队列,和公平共享可以通过资源管理器的web接口来检查,在http://*ResourceManager URL*/cluster/scheduler。
在web界面上的每个队列都可以看到下列字段:
1.userd Resources – 队列中分配给容器的资源总和。
Num Active Applications – 已接收至少一个容器的队列中的应用程序的数量。
Num Pending Applications –尚未接收任何容器的队列中的应用程序的数量。
Min Resources – 保证队列最小资源的配置。
Max Resources – 已被允许的队列的配置的最大资源。
Instantaneous Fair Share –队列的瞬时公平共享资源。这些共享只考虑活动的队列(那些运行的应用程序),和用于的调度策略。当其他队列没有使用它们时,队列可能在它们的共享之外分配资源。一个队列的资源消耗出来或低于其公平份额,而不会有瞬时容器争抢。
Steady Fair Share – 队列资源的稳定的公共共享。这些共享考虑所有的队列,不论它们是否是积极的(有运行应用程序)。当配置和容量变化时,这些都被计算较少的变更。它们的意思是提供可视性,在用户期望的资源上,并因此显示在WEB 界面上。
7.3 在队列之间移动应用进程
Fair Scheduler 支持 移动一个正在运行的应用程序到一个不同的队列。这个对于将一个重要的应用程序移动到一个优先级更高的队列,或将不重要的应用程序移动到优先级更低的队列是有帮助的。应用程序移动可以通过运行 yarn application -movetoqueue appID -queue targetQueueName进行。
当一个应用程序被移动到一个队列,其享有的分配称为计数于新的队列的分破,而不是旧的确定公平性的目的。如果增加的应用程序资源到队列将违反maxRunningApps 或maxResources,一个试图移动一个应用程序到一个队列将失败。
引导式IT在线教育
dbDao 百度贴吧:/dbdao
扫码关注dbDao 微信公众号:
最新教程周点击榜
微信扫一扫}

我要回帖

更多关于 账户表数据库设计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信