Hadoop2.5.1 HDFS High Availability With QJM(Quorum Journal Manager)

HDFS High Availability 高可用(HA) with QJM 什么是高可用: 1.持续服务的能力。 2.避免single point of failure 单点故障 SPOF Fail Over 容灾 fault tolerent 容错 hadoop实现HA的两种方式 1.Using the Quorum Journal Manager (QJM) 2.NFS net FileSystem 3.QJM架构... 阅读详情

(部分太简单一看就懂的,或看不懂的不翻译)

http://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

一、 目的

1. 介绍HDFS HA特性概况 

2. 介绍如何使用QJM配置和管理高可用HDFS集群 

二、 背景

Hadoop2.0之前,HDFS集群的NN有单点故障问题。每个集群只有一个单独的NN,如果NN所在集群宕机或者进程不可用,整个集群也将不可用,直到NN被重启或者指定到别的主机。

 

影响HDFS集群高可用性的主要原因有以下两个:

1. 如机器宕机等非计划内事件,在NN的重启操作前,集群将处于不可用状态。 

2. 如软硬件更新升级等计划性维护,将导致一个小阶段的不可用。 

 

HDFS HA特性通过提供选项,允许在同一个集群以主动/被动方式,在线运行两个冗余的NN,解决了上面的问题。这将允许在如机器宕机等情况下,快速恢复到一个新的NN;或在计划性维护时,管理员以优雅的方式执行故障恢复。

 

三、 架构


在一个普通的高可用集群里,有两台独立机器被配置为NN。在任何时间里,只有一个是处于活动状态,而另一个则处于备用状态。活动NN负责所有客户端通信,同时,备用NN只是一个简单的从节点,维护一个为了在需要时能快速故障恢复的状态。

为了备用NN能通过活动NN通过状态,两个节点通过一组独立进程JN进行通信。任何执行在活动NN的edits,将持久地记录到大多数JN里。备用NN能够在这些JN里读取到edits,并且不断的监控记录的改变。当备用NN读取到这些edits时,就把它们执行一遍。发现故障恢复时,备份NN在确保从JN中读取到所有edits后,就将自己提升为活动NN。这就确保了再发生故障恢复前命名空间已完全同步。

为了提供快速的故障恢复,备用NN拥有最新的块地址信息也是非常重要的。为了实现这个要求,DN同时配置有两个NN的地址,并且同时向两者发送块地址信息和心跳。

在同一时间里,保证高可用集群中只有一个活动NN是至关重要的。否则,两个NN的状态将很快出现不一致,数据有丢失的风险,或者其他错误的结果。为了确保这种属性、防止所谓的脑裂场景(split-brain scenario),在同一时间里,JN只允许一个NN写edits。故障恢复期间,将成为活动节点的NN简单的获取写edits的角色,这将有效的阻止其他NN继续处于活动状态,允许新活动节点安全的进行故障恢复。

四、 硬件资源

为了部署高可用集群,需要做如下准备:

NameNode 机器:运行活动NN和备用NN的硬件配置应该是一致的。这和非高可用集群的配置一样。 

l JournalNode 机器:JN进程相对轻量级,所以这些进程可以合理的配置在Hadoop集群的其他机器里,如NN,JT、RM。注意:必须至少有3个JN进程,因为edits需要写入到大多数的JN里。这就允许系统单台机器的错误。你也可以运行3个以上JN,但为了实际提高系统对错误的容忍度,最好运行奇数个JN。执行N个JN的集群上,系统可以容忍(N-1)/2台机器错误的同时保持正常工作。 

注意:在高可用集群里,备用NN也扮演checkpoint,所以没必要再运行一个Secondary NN,CheckpointNode,或BackupNode。事实上,这样做(运行上述几个节点)是一种错误。这也就允许复用原来指定为Secondary Namenode 的硬件,将一个非高可用的HDFS集群重新配置为高可用的。

五、 部署

1.配置预览

HA配置是向后兼容的,允许现有的单个NN节点的配置不做任何改变。新的配置被设计成集群里的所有节点都有相同的配置,而不需要根据节点的类型在不同的机器上部署不同的配置文件。

类似于HDFS Federation,HA集群复用nameservice ID 来标识一个单一实例是否可能是包含在多个HA NN中。另外,增加一个新的抽象名词NameNode ID。集群中,每一个不同的NN使用不同的NameNode ID区分。为了支持所有节点使用单个配置文件,所有相关的配置参数都以nameservice ID 为后缀,类似于NameNode ID。

2.配置详情

在hdfs-site.xml中增加几个配置:

Ø dfs.nameservices - NS的逻辑名词

指定一个逻辑名词,后续的配置选项中将使用到;可以任意指定一个名称,后续将作为HDFS绝对路径的一个权威组件。

注意:如果集群中有使用HDFS Federation,此配置项须同时包含其他NS名称、HA,使用逗号分隔。

<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>

Ø dfs.ha.namenodes.[nameservice ID] - NS 里每个 NN 的唯一标识 

使用逗号分隔配置所有NN。DN通过此配置确定集群中的NN。

<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>

注意:目前每个NS最多只能配置两个NN。


Ø dfs.namenode.rpc-address.[nameservice ID].[name node ID] - 为每个NN指定完全限定的RPC地址

为前面指定的NN,设置完整地址、端口。

<property>
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>
    <value>machine1.example.com:8020</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.mycluster.nn2</name>
    <value>machine2.example.com:8020</value>
</property>

注意:如果你愿意的话,同样可以设置 servicerpc-address。

Ø dfs.namenode.http-address.[nameservice ID].[name node ID]

<property>
    <name>dfs.namenode.http-address.mycluster.nn1</name>
    <value>machine1.example.com:50070</value>
</property>
<property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>machine2.example.com:50070</value>
</property>

Ø dfs.namenode.shared.edits.dir - 指定JN里可读写edits的NN注意:如果你打开了Hadoop 的安全特性,也可以使用https地址。

这是配置JN地址的唯一一个配置。JN提供共享编辑存储,活动NN写入、备用NN读取以保证更新到活动节点对文件系统做出的所有修改。虽然必须指定几个JN地址,但只能配置一次。格式为:

qjournal://host1:port1;host2:port2;host3:port3/journalId

每个NS中,JournalId是唯一的标识,这允许一个单独的JN集合为多个命名系统提供存储。

虽然不是必须的,journalId 复用NS id 是个好主意。

<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://node1.example.com:8485;node2.example.com:8485;node3.example.com:8485/mycluster</value>
</property>

Ø dfs.client.failover.proxy.provider.[nameservice ID] - HDFS客户端连接活动NN的Java类 

配置DFS客户端决定当前活动NN的Java类名。目前只有以下一个实现。

<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

Ø dfs.ha.fencing.methods - 发生故障时,用来隔离活动NN的一些脚本或Java类 

在任何给定时间只有一个节点处于活动状态,这对系统的正确性是理想的。更重要的是,当是用QJM时,只有一个NN被允许写入到JNs,所以不存在脑裂的场景使元数据文件系统被损坏的潜在危险。

然而,当发生故障恢复时,仍然有可能出现上一个活动NN接受客户端读请求,在NN关闭前、尝试写入JNs的时候,这可能已经过期了。出于这个原因,即使使用QJM,配置一些隔离方法也是可取的。

然而,为了提高在隔离方法失效时系统的可用性,最好是保证列表最后一个隔离方法返回成功结果。

注意:如果你选择不使用实际的隔离方法, 你仍然必须做一些设置,如"shell(/bin/true)"。

故障恢复时的隔离方法配置为以换行分隔的列表,按顺序尝试表达式知道有一个指明了隔离成功。Hadoop有两种方法: shell 和 sshfence 。如果想实现自己的隔离方法,可以参考org.apache.hadoop.ha.NodeFencer 类。

 sshfence - SSH到活动节点并且杀掉进程 

SSH到目标节点,使用fuser杀掉监听服务的进程。为了此隔离方法能正常工作,必须指定一个能够SSH到目标节点的秘钥。因此,必须配置dfs.ha.fencing.ssh.private-key-files选项:

<property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
</property>
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/home/exampleuser/.ssh/id_rsa</value>
</property>
 可选的,可以配置一个标准的用户名或端口执行 SSH 。也可以为 SSH 配置一个超时时间(毫秒),超过这个时间则认为隔离方法失败:

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence([[username][:port]])</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.connect-timeout</name>
  <value>30000</value>
</property>

shell - 执行任意shell命令以隔离活动NN 

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>shell(/path/to/my/script.sh arg1 arg2 ...)</value>
</property>

这个shell命令将运行在以“_”代替“.”的所有当前hadoop配置变量组成的环境变量中。这些配置已经被一些NN指定的格式提升为通用形式——例如,dfs_namenode_rpc-address可能包含目标节点的RPC,尽管配置的是dfs.namenode.rpc-address.ns1.nn1。“(”和“)”之间的字符串是直接传递给一个bash shell,不得包含任何关闭括号。

另外,下面提及目标节点的变量也是可用的:

$target_host

hostname of the node to be fenced

$target_port

IPC port of the node to be fenced

$target_address

the above two, combined as host:port

$target_nameserviceid

the nameservice ID of the NN to be fenced

$target_namenodeid 

the namenode ID of the NN to be fenced

环境变量也可以用来替代shell命令本身,如:

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>shell(/path/to/my/script.sh --nameservice=$target_nameserviceid $target_host:$target_port)</value>
</property>

注意:此隔离方法不会导致任何延时。如果需要延时,则需要自己在脚本里实现。此 shell 命令返回 0 时,表示隔离成功。返回其他,表示隔离不成功,列表中的下一个隔离方法将被尝试执行。

Ø · fs.desfultFS - 当没有指定时,HDFS客户端使用的默认前缀

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>


Ø · dfs.journalnode.edits.dir - JN
进程保存本地状态的路径 

只能配置为单独的一个路径。提供冗余的方式:1、运行多个独立JN;2、配置在本地连接到RAID矩阵的路径。

<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/path/to/journal/node/local/data</value>
</property>


3.部署详情 

配置完所有必须的选项后,启动要运行的JN。可以使用命令"hdfs-daemon.sh journalnode"(译注:实际操作时,发现是hdfs journalnode 或hadoop-daemon.sh start journalnode)。

当JN启动完成,要进行首次同步两个HA NN的磁盘元数据。

  1. 如果你是在设置一个新的HDFS集群,你需要先在任意一个NN执行命令(hdfs namenode -format) 
  2. 如果已经格式化好NN,或者正在把非HA集群转化为HA集群,你可以拷贝原NN的元数据目录到新的NN,然后在新NN上执行"hdfs namenode -bootstrapStandby",执行这个命令的同时会确保JN包含足够的edits事务以启动两个NN。 
  3. 如果是在转化一个非HA集群为HA,你可以执行"hdfs -initializeSharedEdits"命令,这个命令将使用来自NN edits目录的edits数据初始化JN。 

这时候你可以启动所有HANN节点,就像你平常启动一个NN一样。

你可以分别使用每个NN配置的Http地址访问各个NN网页。你可以看到在配置的地址后面紧跟着NN的HA状态(“standby”或“active”)。启动HANN的初始状态是standbby。

4.管理命令

现在你的HA NN都配置好并且启动了,你可以使用另外的命令管理你的HA HDFS。

$ hdfs haadmin
Usage: DFSHAAdmin [-ns <nameserviceId>]
    [-transitionToActive <serviceId>]
    [-transitionToStandby <serviceId>]
    [-failover [--forcefence] [--forceactive] <serviceId> <serviceId>]
    [-getServiceState <serviceId>]
    [-checkHealth <serviceId>]
    [-help <command>]


· transitionToActive and transitionToStandby - transition the state of the given NameNode to Active or Standby This guide describes high-level uses of each of these subcommands. For specific usage information of each subcommand, you should run "hdfs haadmin -help <command>".

These subcommands cause a given NameNode to transition to the Active or Standby state, respectively. These commands do not attempt to perform any fencing, and thus should rarely be used. Instead, one should almost always prefer to use the "hdfs haadmin -failover" subcommand.

· failover - initiate a failover between two NameNodes 

This subcommand causes a failover from the first provided NameNode to the second. If the first NameNode is in the Standby state, this command simply transitions the second to the Active state without error. If the first NameNode is in the Active state, an attempt will be made to gracefully transition it to the Standby state. If this fails, the fencing methods (as configured by dfs.ha.fencing.methods) will be attempted in order until one succeeds. Only after this process will the second NameNode be transitioned to the Active state. If no fencing method succeeds, the second NameNode will not be transitioned to the Active state, and an error will be returned.

· getServiceState - determine whether the given NameNode is Active or Standby 

Connect to the provided NameNode to determine its current state, printing either "standby" or "active" to STDOUT appropriately. This subcommand might be used by cron jobs or monitoring scripts which need to behave differently based on whether the NameNode is currently Active or Standby.

· checkHealth - check the health of the given NameNode 

Connect to the provided NameNode to check its health. The NameNode is capable of performing some diagnostics on itself, including checking if internal services are running as expected. This command will return 0 if the NameNode is healthy, non-zero otherwise. One might use this command for monitoring purposes.

Note: This is not yet implemented, and at present will always return success, unless the given NameNode is completely down.

六、 自动故障恢复

1.介绍

上面介绍了如何配置人工故障恢复。这种方式下,系统不会自动触发负责恢复,即使活动NN挂掉了。下面描述如何配置和部署挨冻故障恢复。

2.组件

自动故障恢复增加了两个组件:Zookeeper quorum、ZKFailoverController(ZKFC)。

Apache Zookeeper是一个高可用的服务,它能维护少量的协调数据,通知客户数据的变化,监控客户端失败。HDFS故障自动恢复依赖ZK以下特性:

  • 故障检测(Failure detection) - 集群里的每个NN与ZK保持一个持久会话。如果机器宕机,ZK会话将过期,然后提醒其他NN从而触发一个故障恢复。 
  • 活动NN选举(Active NameNode election) - ZK提供一个简单的机制专门用来选举活动节点。如果当前的活动NN宕机,另外一个节点会拿到一个在ZK里的特殊的独占锁,这表示这个节点将会成为下一个活动节点。 
ZKFC 是一个新的组件,它是一个 ZK 客户端,同时监听和管理 NN 的状态。运行 NN 的机器上须同时运行 ZKFC ,它的责任是:
  • 健康监控(Health monitoring) - ZKFC使用“health-check”命令定期ping本地的NN。只要NN及时的响应一个健康状态,则认为这个节点是健康的。如果节点宕机,无响应或者进入了其他不健康状态,健康监控器认为它是不健康的。 
  • ZK会话管理(ZooKeeper session management) - 当本地NN是健康的,ZKFC持有ZK的一个打开的会话。如果本地NN是活动状态,ZKFC同时持有一个特殊的锁节点(a special "lock" znode)。这个锁使用了ZK的临时节点。如果会话过期,这个锁节点将被自动删除。 
  • 基于ZK的选举(ZooKeeper-based election) - 如果本地节点是健康的并且ZKFC发现当前没有节点持有锁,它就尝试获取这个锁。如果成功,它就赢得了选举,执行一次故障恢复以使自己成为活动NN。这个故障恢复过程和前面介绍的人工故障恢复是相似的:1、隔离前活动节点(如果需要);2、本地NN转换成活动节点 

了解更详细的自动恢复的设计,查看HDFS-2185。

3.部署Zookeeper

标准的部署,ZK守护进程一般配置3或5个节点。由于ZK本身对资源的要求很低,所以它可以部署在HDFS的NN上。许多操作者配置第三个ZK节点在ResourceManager上。 It is advisable to configure the ZooKeeper nodes to store their data on separate disk drives from the HDFS metadata for best performance and isolation.

4.开始之前

在开始配置自动故障恢复前,关闭你的集群。。目前还不支持在集群运行时将人工故障恢复转换为自动故障恢复。

5.配置自动故障恢复

增加两个配置:

# hdfs-site.xml
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
</property>
# core-site.xml
<property>
   <name>ha.zookeeper.quorum</name>
   <value>zk1.example.com:2181,zk2.example.com:2181,zk3.example.com:2181</value>
</property>


如果集群开启了 federation ,则配置为 dfs.ha.automatic-failover.enabled.my-nameservice-id 。


6.初始化HA在ZK中的状态 

在其中一个NN上执行:

hdfs zkfc -formatZK

hdfs zkfc -formatZK这将在ZK里创建一个保存自动故障恢复系统数据的znode节点。

7.使用start-dfs.sh启动集群

这个脚本现在将在NN所在的机器上自动启动ZKFC进程。当ZKFC启动,他们将自动选择一个NN作为活动节点。

8.手动启动集群

如果你是手动管理你集群的服务的,你也可以在NN所在机器上,手动启动zkfc:

$ hadoop-daemon.sh start zkfc

9.安全访问ZK

If you are running a secure cluster, you will likely want to ensure that the information stored in ZooKeeper is also secured. This prevents malicious clients from modifying the metadata in ZooKeeper or potentially triggering a false failover.

In order to secure the information in ZooKeeper, first add the following to your core-site.xml file:

 <property>   <name>ha.zookeeper.auth</name>   <value>@/path/to/zk-auth.txt</value> </property> <property>   <name>ha.zookeeper.acl</name>   <value>@/path/to/zk-acl.txt</value> </property>

Please note the '@' character in these values -- this specifies that the configurations are not inline, but rather point to a file on disk.

The first configured file specifies a list of ZooKeeper authentications, in the same format as used by the ZK CLI. For example, you may specify something like:

digest:hdfs-zkfcs:mypassword

...where hdfs-zkfcs is a unique username for ZooKeeper, and mypassword is some unique string used as a password.

Next, generate a ZooKeeper ACL that corresponds to this authentication, using a command like the following:

$ java -cp $ZK_HOME/lib/*:$ZK_HOME/zookeeper-3.4.2.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider hdfs-zkfcs:mypasswordoutput: hdfs-zkfcs:mypassword->hdfs-zkfcs:P/OQvnYyU/nF/mGYvB/xurX8dYs=

Copy and paste the section of this output after the '->' string into the file zk-acls.txt, prefixed by the string "digest:". For example:

digest:hdfs-zkfcs:vlUvLnd8MlacsE80rDuu6ONESbM=:rwcda

In order for these ACLs to take effect, you should then rerun the zkfc -formatZK command as described above.

After doing so, you may verify the ACLs from the ZK CLI as follows:

[zk: localhost:2181(CONNECTED) 1] getAcl /hadoop-ha'digest,'hdfs-zkfcs:vlUvLnd8MlacsE80rDuu6ONESbM=: cdrwa

10.验证自动故障恢复

当自动故障恢复设置好,你可以测试他是否工作。首先定位到活动NN。你可以通过NN的Web界面得知哪个是活动NN——每个节点都在页面顶部报告了他的HA状态。

当你定位到活动NN,你可以使它失效。比如,使用kill -9 <pid of NN> 模仿JVM死机。或者,通过重启机器、拔掉网线模仿其他运行中断的情况。触发运行中断后,另一个NN应该在几秒内自动成为活动NN。所需的时间用来发现故障和触发一次故障恢复,依赖于配置ha.zookeeper.session-timeout.ms(默认5秒)。

如果测试不成功,那么你的配置应该有问题。检查zkfc进程的日志。

七、自动故障恢复 FAQ

  • 使用特定的顺序启动ZKFC和NN很重要吗? 

不,在任何一个节点上,你可以使用任何顺序启动zkfc和nn。

  • 有没有其他监控器需要在适当的位置部署? 

你可以在每个运行了NN的节点监控ZKFC确保它保持运行。在一些ZK宕机的情况下,如ZKFC意外退出,应该重启它,确保系统可以自动故障恢复。

另外,你可以监控ZK quorum。如果ZK宕机,故障自动恢复也不会生效。

  • ZK宕机后会发生什么? 

如果ZK集群宕机,自动故障恢复将不会被触发。然而,HDFS还是可以不受影响地继续运行。当ZK重启了,HDFS将正常地重新连接。

  • 我可以指定一个NN为主要的/优先的(primary/preferred)吗? 

不。当前,不支持这种情况。那个NN先启动,它将成为活动节点。你可以选择用特定的顺序启动集群,如你可以先启动优先的节点。

  • 当配置了自动故障恢复,怎样引发一次手动故障恢复 

即使配置了故障自动恢复,你也可以使用hdfs haadmin命令引发一次故障自动恢复。它将完成一次协调的故障恢复。

八、HA HDFS 的升级、完成、回滚(Upgrade/Finalize/Rollback)

When moving between versions of HDFS, sometimes the newer software can simply be installed and the cluster restarted. Sometimes, however, upgrading the version of HDFS you're running may require changing on-disk data. In this case, one must use the HDFS Upgrade/Finalize/Rollback facility after installing the new software. This process is made more complex in an HA environment, since the on-disk metadata that the NN relies upon is by definition distributed, both on the two HA NNs in the pair, and on the JournalNodes in the case that QJM is being used for the shared edits storage. This documentation section describes the procedure to use the HDFS Upgrade/Finalize/Rollback facility in an HA setup.

To perform an HA upgrade, the operator must do the following:

1. Shut down all of the NNs as normal, and install the newer software. 

2. Start up all of the JNs. Note that it is critical that all the JNs be running when performing the upgrade, rollback, or finalization operations. If any of the JNs are down at the time of running any of these operations, the operation will fail. 

3. Start one of the NNs with the '-upgrade' flag. 

4. On start, this NN will not enter the standby state as usual in an HA setup. Rather, this NN will immediately enter the active state, perform an upgrade of its local storage dirs, and also perform an upgrade of the shared edit log. 

5. At this point the other NN in the HA pair will be out of sync with the upgraded NN. In order to bring it back in sync and once again have a highly available setup, you should re-bootstrap this NameNode by running the NN with the '-bootstrapStandby' flag. It is an error to start this second NN with the '-upgrade' flag. 

Note that if at any time you want to restart the NameNodes before finalizing or rolling back the upgrade, you should start the NNs as normal, i.e. without any special startup flag.

To finalize an HA upgrade, the operator will use the `hdfs dfsadmin -finalizeUpgrade' command while the NNs are running and one of them is active. The active NN at the time this happens will perform the finalization of the shared log, and the NN whose local storage directories contain the previous FS state will delete its local state.

To perform a rollback of an upgrade, both NNs should first be shut down. The operator should run the roll back command on the NN where they initiated the upgrade procedure, which will perform the rollback on the local dirs there, as well as on the shared log, either NFS or on the JNs. Afterward, this NN should be started and the operator should run `-bootstrapStandby' on the other NN to bring the two NNs in sync with this rolled-back file system state.

  


 

HDFS HA 之 Quorum Journal Manager 通过Secondary namenode 作为备节点,然后冷备namenode数据,为Namenode分担部分压力,主要执行Checkpoint工作。在这种架构体系下,Namenode以单点的形式运行,一旦系统集群出现故障,可用性是致命的,目前基本不使用了。 阅读详情

相关推荐

hadoop用Quorum Journal Manager(QJM)实现高可用

NULL 博文链接:https://kabike.iteye.com/blog/2224252

使用QJM(Quorum Journal Manager)的HDFS高可用集群搭建

  1、目的 本文主要是HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS群集。 2、背景 在Hadoop 2.0.0之前,NameNode是HDFS集群中的单点故障(SPOF)。每个群集都有一个NameNode,如果该机器或             进程变得不可用,整个群集将无法使用,直到NameNode重新启动或在单独...

chuanxincui的博客 1042

小案例:利用图床自动化批量上传图片并获取图片链接

用python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以。(需要安装Requests库) 因为不同图床需要提交的POST表单不一致,所以在这里我用ImgURL图床做示范,如果大家有需求,可自行修改代码。使用脚本的时候,我们只需把需要上传的图片和这个脚本放在同一个文件夹中,然后运行脚本,稍作等待,看到提示时就可以在脚本运行文件夹中发现一个名为“图片链接地址.txt”的文件,里面就是图片链接啦! 四、图片链接地址.txt(单张图片):...

采菊东篱下,Python满乾坤! 4409

Quorum Journal Manager原理

Quorum Journal Manager原理     在一个典型的HA集群,两个独立的物理节点配置为NameNodes。在任何时间点,其中之一NameNodes是处于Active状态,另一种是在Standby状态。 Active NameNode负责所有的客户端的操作,而Standby NameNode尽用来保存好足够多的状态,以提供快速的故障恢复能力。     为了保

chenglinhust的专栏 1868

别只盯着Spectre!Cadence Virtuoso里APS和Spectre X该怎么选?一份给模拟IC新手的指南

本文深入解析Cadence Virtuoso中的三大仿真引擎Spectre、APS和Spectre X,帮助模拟IC新手根据电路规模、精度需求和计算资源做出智能选择。通过对比技术指标和应用场景,提供射频电路、混合信号系统和电源管理IC的优化仿真策略,显著提升设计效率。

weixin_26841743的博客 703

Qwen 三代进化全景对比:从 Qwen2.5 到 Qwen3 再到 Qwen3.5

本文对比了阿里巴巴通义千问三代大模型(Qwen2.5、Qwen3、Qwen3.5)的技术演进。18个月内,模型在架构、训练数据和能力上实现显著突破:从纯稠密结构(Qwen2.5)发展为混合注意力架构(Qwen3.5),支持语言从29种扩展至201种,并实现原生多模态融合。关键进展包括引入MoE架构、Gated DeltaNet混合注意力机制(计算效率提升10倍)、以及从独立模态到早期视觉语言联合训练的转变。模型阵容从7个通用尺寸发展为8+个混合架构,最大参数量达397B,上下文窗口扩展至256K(托管版1M

m0_47999117的博客 1万+

HDFS的QJM方案

Quorum Journal Manager(仲裁日志管理器),是Hadoop官方推荐的hdfs HA解决方案之一使用zookeeper中ZKFC来实现主备切换使用Journal Node(JN)集群来实现edits log的共享以达到数据同步的目的。

weixin_49750432的博客 2084

腾讯会议视频过期了怎么办?亲测可用:用这个免费插件抢救你的会议录制与回放

本文提供了三种亲测有效的腾讯会议视频过期恢复方案,包括浏览器缓存提取、专业工具组合及预防性措施。特别推荐使用免费插件抢救过期会议录制与回放,帮助职场人解决重要视频资料丢失的难题。

weixin_33686714的博客 264

HADOOP-QJM原理

一.背景 在QJM出现之前,为保障集群的HA,设计的是一种基于NAS的共享存储机制,即主备NameNode间通过NAS进行元数据的同步。该方案有什么缺点呢,主要有以下几点: 定制化硬件设备:必须是支持NAS的设备才能满足需求 复杂化部署过程:在部署好NameNode后,还必须额外配置NFS挂载、定制隔离脚本,部署易出错 简陋化NFS客户端:Bug多,部署配置易出错,导致HA不可用 所以对于...

breakout_alex的博客 6288

华为面试手撕真题【判断是ipv4还是ipv6地址】

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。

MISAYAONE的博客 1万+

基于STM32L4XX的环境光传感器(LTR-303ALS-01)应用程序设计

/ 状态寄存器的位[2:0]表示数据状态,例如位2为1表示新数据就绪[citation:6]#define LTR303_REG_DATA_CH0_LOW 0x8D // CH0数据低字节。#define LTR303_REG_DATA_CH0_HIGH 0x8E // CH0数据高字节。#define LTR303_REG_DATA_CH1_LOW 0x8F // CH1数据低字节。#define LTR303_REG_DATA_CH1_HIGH 0x90 // CH1数据高字节。

myron6688的博客 404

HDFS High Availability Using the Quorum Journal Manager

目的 本指南提供一个HDFS HA特性的综述,描述了如何使用QJM配置和管理一个HA HDFS集群。 本文档假设读者对于HDFS中的通用组件和节点类型有一个大体的认识。请参考HDFS架构指南获取更多信息。 注意:使用QJM或者传统的共享存储 本文档讨论了如何用QJM配置和使用HDFS HA在Active NameNode和Standby NameNode共享edit日志文件

来啊 快活啊 1873

Claude Code Auto Memory 的 Storage Location,SAP ABAP 项目里的本地记忆仓库应该怎么理解

本文介绍了 SAP ABAP 项目中 Claude Code 的 auto memory 机制,重点探讨了其存储位置的设计原理。auto memory 不是存储在项目目录中,而是默认位于 ~/.claude/projects/<project>/memory/,其中 <project> 基于 Git 仓库路径推导,确保同一仓库下的所有工作目录和分支共享记忆。记忆目录包含入口文件 MEMORY.md(仅加载前 200 行)和详细主题文件,这种分层设计类似 CDS View 架构思想。文章还分析了按 Git 仓

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

Hadoop生态圈(九)- HDFS High Availability(HA)高可用集群

HDFS HA高可用集群搭建安装部署,HDFS NameNode单点故障问题,QJM——主备切换、脑裂问题解决,QJM——主备数据同步问题解决,HA系统设计核心问题,高可用如何实现,ZKFailoverController(zkfc),Fencing隔离机制,可用性评判标准——x个9

程序园@大Null 2141

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager

[HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager HDFS High Availability Using the Quorum Journal Manager...

dida4700的博客 219

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

云计算(七)-HDFS利用QJM实现HA(HDFS High Availability Using the Quorum Journal Manager)

目的 本指南概述HDFS的高可用性(HA)的特性,以及如何配置和管理HA HDFS集群,使用QJM特性。 本文假设读者有一个大致了解通用组件和一个HDFS集群中的节点类型。详情请参阅HDFS架构指南。 注意:QJM或者共享存储 本指南将要讨论如何配置并利用QJM实现HA通过在活动的NameNode与备份的NameNode之间共享edit日志,对于如何通过共享存储代替QJM实

DK的专栏 4604

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HDFS利用QJM实现HA(HDFS High Availability Using the Quorum Journal Manager)

目的 本指南概述HDFS的高可用性(HA)的特性,以及如何配置和管理HA HDFS集群,使用QJM特性。 本文假设读者有一个大致了解通用组件和一个HDFS集群中的节点类型。详情请参阅HDFS架构指南。 注意:QJM或者共享存储 本指南将要讨论如何配置并利用QJM实现HA,HA是通过在活动的NameNode与备份的NameNode之间共享edit日志,对于如何通过共享存储代替

宁静致远 厚积薄发 1119

HDFS High Availability Using the Quorum Journal Manager (HDFS单点故障 QJM)

http://www.tuicool.com/articles/6rqYVr http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithQJM.html HDFS High Availability Using the Quorum Journal Manager

1459

(11)HDFS高可用性使用Quorum Journal Manager

HDFS高可用性使用Quorum日记管理器 HDFS高可用性使用Quorum日记管理器 目的注意:使用Quorum Journal Manager或常规共享存储背景建筑硬件资源部署 配置概述配置详细信息部署详细信息管理命令 自动故障转移 介绍组件部署ZooKeeper在你开始之前配置自动故障转移在ZooKeeper中初始化HA状态使用start-dfs.sh启动集群手动启

sun 1096

HDFS HA-Quorum Journal Manager

http://www.binospace.com/index.php/hdfs-ha-quorum-journal-manager/?utm_source=tuicool 1、背景 HDFS HA,即NameNode单点故障问题,一直是关系到HDFS稳定性最为重要的特性。之前Hadoop0.23初探系列文章中,介绍了HDFS的Federeation概况、配置与部署的情况,以及有关HA的相关概...

beyondlpf的专栏 258

HDFS之Qurom Journal Manager(QJM)实现机制分析

自从hadoop2版本开始,社区引入了NameNode高可用方案。NameNode主从节点间需要同步操作日志来达到主从节点元数据一致。最初业界均通过NFS来实现日志同步,大家之所以选择NFS,一方面因为可以很方便地实现数据共享,另外一方面因为NFS已经发展20多年,已经相对稳定成熟。 虽然如此,NFS也有缺点不能满足HDFS的在线存储业务:网络单点及其存储节点单点。业界提供了数据共享的一些高

红豆和绿豆的博客 483
上一篇: JVM学习笔记3 虚拟机性能监控与故障分析工具
下一篇: 基于Hadoop2.5.0的集群搭建
yameing
博客等级 码龄18年 134粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值