TOMCAT集群

目录 
TOMCAT集群 1 
1 集群 1 
1.1 什么是集群 1 
1.2 集群的特性 1 
1.3 集群的分类 1 
1.4 TOMCAT集群配置的优缺点 2 
1.5 APACHE+TOMCAT 2 
1.6 环境说明 2 
2 软件安装 3 
2.1 安装说明 3 
2.2 JDK安装 3 
2.3 APACHE安装 4 
2.4 TOMCAT安装 4 
3 集群配置 6 
3.1 APACHE+MOD_JK+TOMCAT配置 6 
3.2 测试 7 
4 SESSION复制 8 
4.1 SESSION复制配置 8 
4.2 测试 10

1 集群 
1.1 什么是集群 
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但 事实上集群由一组服务实体组成。

1.2 集群的特性 
与单一服务实体相比较,集群提供了以下两个关键特性: 
1,可扩展性--集群的性能不限于单一的服务实体,新的服 务实体可以动态地加入到集群,从而增强集群的性能。 
2, 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。 
为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力: 
(1) 负 载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 
(2) 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服 务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。 
负载均衡 和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。

1.3 集群的分类 
集群主要分成三大类:高可用集群(High Availability Cluster/HA), 负载均衡集群(Load Balance Cluster),高性能计算集群(High Performance Computing Cluster/HPC) 
(1) 高可用集群(High Availability Cluster/HA):一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。常见的就是2个节点做 成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "双机互备", "双机",高可用集群解决的是保障用户的应用程序持续对外提供服 务的能力。 
(2) 负载均衡集群(Load Balance Cluster):负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到将工作负载分发。这样的计算机集群有时也被称为服务器群(Server Farm)。一般web服务器集群、数据库集群 和应用服务器集群都属于这种类型。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器 上。从检查其他服务器状态这一点上 看,负载均衡和容错集群很接近,不同之处是数量上更多。 
(3) 高性能计算集群(High Performance Computing Cluster/HPC):高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。这类集群致力于提供单个计算机所不能提供的强大的计算能力

1.4 Tomcat集群配置的优缺点 
通常配置tomcat集群有三种方式:使用DNS轮询,使用apache r-proxy代理方式,使用apache mod_jk方式。 
(1)DNS轮询的缺点:当集群中某台服务器停止之后,用户由于dns缓存的缘故,便无法访问服务,必 须等到dns解析更新,或者这台服务器重新启动。还有就是必须把集群中的所有服务端口暴露给外界,没有用apache做前置代理的方式安全,并 且占用大量公网IP地址,而且tomcat还要负责处理静态网页资源,影响效率。优点是集群配置最简单,dns设置也非常简单。 
(2)R- proxy的缺点:当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存 在这个问题。 
(3)mod_jk方式的优点是,Apache 会自动检测到停止掉的tomcat,然后不再发请求过去。缺点就是,当停 止掉的tomcat服务器再次启动的时候,Apache检测不到,仍然不会转发请求过去。 
R-proxy和mod_jk的共同优点是.可 以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理jsp和 servlet等动态请求。共同缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。R-proxy和 mod_jk对静态页面请求的处理,都可以通设置来选取一个尽可能优化的效果。这三种方式对实现最佳负载均衡都有一定不足,mod_jk相对好些,可以通过设置lbfactor参数来分配请求任务。

1.5 Apache+Tomcat 
Apache+ Tomcat整合的目标: 
(1) 可以提高整体web服务器性能,将动态页面交给tomcat处理,将静态文件交给apache处理,可以大大提高服务器的静态文件处理性能。 
(2) 可以实现web服务器的负载均衡,服务器可采用集群的方式来响应客户端请求。Apache的作用是做代理,将请求分发给各个tomcat处理,tomcat作为集群服务器处理请求。这样可以提高整体web服务器性能和访问量。 
(3) 可以实现无缝升级应用程序和容错处理,在tomcat集群中如果有一个tomcat挂掉了,用户还可以通过其他tomcat来进行访问,同时如果我们想升级应用程序,我们可以通过升级每个tomcat的应用程序来实现升级,在升级的过程中不会影响web服务器的访问。

下面就是以1个apache+2个tomcat通过mod_jk配置集群。

1.6 环境说明 
所需软件包: 
JDK:jdk-6u7-linux-i586.bin 
Apache:httpd-2.2.19.tar.gz 
Tomcat:apache-tomcat-7.0.16.tar.gz 
Mod_jk:mod_jk-1.2.31-httpd-2.2.x.so

服务器: 
服务器系统版本信息:CentOS release 5.3 
服务器IP:172.30.4.6

2 软件安装 
2.1 安装说明 
将下载好的软件保存到服务器上:目录为/usr/tomcattest,也可以建立其他文件夹保存。 
JDK:jdk-6u7-linux-i586.bin 
Apache:httpd-2.2.19.tar.gz 
Tomcat:apache-tomcat-7.0.16.tar.gz 
Mod_jk:mod_jk-1.2.31-httpd-2.2.x.so

2.2 JDK安装

Java代码  
  1. 1)  拷贝软件包
  2. [root@172-30-4-6 ~]# mkdir /usr/java     #创建jdk安装目录
  3. [root@172-30-4-6 ~]# cd /usr/tomcattest   #进入jdk软件包目录
  4. [root@172-30-4-6 tomcattest]# cp jdk-6u7-linux-i586.bin /usr/java  #将jdk安装文件拷贝到安装目录
  5. 2)  安装JDK
  6. [root@172-30-4-6 tomcattest]# cd /usr/java  #进入jdk安装目录
  7. [root@172-30-4-6 java]# ./ jdk-6u7-linux-i586.bin   #执行安装jdk文件
  8. 3)  配置环境变量
  9. [root@172-30-4-6 java] vim /etc/profile   #修改系统环境变量文件
  10. #添加内容如下:
  11. export JAVA_HOME=/usr/java/jdk1.6.0_02
  12. export JAVA_BIN=/usr/java/jdk1.6.0_02/bin
  13. export PATH=$PATH:$JAVA_HOME/bin
  14. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  15. export JAVA_HOME JAVA_BIN PATH CLASSPATH
  16. [root@172-30-4-6 profile]# cd /usr/bin
  17. [root@172-30-4-6 profile]# ln -s -f /usr/java/jdk1.6.0_02/jre/bin/java
  18. [root@172-30-4-6 profile]# ln -s -f /usr/java/jdk1.6.0_02/bin/javac
  19. 4)  测试
  20. [root@172-30-4-6 profile]# java -version         #查看java安装版本
  21. 显示结果:java version "jdk1.6.0_02"

2.3 Apache安装

Java代码  
  1. 1)  解压
  2. [root@172-30-4-6 ~]# cd /usr/tomcattest   #进入apache软件包目录
  3. [root@172-30-4-6 tomcattest]# tar -zxvf httpd-2.2.19.tar.gz  #解压apache安装文件
  4. 2)  安装
  5. [root@172-30-4-6 tomcattest]# cd httpd-2.2.19      #进入apache安装目录
  6. [root@172-30-4-6 httpd-2.2.19]# ./configure --prefix=/usr/apache   # configure参数可以自己根据需要修改,可以使用—help获得相关命令参数信息。
  7. [root@172-30-4-6 httpd-2.2.19]# make    #编译
  8. [root@172-30-4-6 httpd-2.2.19]# make install   #安装
  9. 3)  启动
  10. [root@172-30-4-6 httpd-2.2.19]# cd /usr/apache/  #进入apache安装目录
  11. [root@172-30-4-6 apache]# ./bin/apachectl start   #启动apache服务器
  12. 4)  测试
  13. 访问apache服务器:http://172.30.4.6
  14. 响应结果:It works!  #apache服务器安装成功

2.4 Tomcat安装

Java代码  
  1. 1.  解压
  2. [root@172-30-4-6 ~]# cd /usr/tomcattest   #进入tomcat软件包目录
  3. [root@172-30-4-6 tomcattest]# tar –zxvf apache-tomcat-7.0.16.tar.gz  #解压tomcat安装包
  4. 2.  安装
  5. [root@172-30-4-6 tomcattest]# cp -P apache-tomcat-7.0.16 /usr/tomcat1  #拷贝tomcat1
  6. [root@172-30-4-6 tomcattest]# cp -P apache-tomcat-7.0.16 /usr/tomcat2  #拷贝tomcat2
  7. 3.  配置
  8. 因为该例子是在同一台服务器上安装两个tomcat服务器,避免服务器端口使用冲突,tomcat1端口采用默认配置,tomcat2端口需要重新配置。
  9. [root@172-30-4-6 tomcattest]# cd /usr/tomcat2/conf   #进入tomcat2配置目录,可修改server.xml配置文件
  10. [root@172-30-4-6 tomcattest]# cd /usr/tomcat1/conf   #进入tomcat1配置目录,可修改server.xml配置文件
  11. [root@172-30-4-6 conf]# vim server.xml        #修改tomcat2配置文件
  12. (1) 修改server端口号
  13. #tomcat1 默认配置
  14. <Server port="8005" shutdown="SHUTDOWN">
  15. #tomcat2 修改端口号为9005
  16. <Server port="9005" shutdown="SHUTDOWN">
  17. (2) 修改HTTP connector端口号
  18. #tomcat1默认配置
  19. <Connector port="8080" protocol="HTTP/1.1"
  20. connectionTimeout="20000"
  21. redirectPort="8443" />
  22. #tomcat2 修改端口号为9080
  23. <Connector port="9080" protocol="HTTP/1.1"
  24. connectionTimeout="20000"
  25. redirectPort="8443" />
  26. (3) 修改 AJP connector 端口号
  27. #tomcat1 默认配置
  28. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  29. #tomcat2 修改端口号9009
  30. <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
  31. (4) 修改 engine 名称
  32. #tocmat1 修改jvmRoute=”tomcat1”
  33. <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
  34. #tocmat2 修改jvmRoute=”tomcat2”
  35. <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
  36. 4.  启动
  37. [root@172-30-4-6 tomcattest]# /usr/tomcat1/bin/startup.sh    #启动tomcat1
  38. [root@172-30-4-6 tomcattest]# /usr/tomcat1/bin/startup.sh    #启动tomcat2
  39. 5.  测试
  40. #tomcat1测试
  41. http://172.30.4.6:8080
  42. #tomcat2 测试
  43. http://172.30.4.6:9080
  44. 结果:显示tomcat首页

3 集群配置 
3.1 apache+mod_jk+tomcat配置

Java代码  
  1. 1,  httpd.conf的配置
  2. [root@172-30-4-6 ~]# cd /usr/apache/conf         #进入apache配置目录
  3. [root@172-30-4-6 conf]# vim httpd.conf         #修改httpd.conf配置文件
  4. Include conf/mod_jk.conf            #增加include配置
  5. 2,  mod_jk.conf的配置
  6. [root@172-30-4-6 conf]# touch mod_jk.conf      #创建mod_jk.conf文件
  7. [root@172-30-4-6 conf]# vim mod_jk.conf       #修改mod_jk配置
  8. #mod_jk 配置mod_jk包
  9. LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so
  10. #workers 配置工作负责文件
  11. JkWorkersFile conf/workers.properties
  12. #jk log 配置jk日志文件
  13. JkLogFile logs/mod_jk.log
  14. #jk log leve 配置日志级别
  15. JkLogLevel info
  16. # 配置jk日志内存共享
  17. JkShmFile logs/mod_jk.shm
  18. #balancer 配置负载均衡模式
  19. JkMount /*.jsp balancer
  20. [root@172-30-4-6 conf]# cp /usr/tomcattest/mod_jk-1.2.31-httpd-2.2.x.so /usr/apache/modules    #将mod_jkb包拷贝到apache的modules目录下
  21. 3,  workers.properties的配置
  22. [root@172-30-4-6 conf]# touch workers.properties      #创建worker.properties文件
  23. [root@172-30-4-6 conf]# vim workers.properties
  24. #tomcat1的配置
  25. worker.tomcat1.port=8009
  26. worker.tomcat1.host=172.30.4.6
  27. worker.tomcat1.reference=worker.template
  28. worker.tomcat1.activation=A
  29. #worker.tomcat1.lbfactor=1
  30. #tomcat2 的配置
  31. worker.tomcat2.port=9009
  32. worker.tomcat2.host=172.30.4.6
  33. worker.tomcat2.reference=worker.template
  34. worker.tomcat2.activation=A
  35. #worker.tomcat2.lbfactor=1
  36. worker.list=balancer
  37. #balancer 负载配置
  38. worker.balancer.type=lb
  39. worker.balancer.balance_workers=tomcat1,tomcat2
  40. worker.balancer.sticky_session=1
  41. #tempalte 负载模板配置
  42. worker.template.type=ajp13

3.2 测试 
1, 创建测试项目 
新建一个项目:项目名称都为TestTomcat 
新建一个jsp页面:名称为testjsp.jsp

Java代码  
  1. <%@ page language="java" import="java.util.Date"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>欢迎访问</title>
  7. </head>
  8. <body>
  9. <%
  10. System.out.println(new Date()+"=============tomcat1=================");
  11. %>
  12. tomcat1=======<%=new Date()%>
  13. </body>
  14. </html>

2, 发布项目 
(1)将测试项目打包,包名为TestTomcat.war,将测试项目发布到tomcat1服务器上 。 
(2)修改项目testjsp.jsp文件

Java代码  
  1. <%@ page language="java" import="java.util.Date"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>欢迎访问</title>
  7. </head>
  8. <body>
  9. <%
  10. System.out.println(new Date()+"=============tomcat2=================");
  11. %>
  12. tomcat2=======<%=new Date()%>
  13. </body>
  14. </html>

(3)将修改后的项目TestTomcat.war发布到tomcat2服务器上

3, 测试集群 
分别在不同的客户端上访问apache代理服务器。 
http://172.30.4.6/TestTomcat/testjsp.jsp

访问结果: 
tomcat2=======Wed Jun 29 13:25:03 CST 2011 
或者 
tomcat1======Wed Jun 29 13:26:03 CST 2011

4 Session复制 
在Tomcat集群中实现session同步,可以通过session共享和复制来实现,下面以session复制来实现session同步。 
4.1 Session复制配置 
1, Tomcat中server.xml的配置 
[root@172-30-4-6 ~]# cd /usr/tomcat1/conf       #进入tomcat配置目录 
[root@172-30-4-6 conf]# vim server.xml          #修改server.xml配置 
# 在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">后面加上以下配置:

Java代码  
  1. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
  2. channelSendOptions="8">
  3. <Manager className="org.apache.catalina.ha.session.DeltaManager"
  4. expireSessionsOnShutdown="false"
  5. notifyListenersOnReplication="true"/>
  6. <Channel className="org.apache.catalina.tribes.group.GroupChannel">
  7. <Membership className="org.apache.catalina.tribes.membership.McastService"
  8. address="228.0.0.4"
  9. port="45564"
  10. frequency="500"
  11. dropTime="3000"/>
  12. <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
  13. address="auto"   #默认为auto,改为自己的IP
  14. port="4000"    #同一台服务器上的tomcat必须修改为不同的端口,tomcat1修改为4001,tomcat2修改为4002。
  15. autoBind="100"
  16. selectorTimeout="5000"
  17. maxThreads="6"/>
  18. <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
  19. <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
  20. </Sender>
  21. <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
  22. <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
  23. </Channel>
  24. <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
  25. filter=""/>
  26. <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
  27. <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
  28. tempDir="/tmp/war-temp/"
  29. deployDir="/tmp/war-deploy/"
  30. watchDir="/tmp/war-listen/"
  31. watchEnabled="false"/>
  32. <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
  33. <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
  34. </Cluster>

#分别给集群中每个tomcat在Engine后添加cluster配置,需要修改红色部分的配置: 
address=”172.30.4.6”   #本机IP地址 
port=”4001”  #同一机器需要修改端口号,tomcat1为4001,tomcat2为4002

2, Tomcat应用项目中web.xml的配置 
[root@172-30-4-6 ~]# cd /usr/tomcat1/webapps   #进入到web应用项目中 
[root@172-30-4-6 webapps]# vim /TestTomcat/WEB-INF/web.xml     #修改web.xml 
#在web.xml文件中加入

Java代码  
  1. <!--此应用将与群集服务器复制Session-->
  2. <distributable/>

4.2 测试 
1, 修改项目文件 
[root@172-30-4-6 ~]# cd /usr/tomcat1/webapps   #进入到web应用项目中 
[root@172-30-4-6 webapps]# vim /TestTomcat/ testjsp.jsp     #修改testjsp.jsp

Java代码  
  1. <%@ page language="java" import="java.util.Date"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>欢迎访问</title>
  7. </head>
  8. <body>
  9. <%
  10. System.out.println(new Date()+"=============tomcat1=================");
  11. session.setAttribute("name", "tomcat1");
  12. %>
  13. tomcat1=======<%=new Date()%>===<%=session.getId() %>===<%=session.getAttribute("name") %>
  14. </body>
  15. </html>

[root@172-30-4-6 ~]# cd /usr/tomcat2/webapps   #进入到web应用项目中 
[root@172-30-4-6 webapps]# vim /TestTomcat/ testjsp.jsp     #修改testjsp.jsp

Java代码  
  1. <%@ page language="java" import="java.util.Date"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>欢迎访问</title>
  7. </head>
  8. <body>
  9. <%
  10. System.out.println(new Date()+"=============tomcat2=================");
  11. %>
  12. tomcat2=======<%=new Date()%>===<%=session.getId() %>===<%=session.getAttribute("name") %>
  13. </body>
  14. </html>

2, 测试 
(1) 访问http://172.30.4.6/TestTomcat/testjsp.jsp 
页面显示结果为: 
tomcat1===Thu Jun 30 11:24:10 CST 2011==27E35C1389F5595A17F8B5FD00561EDA.tomcat1===tomcat1 
(2) 关闭tomcat1 
[root@172-30-4-6 ~]# /usr/tomcat1/bin/shutdown.sh

(3) 访问http://172.30.4.6/TestTomcat/testjsp.jsp 
页面显示结果为: 
tomcat2==Thu Jun 30 11:37:42 CST 2011===605087B0015E978752640DB389B874A2.tomcat2===tomcat1 
#证明session复制成功

Tomcat集群搭建超详细相关推荐

  1. Hbase集群搭建超详细教程

    Hbase集群搭建 前言 详细步骤 1.下载安装包 2.解压 3.修改配置文件 3.1 修改hbase-env.sh文件 3.2 修改hbase-site.xml 3.3 修改regionserver ...

  2. Windows下Redis集群搭建(超详细教程)

    文章目录 一.Redis单机版安装 二.Redis集群的安装 1.构建集群节点目录 2.下载Ruby并安装 3.构建集群脚本redis-trib.rb 4.构建集群 三.将Redis注册生window ...

  3. Hadoop集群搭建超详细说明

    最近随着公司业务的发展,在一波重构中技术层面主要的目标是双中台建设,由是就有了本文. # 数据中台 ## 1.环境准备 ### 1.1.前置条件 #### Linux wget ##### rpm 安 ...

  4. 零基础搭建Tomcat集群(超详细)

  5. k8s1.18多master节点高可用集群安装-超详细中文官方文档

    kubernetes安装系列文章 kubernetes1.17.3安装-超详细的安装步骤 安装kubernetes1.17.3多master节点的高可用集群 k8s1.18单master节点高可用集群 ...

  6. zookeeper单机和集群搭建过程详细步骤

    文章目录: ▶ 单机环境搭建 ▶ 设置zookeeper为开机服务 ▶ 集群环境搭建 单机环境搭建 要求: 依赖Java环境 单机搭建过程: 进入到/opt目录下,创建zookeeper 文件夹 cd ...

  7. Tomcat 集群搭建入门

    简介 由于单台Tomcat的承载能力是有限的,当我们的业务系统用户量比较大,请求压力比较大时,单台Tomcat是扛不住的,这个时候,就需要搭建Tomcat的集群,而目前比较流程的做法就是通过Nginx ...

  8. Redis集群搭建(非常详细)

    https://blog.csdn.net/qq_42815754/article/details/82912130 redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机 ...

  9. Hadoop集群搭建(详细简单粗暴)

    搭建所用Hadoop java版本 hadoop-3.1.3.tar.gz jdk-8u212-linux-x64.tar.gz 安装包链接:Hadoop及jdk安装包提取码:icn6 首先,我们先下 ...

最新文章

  1. 利用python中的gzip模块压缩和解压数据流和文件
  2. wsimport 不是内部或外部命令,也不是可运行的程序或批处理文件
  3. R语言构建logistic回归模型:构建模型公式、拟合logistic回归模型、模型评估,通过混淆矩阵计算precision、enrichment、recall指标
  4. 页面中的多选框的非空判断
  5. MySQL-CentOS7通过YUM安装MySQL5.7.29
  6. 汇编语言——《子程序应用(数制转换)程序设计》实验任务书
  7. Java中二维数组的用法(不定长二维数组)
  8. 初步掌握HDFS的架构及原理
  9. 监督学习无监督学习_无监督学习简介
  10. 前端学习(1522):vue-cli创建项目
  11. Java微信公众平台获取签名
  12. 【目标检测】FPN(Fature Pyramid Network)详解
  13. enum枚举类型 的用法
  14. Android项目模块化/组件化开发(非原创)
  15. chrome无法打开某些网页,但safari可以
  16. 可用于龙芯2F Debain6 vim编辑器下的c/c++ IDE集成开发环境
  17. 关闭WPS热点及广告推送
  18. GoLang之defer、panic、recover
  19. Java获取电脑外网ip地址方法
  20. 人工智能--人类的二次进化

热门文章

  1. 博物馆计算机系统操作工,职业技能鉴定国家题库统一试卷.doc
  2. 抖音轮播图html代码,抖音上超火的“图片轮播”、“卡点”视频都是怎么做的?...
  3. php怎么调节字体大小,php 怎么设置 字体
  4. 华为od机考真题-数组拼接
  5. 如何使用线程池,优雅的调用外部接口,然后将数据一并返回给前端
  6. 【录教程必备】推荐几款屏幕录制工具(可录制GIF)
  7. java 好和不好的形容词 英语怎么说_形容人的性格不好的英语形容词
  8. VMware虚拟机与主机进行文件共享的方法
  9. pyinstaller打包报错 Failed to execute script ‘xxx‘ due to unhandled exception:input():lost sys.stdin
  10. 计算机博士谷歌要吗,计算机博士指责谷歌科学欺诈 遭遇网友批驳