一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

本文涉及的产品
云防火墙,500元 1000GB
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 1)集群规划:主机名          IP      安装的软件                      运行的进程master    192.168.199.130   jdk、hadoop                      NameNode、DFSZKFailoverController(zkfc)slaver1    192.

1)集群规划:
主机名          IP      安装的软件                      运行的进程
master    192.168.199.130   jdk、hadoop                      NameNode、DFSZKFailoverController(zkfc)
slaver1    192.168.199.131    jdk、hadoop                       NameNode、DFSZKFailoverController(zkfc)
slaver2    192.168.199.132    jdk、hadoop                     ResourceManager
slaver3    192.168.199.133    jdk、hadoop                     ResourceManager
slaver4    192.168.199.134    jdk、hadoop、zookeeper       DataNode、NodeManager、JournalNode、QuorumPeerMain
slaver5    192.168.199.135    jdk、hadoop、zookeeper       DataNode、NodeManager、JournalNode、QuorumPeerMain
slaver6    192.168.199.136    jdk、hadoop、zookeeper       DataNode、NodeManager、JournalNode、QuorumPeerMain
2)注意:hadoop-2.6.4又增加了YARN HA:

  apache提供的hadoop-2.6.4的安装包是在32位操作系统编译的,因为hadoop依赖一些C++的本地库,所以如果在64位的操作上安装hadoop-2.6.4就需要重新在64操作系统上重新编译
(建议第一次安装用32位的系统,我将编译好的64位的也上传到群共享里了,如果有兴趣的可以自己编译一下)

3)说明:
    a:在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。
      hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode
      这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态
    b:hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.6.4解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调

1:hadoop分布式集群HA模式部署,七台机器跑集群:
  第一台机器:namenode zkfc
  第二台机器:namenode zkfc
  第三台机器:resourcemanager
  第四台机器:resourcemanager
  第五台机器:zookeeper journalnode dataNode nodemanager
  第六台机器:zookeeper journalnode dataNode nodemanager
  第七台机器:zookeeper journalnode dataNode nodemanager

2:之前的博客已经搭建过Zookeeper集群了,http://www.cnblogs.com/biehongli/p/7650570.html,然后我在原来的三个虚拟机的基础上面又加了四台虚拟机,这个时候同时跑七台虚拟机,电脑很吃力,所以自己的电脑尽可能配置要高些,这个电脑,8G内存,i5的处理器,虚拟机内存我每台虚拟机先设置512M,然后使用Xshell连接以后,将图形化界面关闭,ctrl+alt+f7,使用命令行模式;

3:Hadoop分布式集群HA模式部署开始准备:

  (1)首先,三台机器部署Zookeeper集群http://www.cnblogs.com/biehongli/p/7650570.html,之前已经部署过了,这里部署过程省略了;

  (2)我的分别是centos01(master节点),centos02(slaver1节点),centos03(slaver2节点)部署的是Zookeeper集群;

    centos04,centos05部署NameNode节点;

    centos06,centos07部署resourcemanager节点

    然后centos01(master节点),centos02(slaver1节点),centos03(slaver2节点)增加DataNode节点;

4:首先将新加的四台虚拟机的主机名称修改和ip对应关系修改一下:

[root@localhost hadoop]# vim /etc/sysconfig/network

5:结合前期学习和现在的搭建Hadoop分布式集群HA模式部署的准备:

  (1)修改Linux主机名
  (2)修改IP
  (3)修改主机名和IP的映射关系(七台虚拟机都按照下面的对应关系写):
      ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等);
      /etc/hosts里面要配置的是内网IP地址和主机名的映射关系 ;


  (4)关闭防火墙(七台虚拟机全部关闭防火墙)
[root@localhost hadoop]# service iptables stop 关闭防火墙
[root@localhost hadoop]# service iptables status 查看防火墙是否关闭


  (5)ssh免登陆(免密登录只要理解其过程,这里不再贴图过程,过程很多,之前也贴过详细的,http://www.cnblogs.com/biehongli/p/7640469.html):

     七台虚拟机配置好了免秘钥登录之后,然后直接免秘钥登录第一次还要输入yes很心烦,然后百度一下,下面是输入yes的错误和解决办法:

The authenticity of host 'slaver6 (192.168.3.135)' can't be established.
RSA key fingerprint is cc:4e:23:01:ca:97:52:21:85:78:bc:29:ca:b3:12:52.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slaver6' (RSA) to the list of known hosts.
Last login: Thu Oct 12 22:34:41 2017 from master

       解决办法(挺好使的):

修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题

最后面添加:

StrictHostKeyChecking no

UserKnownHostsFile /dev/null

     验证一下,完成了免秘钥登录,(需要注意的是我一直用的root权限,所以免秘钥登录必须使用root权限才可以):

  (6)安装JDK,配置环境变量等(由于我的机器都改成了命令行模式,所以使用命令将jdk传到新装的四台虚拟机上面),记得上传之后解压缩操作哈,我都忘记了,然后直接验证,郁闷咋不正确呢,闹笑话了吧:

 

    然后配置一下jdk环境,由于我的jdk存放路径都一样,所以直接复制之前的文件即可(vim /etc/profile):

    修改的如下所示([root@slaver3 hadoop]#  source /etc/profile),修改/etc/profile文件,让它即时生效 source /etc/profile

     修改好之后验证一下(七台虚拟机全部验证jdk是否安装配置成功):

6:学习Hadoop分布式集群HA模式部署:

集群规划:
    主机名          IP                  安装的软件                        运行的进程
   master     192.168.3.129      jdk、hadoop                        NameNode、DFSZKFailoverController(zkfc)
   slaver1    192.168.3.130      jdk、hadoop                        NameNode、DFSZKFailoverController(zkfc)
   slaver2    192.168.3.131      jdk、hadoop                        ResourceManager
   slaver3    192.168.3.132      jdk、hadoop                        ResourceManager
   slaver4    192.168.3.133      jdk、hadoop、zookeeper         DataNode、NodeManager、JournalNode、QuorumPeerMain
   slaver5    192.168.3.134      jdk、hadoop、zookeeper         DataNode、NodeManager、JournalNode、QuorumPeerMain
   slaver6    192.168.3.135      jdk、hadoop、zookeeper         DataNode、NodeManager、JournalNode、QuorumPeerMain

说明:
    (1)在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。
    (2)hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode,这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态
    (3)hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调

 7:安装配置zooekeeper集群(在master,slaver1,slaver2上),之前写过,这里写下过程,具体操作不再贴:

(1)解压
            tar -zxvf zookeeper-3.4.5.tar.gz
(2)修改配置
            cd /home/hadoop/zookeeper-3.4.5/conf/
            cp  zoo_sample.cfg  zoo.cfg
            vim zoo.cfg
            修改:dataDir=/home/hadoop/zookeeper-3.4.5/tmp
            在最后添加:
            server.1=master:2888:3888
            server.2=slaver1:2888:3888
            server.3=slaver2:2888:3888
            保存退出
            然后创建一个tmp文件夹
            mkdir /home/hadoop/zookeeper-3.4.5/tmp
            再创建一个空文件
            touch /home/hadoop/zookeeper-3.4.5/tmp/myid
            最后向该文件写入ID
            echo 1 > /home/hadoop/zookeeper-3.4.5/tmp/myid
(3)将配置好的zookeeper拷贝到其他节点(首先分别在slaver1、slaver2根目录下的/home/hadoop)
            scp -r /home/hadoop/zookeeper-3.4.5/ slaver1:/home/hadoop/
            scp -r /home/hadoop/zookeeper-3.4.5/ slaver2:/home/hadoop/
            
            注意:修改slaver1、slaver2对应/home/hadoop/zookeeper-3.4.5/tmp/myid内容
            weekend06:
                echo 2 >/home/hadoop/zookeeper-3.4.5/tmp/myid
            weekend07:
                echo 3 >/home/hadoop/zookeeper-3.4.5/tmp/myid

8:安装配置hadoop集群(在slaver4上操作),首先将Hadoop的安装包hadoop-2.4.1.tar.gz上传到centos04上面,并且解压缩:

[root@localhost hadoop]# tar -zxvf hadoop-2.4.1.tar.gz

配置HDFS(hadoop2.0所有的配置文件都在hadoop-2.4.1/etc/hadoop目录下),#将hadoop添加到环境变量中,七台虚拟机都配置都配置一下hadoop的环境变量,这里在后加的四台虚拟机配置一下hadoop的环境变量,不过可以现在slaver3(centos04将hadoop配置好,直接复制到剩下的三台虚拟机上面,这样效率最高):

修改的如下所示(贴下代码,好复制粘贴):

export JAVA_HOME=/home/hadoop/jdk1.7.0_65

export HADOOP_HOME=/home/hadoop/hadoop-2.4.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

第一个配置文件:修改hadoo-env.sh(首先切换到cd /home/hadoop/hadoop-2.4.1/etc/hadoop/):

修改内容如下所示(即配置jdk的路径):

 

第二个配置文件:修改core-site.xml(修改的内容如下,方便复制)

<configuration>
    <!-- 指定hdfs的nameservice为nameService1 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns1/</value>
    </property>
    <!-- 指定hadoop临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.4.1/tmp</value>
    </property>

    <!-- 指定zookeeper地址 -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>master:2181,slaver1:2181,slaver2:2181</value>
    </property>
</configuration>

修改的内容如下,方便复制:

第三个配置文件:修改hdfs-site.xml(修改的内容如下,方便复制)

<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>slaver3:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>slaver3:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>slaver4:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>slaver4:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;slaver1:8485;slaver2:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/app/hadoop-2.4.1/journaldata</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

操作内容如(内容太多,分开截屏了)vim hdfs-site.xml:

第四个配置文件:修改mapred-site.xml(修改的内容如下,方便复制)

<configuration>
<!-- 指定mr框架为yarn方式 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

 操作内容如下所示:

[root@slaver3 hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@slaver3 hadoop]# vim mapred-site.xml

第五个配置文件:修改yarn-site.xml(修改的内容如下,方便复制)

<configuration>
<!-- 开启RM高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定RM的cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!-- 指定RM的名字 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 分别指定RM的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>slaver5</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>slaver6</value>
</property>
<!-- 指定zk集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>master:2181,slaver1:2181,slaver2:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

 操作如下所示:

 配置无密登录ssh-keygen -t rsa,ssh-copy-id快速配置无密登录,centos04虚拟机(即slaver3节点配置无密登录,登录自己,登录master,登录slaver1,登录slaver2,登录slaver4,我配置的无密登录七台虚拟机,这点看你自己吧。);centos06虚拟机(即slaver5节点配置无密登录,登录自己,登录master,登录slaver1,登录slaver2);

#注意:两个namenode之间要配置ssh免密码登陆,

第六个配置文件:修改slaves(修改的内容如下,方便复制)

注意:slaves文件就是启动DataNode、NodeManager、一定要理解概念和含义。

修改slaves(slaves是指定子节点的位置,因为要在slaver3上启动HDFS、在slaver5启动yarn,所以slaver3上的slaves文件指定的是datanode的位置,slaver5上的slaves文件指定的是nodemanager的位置):

master
slaver1
slaver2

操作如下所示vim slaves:

之前,master,slaver1,slaver2配置过三台机器的集群,这里因为需要,由slaver3配置好的hadoop复制到剩余的六台机器,这里要删除之前的集群,这里先不删除home/hadoop/hadoop-2.4.1,先将这个名称改了,万一七台机器的集群搭建失败,还可以使用三台机器的集群;

如: [root@slaver1 hadoop]# mv hadoop-2.4.1 hadoop-2.4.1-copy

 将配置好的hadoop拷贝到其他节点(有虚拟机04,slaver3节点):

[root@slaver3 hadoop]# scp -r hadoop-2.4.1/ master:/home/hadoop/
[root@slaver3 hadoop]# scp -r hadoop-2.4.1/ slaver1:/home/hadoop/
[root@slaver3 hadoop]# scp -r hadoop-2.4.1/ slaver2:/home/hadoop/
[root@slaver3 hadoop]# scp -r hadoop-2.4.1/ slaver4:/home/hadoop/
[root@slaver3 hadoop]# scp -r hadoop-2.4.1/ slaver5:/home/hadoop/
[root@slaver3 hadoop]# scp -r hadoop-2.4.1/ slaver6:/home/hadoop/

9:配置至此已经全部结束,如果启动出错再回头看,现在开始启动:

 ###注意:严格按照下面的步骤:

  9.1:启动zookeeper集群(分别在master、slaver1、slaver2上启动zookeeper,#查看状态:一个leader,两个follower):

 [root@master hadoop]# cd /home/hadoop/zookeeper-3.4.5

然后启动剩下的两个Zookeeper节点:

 

然后查看一下第一个启动的Zookeeper节点的状态,如下所示:

 

  9.2:启动journalnode,为hadoop提供元数据管理(edits),第一次需要手动起,以后就不需要手动启动了,就包含在了start-dfs.sh脚本里面了;(分别在在master、slaver1、slaver2上执行),#运行jps命令检验,masterslaver1slaver2上多了JournalNode进程:

 

其实启动master节点以后,slaver1节点,和slaver2节点的journalnode已经启动起来了,可以查看一下:

 

 如果启动过程中有的节点没有启动起来,下面介绍一下如何查看日志,这点自己应该必须会吧,如hadoop没启动起来,就查看hadoop的日志(进入日志以后使用大G可以直接到达尾行,这样可以直接看报啥错误。):

[root@master logs]# less hadoop-root-journalnode-master.log

   9.3:格式化HDFS,在slaver3上执行命令:hdfs namenode -format或者./hadoop namenode -format;

    #格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/home/hadoop/hadoop-2.4.1/tmp,然后将/home/hadoop/hadoop-2.4.1/tmp拷贝到slaver4/home/hadoop/hadoop-2.4.1/下。

可以查看一下,创建了tmp目录,里面的初始fsimage:

现在要保持slaver3和slaver4的fsimage初始值保持一致,即复制slaver3到slaver4:

scp -r tmp/ slaver4:/home/hadoop/app/hadoop-2.4.1/

  9.4:格式化ZKFC,zkfc用来做两个namenode的状态切换管理或者失败切换管理,(在slaver3上执行即可):hdfs zkfc -formatZK

 

格式化以后会在Zookeeper写一些东西,现在可以看一下去(master节点):

 

启动[root@master bin]# ./zkCli.sh

可以看到建立一个数据节点,叫做hadoop-ha

   9.5:启动HDFS(在slaver3上执行):sbin/start-dfs.sh或者start-dfs.sh(如果配置了hadoop的环境变量),如下图可以很清楚的看到那个节点启动那些进程,自己仔细分析一下,做到心中有数:

 

最好去看看其他节点的进程是否启动起来,分别贴一下其他节点的进程启动情况:

 

  9.6:启动YARN(#####注意#####:是在slaver5上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动):   sbin/start-yarn.sh或者 start-yarn.sh(如果配置了hadoop的环境变量,source /etc/profile修改的配置文件即时生效):

 接着启动一下slaver6节点的yarn:

如下所示:start-yarn-.sh或者yarn-daemon.sh start resourcemanager

到此,hadoop-2.4.1配置完毕,可以使用浏览器访问:

 http://192.168.3.132:50070
 NameNode 'slaver3:9000' (active)
 http://192.168.3.133:50070
 NameNode 'slaver4:9000' (standby)

 现在可以再看一下各个节点的启动情况:

 

 我准备用浏览器访问一下的时候,浏览器不能访问,我可以ping通我的192.168.3.132,郁闷了,节点都起来了,突然一想,可能是防火墙没关,然后关了防火墙试一下,如下所示:

 

 浏览器访问如下所示(slaver3/192.168.3.132是active的;slaver4/192.168.3.133是standby的):

 查看一下yarn集群管理的界面(slaver5/192.168.3.134):

当我启动其中一个yarn的时候出现如:This is standby RM. Redirecting to the current active RM(这是备用RM。重定向到当前活动RM),

而另一个yarn就可以正常启动:

10:验证HDFS HA:

  首先向hdfs上传一个文件(首先查看此目录下面是否存在数据:

    cd /home/hadoop/hadoop-2.4.1/tmp/dfs/data/current/BP-1794153128-192.168.3.132-1508123872265/current/finalized):

 

开始上传文件:

然后在master,slaver1,slaver2节点都可以看到block块:

 

现在文件已经上传了,可以看到集群是正常工作的,然后看看'slaver3:9000' (active)是active的,'slaver4:9000' (standby)是standby的,把slaver3干掉,看看是否正常切换:

(然后再kill掉active的NameNode):

然后看看另一个,正常的话肯定由standby变成了active:(这个时候slaver4上的NameNode变成了active)

从hdfs上面下载上传的文件,看看能否下载,看看集群是否正常工作:

 

现在将那个kill挂掉的nameNode启动起来:

通过浏览器访问:http://192.168.3.132:50070,如下所示:

 如果http://192.168.3.133:50070/即slaver4突然断电,那么切换到slaver3需要等待自己配置的30s,然后自己由standby切换为active;

 如果slaver3为active了,然后上传文件的过程中,将slaver3的namenode杀掉,然后可以发现文件可以正常上传,slaver4由standby切换为active了;

 11:验证YARN(查看yarn的状态也不好查看,yarn的ha机制不是很好,这里测试的结果就是如果两个resourcemanager都正常,肯定可以完成任务,如果一个死了,另一个也可以完成任务,如果把active的杀死了,任务就失败了):

   运行一下hadoop提供的demo中的WordCount程序:

 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /profile /out

然后发现一直卡住不动了,可能是内存不够了,master节点,slaver1节点,slaver2节点的nodemanager进程都没了:

好吧,先不测试了:

12:测试集群工作状态的一些指令:

bin/hdfs dfsadmin -report    查看hdfs的各节点状态信息

bin/hdfs haadmin -getServiceState nn1  获取一个namenode节点的HA状态

sbin/hadoop-daemon.sh start namenode  单独启动一个namenode进程

./hadoop-daemon.sh start zkfc   单独启动一个zkfc进程

 

可以hdfs的参数:

 如haadmin用来管理ha的:

 

手动将standby切换为active:

 

手动将active切换为standby

 

可以去浏览器看看slaver4的状态,如下所示:

或者通过命令查看namenode的状态:

 学习新知识自己就像白痴一样,学完以后发现,哦,原来又学到新知识了,是对知识的饥渴,哦,是渴望。思考可以帮助你理解。

目录
相关文章
|
1月前
|
机器学习/深度学习 分布式计算 算法
联邦学习是保障数据隐私的分布式机器学习方法
【6月更文挑战第13天】联邦学习是保障数据隐私的分布式机器学习方法,它在不暴露数据的情况下,通过在各设备上本地训练并由中心服务器协调,实现全局模型构建。联邦学习的优势在于保护隐私、提高训练效率和增强模型泛化。已应用于医疗、金融和物联网等领域。未来趋势包括更高效的数据隐私保护、提升可解释性和可靠性,以及与其他技术融合,有望在更多场景发挥潜力,推动机器学习发展。
31 4
|
20天前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
52 0
|
28天前
|
分布式计算 Java Hadoop
杨校老师课堂之分布式数据库HBase的部署和基本操作
杨校老师课堂之分布式数据库HBase的部署和基本操作
28 0
|
24天前
|
Prometheus 运维 监控
解锁分布式云多集群统一监控的云上最佳实践
为应对分布式云多集群监控的挑战,阿里云可观测监控 Prometheus 版结合 ACK One,凭借高效纳管与全局监控方案有效破解了用户在该场景的监控运维痛点,为日益增长的业务需求提供了一站式、高效、统一的监控解决方案,实现成本与运维效率的双重优化。助力企业的数字化转型与业务快速增长,在复杂多变的云原生时代中航行,提供了一个强有力的罗盘与风帆。
55435 17
|
14天前
|
消息中间件 缓存 监控
如何设计一个秒杀系统,(高并发高可用分布式集群)
【7月更文挑战第4天】设计一个高并发、高可用的分布式秒杀系统是一个非常具有挑战性的任务,需要从架构、数据库、缓存、并发控制、降级限流等多个维度进行考虑。
28 1
|
16天前
|
关系型数据库 分布式数据库 PolarDB
**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群
【7月更文挑战第3天】**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群。采用存储计算分离架构,适用于大规模OLTP和OLAP。先准备硬件和软件环境,包括Linux、Docker和Git。然后,克隆源码,构建Docker镜像,部署控制节点和计算节点。使用PDCli验证集群状态,开始探索PolarDB的高性能与高可用性。在实践中深化学习,贡献于数据库技术创新。记得在安全环境下测试。
130 1
|
25天前
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
217 2
|
1月前
|
分布式计算 负载均衡 并行计算
Python 分布式计算框架 PP (Parallel Python):集群模式下的实践探索
该文介绍了使用Parallel Python (PP) 在两台物理机上构建分布式计算集群的经验。PP是一个轻量级框架,旨在简化Python代码在多处理器系统和集群中的并行执行。文中通过设置子节点的IP、端口和密钥启动PP服务器,并在主节点创建PP实例进行负载均衡。实验使用官方的质数和计算示例,显示PP在集群模式下能有效利用多台机器的多核CPU,实现计算效率的显著提升。未来,作者计划进一步研究PP在更复杂任务和大规模集群中的应用潜力。
148 4
|
14天前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
27天前
|
存储 分布式计算 监控
分布式系统详解--框架(Hadoop-HDFS的HA搭建及测试)
分布式系统详解--框架(Hadoop-HDFS的HA搭建及测试)
33 0

相关实验场景

更多