1. 如何在Ubuntu下搭建Spark集群
这里是结合Hadoop2.0使用的 1,download :http://spark.incubator.apache.org/downloads.html选择prebuilt:中hadoop2的下载,hadoop安装就不介绍了,spark节点可以不是hadoop节点,可以是一个hadoop客户端。 2,download scala,http://www.scala-lang.org/download/all.html根据下载的spark的README中的描述下载合适的版本 3,安装 其实就是解压,配置 /etc/profile环境变量 export SPARK_HOME=/data1/spark/spark export SCALA_HOME=/data1/spark/scala-2.9.3 export PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin 配置spark的conf下的spark-env.sh export JAVA_HOME=/usr/java/default export SCALA_HOME=/data1/spark/scala-2.9.3 export SPARK_MASTER_IP=192.168.0.1 export SPARK_MASTER_WEBUI_PORT=8080 export SPARK_WORKER_WEBUI_PORT=8000 export YARN_CONF_DIR=/data/hadoop/hadoop-2.0/etc/hadoop 配置slaves(ip根据需要修改) 192.168.0.2 192.168.0.3 分发spark目录和scala目录到几台服务器相同路径下 4,启动 进入主节点的spark目录的bin下stop-all.sh是停掉集群,start-all.sh启动集群,jps可以在主节点看到master进程,slave节点看到worker进程 5, 运行程序,运行例子进入spark目录下 分布式运行 ./run-example org.apache.spark.examples.SparkPi spark://192.168.0.1:7077 ./run-example org.apache.spark.examples.SparkLR spark://192.168.0.1:7077 本地运行 ./run-example org.apache.spark.examples.SparkPi local ./run-example org.apache.spark.examples.SparkLR local
2. Ubuntu16.04搭建rabbitmq集群
1.1、什么是RabbitMQ?
RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。
1.2、什么是AMQP?
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。它从生产者接收消息并递送给消费者,在这个过程中,根据规则进行路由,缓存与持久化。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如: Python 、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
1.3、RabbitMQ的基础概念
1.4、RabbitMQ的特性
2.1、环境:两台Ubuntu16.04主机
10.27.0.53 rabbitmq-1
10.27.0.130 rabbitmq-2
必须保证各个主机名之间可以ping通
2.2、安装Erlang
2.3、安装rabbitmq
2.4、安装完成后,验证一下服务是否正常
搭建好的rabbitmq默认是没有配置文件的,需要我们来手动添加
Rabbitmq的一些运行脚本存放在 /usr/sbin 下面
2.5、开启web管理插件
2.5.1、创建一个用户nova,并设置密码为123456
2.5.2、查看现有用户表
这个时候nova用户是不能访问web管理插件的,需要配置用户角色,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
无法登陆管理控制台,通常就是普通的生产者和消费者。
将nova添加到administrator用户组
此时的nova用户只能通过本地来登录其他的IP无法直接使用这个账号。所以需要对他进行授权,使用户nova /(可以访问虚拟主机) 中所有资源的配置、写、读权限以便管理其中的资源
查看用户授权
2.5.3、开启web管理插件并重启rabbitmq服务
以下为关闭插件命令
通过浏览器访问 [http://10.27.0.53:15672]输入用户名nova 密码123456就可以看到后台了
3.1、从管理界面可以看到,此时只有一个节点rabbitmq-1,我们需要把rabbitmq-2加进来,rabbitmq-2按照步骤2进行一系列安装就可以。此处不再细说。
3.2、添加节点
两台主机上安装的 RabbitMQ 都保证都可以正常启动,才可以进行以下操作
3.2.1、设置不同节点间统一认证的Erlang Cookie
这里将 rabbitmq-1 的该文件复制到 rabbitmq-2由于这个文件权限是 400为方便传输,先修改权限,非必须操作,所以需要先修改rabbitmq-2中的该文件权限为 777
然后将rabbitmq-1中的该文件拷贝的rabbitmq-2中
最后将权限和所属用户/组修改回来
此时rabbitmq-2节点需要重启一下服务
注意事项
cookie在所有节点上必须完全一样,同步时一定要注意。
erlang是通过主机名来连接服务,必须保证各个主机名之间可以ping通。可以通过编辑/etc/hosts来手工添加主机名和IP对应关系。如果主机名ping不通,rabbitmq服务启动会失败。
3.2.2、通过rabbitmqctl cluster_status命令,可以查看和个节点的状态,节点的名称是rabbit@shorthostname,
rabbitmq-1
rabbitmq-2
3.2.3
将两个节点组成集群
因为rabbitmq-server启动时,会一起启动节点和应用,它预先设置RabbitMQ应用为standalone模式。要将一个节点加入到现有的集群中,你需要停止这个应用并将节点设置为原始状态,然后就为加入集群准备好了。使用rabbitmqctl stop_app仅仅关闭应用。
将2加入1中
启动节点2的应用
如果要使用内存节点,则可以使用以下命令:其中–ram指的是作为内存节点,要是想做为磁盘节点的话,就不用加–ram这个参数了
集群配置好后,可以在 RabbitMQ 任意节点上执行 rabbitmqctl cluster_status 来查看是否集群配置成功。
Rabbitmq-1
Rabbitmq-2
同时在Web管理工具中也可以看到效果
上面配置RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制,虽然该模式解决一部分节点压力,但队列节点宕机直接导致该队列无法使用,只能等待重启,所以要想在队列节点宕机或故障也能正常使用,就要复制队列内容到集群里的每个节点,需要创建镜像队列。
镜像队列概念:镜像队列可以同步queue和message,当主queue挂掉,从queue中会有一个变为主queue来接替工作。镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列。镜像队列设置后,会分一个主节点和多个从节点,如果主节点宕机,从节点会有一个选为主节点,原先的主节点起来后会变为从节点。queue和message虽然会存在所有镜像队列中,但客户端读取时不论物理面连接的主节点还是从节点,都是从主节点读取数据,然后主节点再将queue和message的状态同步给从节点,因此多个客户端连接不同的镜像队列不会产生同一message被多次接受的情况。
设置镜像队列策略
在普通集群的中任意节点启用策略,策略会自动同步到集群节点
命令格式
在任意一个节点上执行
集群重启
集群重启时,最后一个挂掉的节点应该第一个重启,如果因特殊原因(比如同时断电),而不知道哪个节点最后一个挂掉。可用以下方法重启:
先在一个节点上执行
在其他节点上执行
查看cluster状态是否正常(要在所有节点上查询)。
添加用户
处于安全的考虑,guest这个默认的用户只能通过 http://localhost:15672 来登录,其他的IP无法直接使用这个账号。所以我们需要添加一个其他用户。
命令格式
删除用户
命令格式
修改密码
命令格式
用户授权
命令格式
该命令使用户nova /(可以访问虚拟主机) 中所有资源的配置、写、读权限以便管理其中的资源
查看用户授权
命令格式
查看当前用户列表
可以看到添加用户成功了,但不是administrator角色
添加角色
这里我们也将nova用户设置为administrator角色
命令格式
再次查看权限
清除权限信息
命令格式
下一篇为测试文章 https://www.jianshu.com/p/f4153f72e4c1
3. 如何在Ubuntu上配置Tomcat集群
您好,很高兴为您解答。
第一步:安装带mod_jk插件的Apache Web服务器
使用这个命令:
$sudoapt-getinstallapache2libapache2-mod-jk
第二步:安装JDK和Apache Tomcat
第三步:在代理均衡器上配置Apache mod_jk
在Ubuntu上,mod_jk配置文件位于/etc/apache2/mods-enabled/jk.conf。用下列内容更新该文件:
<IfMolejk_mole>
#Weneedaworkersfileexactlyonce
#andintheglobalserver
JkWorkersFile/etc/libapache2-mod-jk/workers.properties
#JKerrorlog
#Youcan(andshould)userotatelogshere
JkLogFile/var/log/apache2/mod_jk.log
#JKloglevel(trace,debug,info,warn,error)
JkLogLevelinfo
JkShmFile/var/log/apache2/jk-runtime-status
JkWatchdogInterval60
JkMount/*loadbalancer
JkMount/jk-statusjkstatus
#Configureaccesstojk-statusandjk-manager
#,
#
#oritlogicallytherebyincluding"JkMountCopyOn"
#inthevirtualhost.
#!
<Location/jk-status>
#
JkMountjk-status
Orderdeny,allow
Denyfromall
Allowfrom127.0.0.1
</Location>
<Location/jk-manager>
#
JkMountjk-manager
Orderdeny,allow
Denyfromall
Allowfrom127.0.0.1
</Location>
</IfMole>
为了让上述配置适用于多个Tomcat实例,要在/etc/libapache2-mod-jk/workers.properties中配置每一个Tomcat worker实例。假设两个worker Ubuntu机器的IP地址分别是192.168.1.100和192.168.1.200。
用下列内容,创建或编辑etc/libapache2-mod-jk/workers.properties:
worker.list=loadbalancer,jkstatus#为192.168.1.100配置Tomcat实例
worker.tomcat1.type=ajp13
worker.tomcat1.host=192.168.1.100
worker.tomcat1.port=8081
#worker“tomcat1”使用多达20个套接字,套接字在连接池中驻留的时间只有短短10分钟。
worker.tomcat1.connection_pool_size=200
worker.tomcat1.connection_pool_timeout=600
#worker“tomcat1”将要求操作系统发送关于连接的KEEP-ALIVE信号。
worker.tomcat1.socket_keepalive=1
#为192.168.1.200配置Tomcat实例
worker.tomcat2.type=ajp13
worker.tomcat2.host=192.168.1.200
worker.tomcat2.port=8082
#worker“tomcat2”使用多达20个套接字,套接字在连接池中驻留的时间只有短短10分钟。
worker.tomcat2.connection_pool_size=200
worker.tomcat2.connection_pool_timeout=600
#worker“tomcat2”将要求操作系统发送关于连接的KEEP-ALIVE信号。
worker.tomcat2.socket_keepalive=1
worker.jkstatus.type=status
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcat1,tomcat2
第四步:配置Tomcat实例
使用下列内容,为地址是192.168.1.100的Tomcat实例编辑/opt/apache-tomcat-7.0.30/conf/server.xml:
<Enginename="Catalina"defaultHost="192.168.1.100”jvmRoute="tomcat1">
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8">
<ManagerclassName="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<ChannelclassName="org.apache.catalina.tribes.group.GroupChannel">
<SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"port="4000"autoBind="100"selectorTimeout="5000"maxThreads="50"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/>
<ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<ClusterListenerclassName="org.apache.catalina.ha.session."/>
<ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
使用下列内容,为地址是192.168.1.200的Tomcat实例编辑/opt/apache-tomcat-7.0.30/conf/server.xml:
<Enginename="Catalina"defaultHost="192.168.1.200”jvmRoute="tomcat2">
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8">
<ManagerclassName="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<ChannelclassName="org.apache.catalina.tribes.group.GroupChannel">
<SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"port="4000"autoBind="100"selectorTimeout="5000"maxThreads="30"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/>
<ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<ClusterListenerclassName="org.apache.catalina.ha.session."/>
<ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
第五步:测试Tomcat集群
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~O(∩_∩)O~
4. 怎么通过lvs+keepalived+ppache2 实现在ubuntu server 14.10下三个独立网关的集群
实验环境:
LVS和keepalived介绍:
1.keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用来做双机热备。
使用keepalived构建LVS群集更加简便易用,主要优势体现在:
对LVS负载调度器实现热备切换,提高可用性;
对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。
2.在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,本例将以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建建有负载均衡、高可用两种能力的LVS网站群集平台。
3.通过LVS+Keepalived构建的LVS集群,LVS负载均衡用户请求到后端tomcat服务器,Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
Keepalived简介
什么是Keepalived:keepalived可以实现服务的高可用或热备,用来防止单点故障的问题;而Keepalived的核心VRRP协议,VRRP协议主要实现了在路由器或三层交换机处的冗余;Keepalived就是使用VRRP协议来实现高可用的;下面一起来看一下Keepalived的原理图:
LVS+Keepalived高可用负载均衡集群架构实验
Keepalived启动后会有三个进程:
父进程:内存管理,子进程管理
子进程:VRRP子进程
子进程:healthchecker子进程
由上图可知:
两个子进程都被系统WatchDog看管,两个子进程各自复杂自己的事,healthchecker子进程复杂检查各自服务器的健康程度,例如HTTP,LVS等,如果healthchecker子进程检查到MASTER上服务不可用了,就会通知本机上的VRRP子进程,让它删除通告,并且去掉虚拟IP,转换为BACKUP状态;
实验架构图:
LVS+Keepalived高可用负载均衡集群架构实验
1 <BR>
实验过程:
HA高可用集群构建前提:
1.proxy和proxy2节点时间必须同步;
建议使用ntp协议进行;
参考博客:http://sohudrgon.blog.51cto.com/3088108/1598314
2、节点之间必须要通过主机名互相通信;
建议使用hosts文件;
通信中使用的名字必须与其节点为上“uname -n”命令展示出的名字保持一致;
[root@proxy ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.1 server.magelinux.com server
172.16.31.52 proxy.stu31.com proxy
172.16.31.53 proxy2.stu31.com proxy2
172.16.31.50 tom1.stu31.com tom1
172.16.31.51 tom2.stu31.com tom2
3、节点之间彼此root用户能基于ssh密钥方式进行通信;
节点proxy:
# ssh-keygen -t rsa -P ""
# ssh--id -i .ssh/id_rsa.pub proxy2
节点proxy2:
# ssh-keygen -t rsa -P ""
# ssh--id -i .ssh/id_rsa.pub proxy
测试ssh无密钥通信:
123 [root@proxy ~]# date ; ssh proxy2 date
Sat Jan 17 15:29:26 CST 2015
Sat Jan 17 15:29:26 CST 2015
一.配置安装LVS+keepalived
1.在Master与Backup服务器上分别安装Ipvsadm、Keepalived软件包、这里使用的是yum安装方式
# yum install -y keepalived ipvsadm
注释:这里安装Ipvsadm工具主要是为了查看lvs规则使用,不安装ipvsadm工具也能成功配置规则,但不方便;
2.修改keepalived配置文件
keepalived的文件路径/etc/keepalived/keepalived.conf
修改Master节点proxy的主配置文件
[root@proxy ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email { #设置报警通知邮件地址,可以设置多个
root@localhost
}
notification_email_from [email protected] #设置邮件的发送地址
smtp_server 127.0.0.1 #设置smtp server的地址,该地址必须是存在的
smtp_connect_timeout 30 #设置连接smtp server的超时时间
router_id LVS_DEVEL #运行Keepalived服务器的标识,发邮件时显示在邮件标题中的信息
}
vrrp_instance VI_1 { #定义VRRP实例,实例名自定义
state MASTER #指定Keepalived的角色,MASTER为主服务器,BACKUP为备用服务器
interface eth0 #指定HA监测的接口
virtual_router_id 51 #虚拟路由标识,这个标识是一个数字(1-255),在一个VRRP实例中主备服务器ID必须一样
priority 100 #优先级,数字越大优先级越高,在一个实例中主服务器优先级要高于备服务器
advert_int 1 #设置主备之间同步检查的时间间隔单位秒
authentication { #设置验证类型和密码
auth_type PASS #验证类型有两种{PASS|HA}
auth_pass Oracle #设置验证密码,在一个实例中主备密码保持一样
}
virtual_ipaddress { #定义虚拟IP地址,可以有多个,每行一个
172.16.31.188
}
}
virtual_server 172.16.31.188 { #设置虚拟服务器,需要指定虚拟IP与服务端口,用空格分隔
delay_loop 6 #设置健康状态检查时间,单位为秒
lb_algo rr #设置负载高度算法,rr为轮询
lb_kind DR #设置LVS实现负载均衡的机制,可以为{NAT|TUN|DR}三种
nat_mask 255.255.0.0 #设置掩码
persistence_timeout 50 #会话保持时间,单位为秒;这个选项对于动态网页是非常有用的,为集群系统中session共享提供了一个很好的解决方案
protocol TCP #指定转发协议类型可以设置{TCP|UDP}两种
real_server 172.16.31.50 80 { #后端服务器节点,需要指定Real_server的IP与端口,用空格分隔
weight 1 #配置服务节点的权重,数字越大,权重越高
HTTP_GET { #设置检测Realserver的方式为http协议
url {
path /
status_code 200 #设定返回状态码为200表示Realserver是存活的
}
connect_timeout 3 #设置响应超时时间
nb_get_retry 3 #设置超时重试次数
delay_before_retry 3 #设置超时后重试间隔
}
}
real_server 172.16.31.51 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
3.将Master服务器proxy节点上的主配置文件拷贝到Backup服务器proxy2节点稍作修改
# scp /etc/keepalived/keepalived.conf proxy2:/etc/keepalived/
######修改如下两项
[root@proxy2 ~]# vim /etc/keepalived/keepalived.conf
state BACKUP
priority 99
4.启动两台服务器上的Keepalived服务并设置为开机自启动
# chkconfig --add keepalived ; ssh proxy2 "chkconfig --add keepalived"
# chkconfig keepalived on ; ssh proxy2 "chkconfig keepalived on"
# chkconfig --list keepalived; ssh proxy2 "chkconfig --list keepalived"
keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off
keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off
启动服务:
# service keepalived start; ssh proxy2 "service keepalived start"
5.观察各节点的服务启动后的日志:
MASTER节点的日志;
[root@proxy keepalived]# tail -f /var/log/messages
Jan 17 15:57:42 proxy Keepalived[15019]: Starting Keepalived v1.2.13 (10/15,2014)
Jan 17 15:57:42 proxy Keepalived[15021]: Starting Healthcheck child process, pid=15024
Jan 17 15:57:42 proxy Keepalived[15021]: Starting VRRP child process, pid=15025
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Netlink reflector reports IP 172.16.31.52 added
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Netlink reflector reports IP fe80::a00:27ff:fe3b:2360 added
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Registering Kernel netlink reflector
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Registering Kernel netlink command channel
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Registering gratuitous ARP shared channel
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Netlink reflector reports IP 172.16.31.52 added
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Netlink reflector reports IP fe80::a00:27ff:fe3b:2360 added
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Registering Kernel netlink reflector
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Registering Kernel netlink command channel
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Opening file '/etc/keepalived/keepalived.conf'.
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Configuration is using : 63202 Bytes
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: Using LinkWatch kernel netlink reflector...
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Opening file '/etc/keepalived/keepalived.conf'.
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Configuration is using : 16989 Bytes
Jan 17 15:57:42 proxy Keepalived_vrrp[15025]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Using LinkWatch kernel netlink reflector...
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Activating healthchecker for service [172.16.31.50]:8080
Jan 17 15:57:42 proxy Keepalived_healthcheckers[15024]: Activating healthchecker for service [172.16.31.51]:8080
Jan 17 15:57:43 proxy Keepalived_vrrp[15025]: VRRP_Instance(VI_1) Transition to MASTER STATE
Jan 17 15:57:44 proxy Keepalived_vrrp[15025]: VRRP_Instance(VI_1) Entering MASTER STATE
Jan 17 15:57:44 proxy Keepalived_vrrp[15025]: VRRP_Instance(VI_1) setting protocol VIPs.
Jan 17 15:57:44 proxy Keepalived_healthcheckers[15024]: Netlink reflector reports IP 172.16.31.188 added
Jan 17 15:57:44 proxy Keepalived_vrrp[15025]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 172.16.31.188
BACKUP节点的日志:
[root@proxy2 keepalived]# tail -f /var/log/messages
Jan 17 15:57:42 proxy2 Keepalived[15005]: Starting Keepalived v1.2.13 (10/15,2014)
Jan 17 15:57:42 proxy2 Keepalived[15007]: Starting Healthcheck child process, pid=15009
Jan 17 15:57:42 proxy2 Keepalived[15007]: Starting VRRP child process, pid=15010
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Netlink reflector reports IP 172.16.31.53 added
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Netlink reflector reports IP 172.16.31.53 added
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Netlink reflector reports IP fe80::a00:27ff:fe6e:bd28 added
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Registering Kernel netlink reflector
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Registering Kernel netlink command channel
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Registering gratuitous ARP shared channel
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Netlink reflector reports IP fe80::a00:27ff:fe6e:bd28 added
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Registering Kernel netlink reflector
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Registering Kernel netlink command channel
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Opening file '/etc/keepalived/keepalived.conf'.
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Opening file '/etc/keepalived/keepalived.conf'.
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Configuration is using : 16991 Bytes
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Configuration is using : 63204 Bytes
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: Using LinkWatch kernel netlink reflector...
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: VRRP_Instance(VI_1) Entering BACKUP STATE
Jan 17 15:57:42 proxy2 Keepalived_vrrp[15010]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Using LinkWatch kernel netlink reflector...
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Activating healthchecker for service [172.16.31.50]:8080
Jan 17 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Activating healthchecker for service [172.16.31.51]:8080
6.开启Master节点与Backup节点服务器的路由转发功能
#sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
5. 如何在Ubuntu上配置Tomcat集群
多安装几个tomcat,并配置不同的端口号。关键在于修改这一行,添加jvmRoute="jvm1"
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">,不同的tomcat修改成不同的值,可以叫jvm1、jvm2、jvm3,自己定。
然后通过apache(或ngix或其它web服务器),通过代理或Jk方式,配置一个负载均衡。如下apache tomcat集群配置。
APACHE 2.2.8 TOMCAT6.0.14配置负载均衡
目标:
使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求:
1、 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。
2、 为系统设定 Session 超时时间,包括 Apache 和 tomcat
3、 为系统屏蔽文件列表,包括 Apache 和 tomcat
注:本例程以一台机器为例子,即同一台机器上装一个apache和4个Tomcat。
一、前期准备工作:安装用的程序(前提保证已安装了JDK1.5以上的版本)
APAHCE 2.2.8下载:apache_2.2.8-win32-x86-no_ssl.msi
TOMCAT6.0.14下载:apache-tomcat-6.0.14.zip直接解压。
二、安装过程
APAHCE安装目录:D:\Apache。
四个TOMCAT目录:自行解压到(D:\Tomcat集群服务器\)下。分别为 tomcat6.0,tomcat6.01,tomcat6.02,tomcat6.03
这几个安装过程就不详细说明了。
6. 怎样在ubuntu15.04下搭建集群
这里是结合Hadoop2.0使用的
1,download :http://spark.incubator.apache.org/downloads.html选择prebuilt:中hadoop2的下载,hadoop安装就不介绍了,spark节点可以不是hadoop节点,可以是一个hadoop客户端。
2,download scala,http://www.scala-lang.org/download/all.html根据下载的spark的README中的描述下载合适的版本
3,安装 其实就是解压,配置 /etc/profile环境变量
export SPARK_HOME=/data1/spark/spark
export SCALA_HOME=/data1/spark/scala-2.9.3
export PATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin
配置spark的conf下的spark-env.sh
export JAVA_HOME=/usr/java/default
export SCALA_HOME=/data1/spark/scala-2.9.3
export SPARK_MASTER_IP=192.168.0.1
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORKER_WEBUI_PORT=8000
export YARN_CONF_DIR=/data/hadoop/hadoop-2.0/etc/hadoop
配置slaves(ip根据需要修改)
192.168.0.2
192.168.0.3
分发spark目录和scala目录到几台服务器相同路径下
4,启动
进入主节点的spark目录的bin下stop-all.sh是停掉集群,start-all.sh启动集群,jps可以在主节点看到master进程,slave节点看到worker进程
5, 运行程序,运行例子进入spark目录下
分布式运行
./run-example org.apache.spark.examples.SparkPi spark://192.168.0.1:7077
./run-example org.apache.spark.examples.SparkLR spark://192.168.0.1:7077
本地运行
./run-example org.apache.spark.examples.SparkPi local
./run-example org.apache.spark.examples.SparkLR local