如何在互联网上把自己的电脑作为存储服务器,在任何可以上互联网的地方都可以访问这台电脑.

如何在互联网上把自己的电脑作为存储服务器,在任何可以上互联网的地方都可以访问这台电脑.,第1张

第一个:通过RDP(远程桌面协议),远程桌面连接:两部主机之间相互通过帐户密码实现登陆访问,例如windows xp自带的远程桌面连接。

第二个:通过FTP,文件传输协议,利用软件可以直接架设,例如IIS,例如cuteftppro也可以实现单方面的共享,像serve-u,第三个:使用网盘,现在网络上有很多机构提供免费储存的空间,你可以和你朋友上传资源,实现双方资源的共享。用联想网盘可以直接网盘之间共享。存储服务器是指为特定目标而设计,因此配置方式也不同。它可能是拥有一点额外的存储,也可能拥有很大的存储空间的服务器。存储服务器通常是独立的单元。有的时候它们会被设计成4U机架式。或者,它们也可以由两个箱子组成--一个存储单元以及一个位于附近的服务器。然后两个箱子可以并行地安装在机柜中。像Sun StorEdge 3120 存储单元和SunFire X4100服务器,就可以合并为一个存储服务器并放置在一个机柜中。其中亿万克的服务器是比较好用的,其性价比很高,性能更稳定。亿万克集服务器和存储等数据中心产品的研发、生产、销售、服务系统整合于一体,是民族高科技制造企业领导品牌 。【感兴趣请点击此处,了解一下。 】

        从Hadoop2开始,可以允许有2个NameNode,一个是active(活跃状态),另一个是standby(待命状态),其中active状态的NameNode对外提供服务,Hadoop1没有此特性.

在Hadoop1里面只能有一个NameNode,带来的灾难就是单点故障( single point of failure (SPOF)),每个集群只有一个NameNode,如果计算机或者进程不可用,则整个集群不可用,直到NameNode重新启动或者在单独的计算机.

这从两个方面影响了HDFS集群的总体可用性:

在发生意外事件(如机器崩溃)的情况下,集群将不可用,直到技术人员把NameNode重新启动之后.

如果NameNode对应的计算机节点需要进行硬件或者软件的升级,就需要停止NameNode服务,这又会导致集群宕机.

Hadoop的HA就可以允许在计算机崩溃的情况下,快速切换到新的NameNode,或者允许处于计划维护NameNode有运维人员直接切换到standby服务器上面

                                                                               -------以上取自 hadoop.apache.org 官网解答

HA的架构模式其实是有两种,HDFS High Availability Using the Quorum Journal Manager(企业级开发专用)和NFS for the shared storage 共享编辑日志模式(基本上不用)

共享编辑日志模式 -您将需要有一个共享目录,两台NameNode机器都可以对其进行读/写访问。通常,这是一个支持NFS的远程文件管理器,并安装在每个NameNode计算机上。当前仅支持一个共享的edits目录。因此,系统的可用性受到此共享编辑目录的可用性的限制,因此,为了消除所有单点故障,共享编辑目录需要冗余。具体来说,有到存储的多个网络路径,以及存储本身的冗余(磁盘,网络和电源)。 因此,建议共享存储服务器是高质量的专用NAS设备,而不是简单的Linux服务器。

                                                                                -------以上取自 hadoop.apache.org 官网解答         

所有企业开发里面目前还没遇到过使用这种模式的.下面详细介绍QJM模式

为了部署高可用性群集,您应该准备以下内容:

NameNode计算机 -运行活动NameNode和Standby NameNode的计算机应具有彼此等效的硬件,以及与非HA群集中将使用的硬件相同的硬件。

JournalNode计算机 -运行JournalNode的计算机。JournalNode守护程序相对较轻,因此可以合理地将这些守护程序与其他Hadoop守护程序(例如NameNode,JobTracker或YARN ResourceManager)并置在计算机上。 注意: 必须至少有3个JournalNode守护程序,因为必须将编辑日志修改写入大多数JN。这将允许系统容忍单个计算机的故障。您可能还会运行3个以上的JournalNode,但是为了实际增加系统可以容忍的故障数量,您应该运行奇数个JN(即3、5、7等)。请注意,当与N个JournalNode一起运行时,系统最多可以容忍(N-1)/ 2个故障,并继续正常运行。

                                                                                -------以上取自 hadoop.apache.org 官网解答 

这里解释一下,JournalNode上面之所以建议是奇数台,是因为HDFS底层算法他是(N-1)/2的故障,假如是偶数台,4台,(4-1)/2=1,也就是1台挂了,就会导致所有的JournalNode都不能正常运行,但是其实我只挂了一台而已,另外三台完全可以支撑完运行,如果是奇数3台的话,(3-1)/2=1台,挂了一台,还剩下两台,这时候就不能正常运行,但是,再挂一台是不是就超过了过半性原则,这个奇数过半性原理在整个Hadoop中使用很广泛

以三台服务器为例:

dachun001 :zookeeper    nn(NameNode)    zkfc(ZookeeperFailoverControl)       JournalNode  dn(DataNode)

dachun002 :zookeeper    nn(NameNode)    zkfc(ZookeeperFailoverControl)       JournalNode  dn(DataNode)

dachun003 :zookeeper                                  zkfc(ZookeeperFailoverControl)       JournalNode  dn(DataNode)

active NameNode:

接收client的rpc请求,同时自己的editlog写一条日志记录,同时发送给JournalNode日志集群写一条记录,同时接收DataNode的心跳和块报告

standby NameNode:

同时接收JournalNode日志集群的的记录,在自己本身执行,使得自己的元数据和active NameNode是一致的,这步叫做重演

同时也接受DataNode的心跳报告(这个是为了在进行从standby演变到active状态时候更加平滑)

也随时等待从standby-->active状态,对外提供服务。

JournalNode:

JouralNode守护进程相当的轻量级,可以和Hadoop的其他进程部署在一起

active NameNode -->  standby  NameNode的同步数据进程.

datanode: 

同时向两个nn发送 心跳 and 块报告

 zkfc(ZookeeperFailoverControl)进程:

监控NameNode的健康状态,可以理解为NameNode和zookeeper的桥梁,standby-active或者active-standby是通过zkfc进程  

NameNode通过zkfc向zookeeper集群定期发送心跳,使得自己被选举上,

当被zookeeperk集群选举为active时,

zkfc进程通过rpc调用NameNode状态变为active。

在典型的HA群集中,将两个单独的计算机配置为NameNode。在任何时间点,恰好其中一个NameNode处于 活动 状态,而另一个处于 Standby 状态。Active NameNode负责群集中的所有客户端操作,而Standby只是充当从属,并保持足够的状态以在必要时提供快速故障转移。

为了使Standby节点保持其状态与Active节点同步,两个节点都与称为“ JournalNodes”(JN)的一组单独的守护程序进行通信。当活动节点执行任何名称空间修改时,它会持久地将修改记录记录到这些JN的大多数中。Standby节点能够从JN读取编辑内容,并不断监视它们以查看编辑日志的更改。当“备用节点”看到编辑内容时,会将其应用到自己的名称空间。发生故障转移时,备用服务器将确保在将自身升级为活动状态之前,已从JournalNode读取所有编辑内容。这样可确保在发生故障转移之前,名称空间状态已完全同步。

为了提供快速故障转移,备用节点还必须具有有关集群中块位置的最新信息。为了实现这一点,DataNode被配置了两个NameNode的位置,并向两者发送块位置信息和心跳。

对于HA群集的正确操作至关重要,一次只能有一个NameNode处于活动状态。否则,名称空间状态将在两者之间迅速分散,从而有数据丢失或其他不正确结果的风险。为了确保此属性并防止所谓的“裂脑情况”,JournalNode将仅一次允许一个NameNode成为作者。在故障转移期间,将变为活动状态的NameNode将仅承担写入JournalNodes的角色,这将有效地防止另一个NameNode继续处于活动状态,从而使新的Active可以安全地进行故障转移。

yarn的HA相对于HDFS的HA就没有这么复杂,他的NM(NodeManager)只会向active的RM(ResourceManager)发送心跳信息,

zkfc是和ResourceManager在同一个进程中,即ZKFC是一个 线程 在 ResourceManager 进程中,如果这个ResourceManager进程挂了,这个ZKFC线程就挂了

RM(ReourceManager)进程:

a.启动时会向zk(zookeeper)集群的hadoop-ha目录写个lock文件,

写成功就标识为active,否则为standby。

standby rm(ResourceManager)会一直监控lock文件是否存在,如果不存在就尝试去创建,争取为active。

b.会接收client客户端的请求,接收和监控nm的资源汇报,

负责资源的分配和调度,启动和监控application master。

rmstore:

a.rm的作业信息是存储在zk(zookeeper)的/rmstore,

active rm会向这个目录写作业app信息。

b.当active rm挂了,另外一个standby rm成功转为active状态,

就会从这里读取对应的作业的信息,

重新构建作业的内存信息,启动内部服务,

开始接收NM(NodeManager)心跳,构建集群资源信息,且开始接收客户端提交的作业的请求。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/88330.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-06
下一篇2023-03-06

发表评论

登录后才能评论

评论列表(0条)

    保存