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