谁能解释一下从教科书中摘录的粗体字词的确切含义? “次要名称节点的状态滞后于主要名称节点的状态”是什么意思?
二级名称节点保留合并命名空间图像的副本,可在名称节点出现故障时使用。 **然而,国家 次要名称节点滞后于主要名称节点,因此如果主要名称节点完全失败,数据丢失几乎是肯定的。**在这种情况下,通常的做法是将名称节点在 NFS 上的元数据文件复制到辅助并将其作为新的主要运行。
提前致谢
最佳答案
Hadoop 1.x:
当我们启动 ha hadoop 集群时,它会创建一个文件系统镜像,用于保存整个 hadopp 集群的元数据信息。当一个新条目进入 hadoop 集群时,它会进入编辑日志。 Secondary NameNode 定期读取和查询编辑并检索信息并将信息与 fsimage 合并。如果NameNode发生故障,hadoop管理员可以借助fsimage和edits启动hadoop集群。(在启动期间NameNode会读取edits和fsimage,所以不会有数据丢失)
fsimage 和 edits log 已经以元数据的形式保存了关于文件系统的更新信息,因此在主 hadoop 管理员完全失败的情况下,可以在 edits log 和 fsimage 的帮助下恢复集群信息。
Hadoop 2.x:
在 hadoop 1.x 中,NameNode 是单点故障。 NameNode 的故障是整个 hadoop 集群的停机时间。 NameNode 机器上的软件或硬件升级等计划内维护事件会导致集群停机。为了解决这个问题,hadoop 社区添加了高可用性功能。在设置 hadoop 集群期间,您可以选择所需的集群类型。
HDFS NameNode 高可用性功能使您能够在具有热备用的主动/被动配置中的同一集群中运行冗余 NameNode。两个 NameNode 需要相同类型的硬件配置。
在 HA 配置中,一个 NameNode 将处于事件状态,另一个将处于备用状态。ZKFailoverController (ZKFC) 是一个 ZooKeeper 客户端,用于监视和管理 NameNode 的状态。当事件NameNode宕机时,它使备用NameNode成为事件NameNode,而主NameNode将在您启动它们时变为备用。请在本网站上获得更多信息:http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.8.0/bk_system-admin-guide/content/ch_hadoop-ha-5.html
在 HA hadoop 集群中,Active NameNode 在 JournalNode 中读取和写入元数据信息(仅限基于 Quorum 的存储)。 JournalNode 是 HA hadoop 集群中的一个独立节点,用于读写编辑日志和 fsimage。
备用NameNode始终与事件NameNode同步,两者通过Journal Node相互通信。当主动节点执行任何 namespace 修改时,它会持久地记录对这些 JN 中的大多数的修改记录。 Standby NameNode不断地监控journal节点的编辑日志,并相应地更新其命名空间。在发生故障转移时,standby NameNode将确保其命名空间在更改为事件状态之前根据编辑日志完全更新。当备用处于事件状态时,它将开始将编辑日志写入 JournalNode。
Hadoop 不会将任何数据保存到 NameNode 中,所有数据都驻留在数据节点中,如果 NameNode 发生故障,也不会丢失任何数据。
关于hadoop - 二级名称节点功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486847/
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
当我创建一个Rails应用程序时,控制台:railsnewfoo我的代码可以使用字符串“foo”吗?puts"Yourapp'snameis"+app_name_bar 最佳答案 Rails.application.class将为您提供应用程序的全名(例如YourAppName::Application)。从那里您可以使用Rails.application.class.parent获取模块名称。 关于ruby-on-rails-应用程序的名称是否可以作为变量使用?,我们在StackOve
已经有一个问题回答了如何将“America/Los_Angeles”转换为“PacificTime(US&Canada)”。但是我想将“美国/太平洋”和其他过时的时区转换为RailsTimeZone。我无法在图书馆中找到任何可以帮助我完成此任务的东西。 最佳答案 来自RailsActiveSupport::TimeZonedocs:TheversionofTZInfobundledwithActiveSupportonlyincludesthedefinitionsnecessarytosupportthezonesdefinedb
如thisquestion,当在其自己的赋值中使用未定义的局部变量时,它的计算结果为nil。x=x#=>nil但是当局部变量的名称与现有的方法名称冲突时,就比较棘手了。为什么下面的最后一个示例返回nil?{}.instance_eval{a=keys}#=>[]{}.instance_eval{keys=self.keys}#=>[]{}.instance_eval{keys=keys}#=>nil 最佳答案 在Ruby中,因为可以在没有显式接收器和括号的情况下调用方法,所以在局部变量引用和无接收器无参数方法调用之间存在语法歧义:f
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam
对于用户模型,我有一个过滤器来检查用户的预订状态,该状态由整数值(0、1或2)表示。UserActiveAdmin索引页上的过滤器是通过以下代码实现的:filter:booking_status,as::select然而,这会导致下拉选项为0、1或2。当管理员用户从下拉列表中选择它们时,我更愿意自己将它们命名为“未完成”、“待定”和“已确认”之类的名称。有没有办法在不改变booking_status在模型中的表示方式的情况下做到这一点? 最佳答案 假设booking_status是模型中的枚举字段,您可以使用:过滤器:booking
在Rails自动生成的功能测试(test/functional/products_controller_test.rb)中,我看到以下代码:classProductsControllerTest我的问题是:方法调用products()在哪里/如何定义?products(:one)到底是什么意思?看代码,大概意思是“创建一个产品”,但是它是如何工作的呢?注意我是Ruby/Rails的新手,如果这些是微不足道的问题,我深表歉意。 最佳答案 如果您查看test/fixtures文件夹,您会看到一个products.yml文件。这是在您创建
在Ruby中有运算符(operator)。在API中,他们没有命名它的名字,只是:Theclassmustdefinetheoperator...Comparableusestoimplementtheconventionalcomparison......theobjectsinthecollectionmustalsoimplementameaningfuloperator...它叫什么名字? 最佳答案 参见上面的@Tony。然而,它也被称为(俚语)“宇宙飞船运算符(operator)”。