Hadoop 2.7.2 HA 自動切換高可用叢集配置詳解
1、叢集節點規劃
NameNode | node1 | node2 | |
DataNode | node1 | node2 | node3 |
JournalNode | node1 | node2 | node3 |
zookeeper | node1 | node2 | node3 |
node1:172.16.73.143
node2:172.16.73.43
node3:172.16.73.211
1.1 各節點安裝軟體目錄規劃:
JDK 目錄 | /opt/package/jdk1.7.0_76 |
hadoop | /opt/package/hadoop-2.7.2 |
zookeeper | /opt/package/zookeeper-3.4.10 |
1.2 各節點臨時目錄規劃
hadoop臨時目錄 | /opt/data/hadoop_tmp_dir |
journalNode 臨時目錄 | /opt/data/journal_tmp_dir |
zookeeper臨時目錄 | /opt/package/zookeeper-3.4.10/dataLogDir /opt/package/zookeeper-3.4.10/dataDir |
1.3 相關軟體
JDK 1.7.0_76
Hadoop:2.7.2
zookeeper: 3.4.10
2.配置Linux環境
推薦使用root使用者登入linux
2.0.1 確保各個節點可以互相ping通
如果使用虛擬,確保是橋接方式,以便虛擬機器裡各個主機可以ping通
2.0.2 配置hostname
vi /etc/sysconfig/network
HOSTNAME=<主機名>
2.0.3 配置/etc/hosts
需要把叢集內各個節點的對映都寫進來
172.16.73.143 node1
172.16.73.43 node2
172.16.73.211 node3
例如下面是node3這個節點的/etc/hosts配置,如果叢集裡有多個節點,每個節點的hosts檔案都要列出所有節點的對映關係
2.0.4 關閉防火牆
暫時關閉防火牆
service iptables stop
永久關閉防火牆
chkconfig iptables off
檢視防火牆自動執行狀態
chkconfig --list|grep iptables
關閉linux 安全策略 selinux
vim /etc/sysconfig/selinux
SELINUX=disabled
2.0.5 配置ssh免密碼登入
確保在叢集內的所有節點都可以互相免密碼登入,並且可以免密碼登入到自身
檢查ssh服務是否正常執行
service sshd status
openssh-daemon (pid 1850) is running...
以上提示表示正常
如果要實現從主機A上免SSH密碼登入到主機B,操作如下
在A上:
產生自己的公鑰和私鑰
ssh-keygen -t rsa
把自己的私鑰放到遠端的主機上,有3種方法:
方法1:
ssh-copy-id -i [email protected]
方法2:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
方法3:
ssh-copy-id -i hostname
如果想要實現雙向免密碼登入操作方法是相同的.
在一些情況下應用程式需要登入到當前自己所在的主機,叫做登入到自身主機,例如當前主機是node2,這樣操作
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
2.0.6 安裝JDK
jdk 安裝在 /opt/package/jdk1.7.0_76
修改/etc/profile,加入以下內容
export JAVA_HOME=/opt/package/jdk1.7.0_76
export HADOOP_HOME=/opt/package/hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
儲存退出後執行
source /etc/profile
2.0.7 同步各個節點的時間
2.1 搭建zookeeper叢集
zookeeper在NameNode所在的節點上執行一個FailoverContriler,它會監控NameNode的執行狀態,如果一個是active一個是standby沒有問題,如果NameNdoe的狀態發生了變化,比如宕機zookeeper叢集就能感知到這個叢集的變化。叢集通過FailoverContriler把相應的NameNode的狀態改成active,實現自動切換。
2.1.1 解壓zookeeper安裝包
在node1上解壓zookeeper安裝包,產生zookeeper-3.4.10目錄,把conf/zoo_sample.cfg重新命名為zoo.cfg
並且建立兩個目錄dataDir和dataLogDir
修改配置檔案conf/zoo.cfg
(1)
dataDar = /opt/package/zookeeper-3.4.10/dataDir
dataLogDir=/opt/package/zookeeper-3.4.10/dataLogDir
(2)增加以下內容
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
建立目錄mkdir zookeeper/data
寫入檔案echo 1 >zookeeper/data/myid
2.2 修改Hadoop相關配置檔案(hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves)
在在node1上操作
2.2.1 hadoop-env.sh
export JAVA_HOME=/opt/package/jdk1.7.0_76
2.2.2 core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/hadoop_tmp_dir</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node1:2181,node2:2181,node3:2181</value>
</property>
2.2.3 hdsf-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1</value>
</property>
<property>
<name>dfs.ha.nameservice.cluster1</name>
<value>node1,node2</value>
</property>
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>node1,node2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.node1</name>
<value>node1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.node1</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.node2</name>
<value>node2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.node2</name>
<value>node2:50070</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/cluster1</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/data/journal_tmp_dir</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
2.2.4 salves
node1
node2
node3
這個配置檔案每一行只能寫一個hostname,作為DataNode
2.3 同步部署資訊
上面部署的JDK、Zookeeper、Hadoop 都只是在node1上完成的,目前node2、node3上還都沒有部署,下面用shell指令碼,把部署資訊批量複製到Node2、Node3
在node1上新建一個shell指令碼
vi deploy.sh
#!/bin/bash
for i in 2 3
do
mkdr /opt/data/hadoop_tmp_dir
mkdir /opt/data/journalnode_tmp_dir
#下面這個命令會把/opt下的所有目錄包括子目錄和檔案複製到node2 node3上面
scp -rq /otp node$i:/opt
done
執行deploy.sh
然後修改node2 ndoe3 上的zookeeper配置檔案
node2 的zookeeper配置檔案/opt/package/zookeeper-3.4.10/dataDir/myid 把裡面的值修改成2
node3 的zookeeper配置檔案/opt/package/zookeeper-3.4.10/dataDir/myid 把裡面的值修改成3
分別啟動node1、node2、node3的zookeeper服務
bin/zkServer.sh start
啟動之後,每個節點上都應該有QuorumPeerMain這個程序。
上面的deploy.sh 看來似乎太簡單了,其實我們後續還可以對這個指令碼進行擴充套件。在實際工作當中靈活運用shell指令碼能帶來非常大的便利。
2.4 啟動叢集
2.4.1 格式化zk叢集
在ndoe1上執行 bin/hdfs zkfc -formatZK,格式化之後,會在zookeeper裡面建立一個hadoop-ha/cluster1這兩個節點,驗證一下看看,隨便進入node1---node3任何一個節點的zookeeper的bin目錄,然後執行./zkCli.sh
2.4.2 啟動journalNode節點
在node1 node2 node3上分別執行sbin/hadoop-daemon.sh start journalnode,啟動之後每個節點上都應該有JournalNode這個程序
2.4.3 格式化並啟動nameNode
在node1上執行
bin/hdfs namenode -format
[[email protected] bin]# ./hdfs namenode -format
17/07/04 11:44:40 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = node1/172.16.73.143
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.7.2
STARTUP_MSG: classpath =
STARTUP_MSG: build = https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41; compiled by 'jenkins' on 2016-01-26T00:08Z
STARTUP_MSG: java = 1.7.0_76
************************************************************/
17/07/04 11:44:40 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
17/07/04 11:44:40 INFO namenode.NameNode: createNameNode [-format]
17/07/04 11:44:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Formatting using clusterid: CID-c5cf000d-0dc4-4391-97c8-8ff8067818a5
17/07/04 11:44:43 INFO namenode.FSNamesystem: No KeyProvider found.
17/07/04 11:44:43 INFO namenode.FSNamesystem: fsLock is fair:true
17/07/04 11:44:43 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000
17/07/04 11:44:43 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true
17/07/04 11:44:43 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.000
17/07/04 11:44:43 INFO blockmanagement.BlockManager: The block deletion will start around 2017 Jul 04 11:44:43
17/07/04 11:44:43 INFO util.GSet: Computing capacity for map BlocksMap
17/07/04 11:44:43 INFO util.GSet: VM type = 64-bit
17/07/04 11:44:43 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB
17/07/04 11:44:43 INFO util.GSet: capacity = 2^21 = 2097152 entries
17/07/04 11:44:43 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false
17/07/04 11:44:43 INFO blockmanagement.BlockManager: defaultReplication = 3
17/07/04 11:44:43 INFO blockmanagement.BlockManager: maxReplication = 512
17/07/04 11:44:43 INFO blockmanagement.BlockManager: minReplication = 1
17/07/04 11:44:43 INFO blockmanagement.BlockManager: maxReplicationStreams = 2
17/07/04 11:44:43 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000
17/07/04 11:44:43 INFO blockmanagement.BlockManager: encryptDataTransfer = false
17/07/04 11:44:43 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000
17/07/04 11:44:43 INFO namenode.FSNamesystem: fsOwner = root (auth:SIMPLE)
17/07/04 11:44:43 INFO namenode.FSNamesystem: supergroup = supergroup
17/07/04 11:44:43 INFO namenode.FSNamesystem: isPermissionEnabled = true
17/07/04 11:44:43 INFO namenode.FSNamesystem: Determined nameservice ID: cluster1
17/07/04 11:44:43 INFO namenode.FSNamesystem: HA Enabled: true
17/07/04 11:44:43 INFO namenode.FSNamesystem: Append Enabled: true
17/07/04 11:44:44 INFO util.GSet: Computing capacity for map INodeMap
17/07/04 11:44:44 INFO util.GSet: VM type = 64-bit
17/07/04 11:44:44 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB
17/07/04 11:44:44 INFO util.GSet: capacity = 2^20 = 1048576 entries
17/07/04 11:44:44 INFO namenode.FSDirectory: ACLs enabled? false
17/07/04 11:44:44 INFO namenode.FSDirectory: XAttrs enabled? true
17/07/04 11:44:44 INFO namenode.FSDirectory: Maximum size of an xattr: 16384
17/07/04 11:44:44 INFO namenode.NameNode: Caching file names occuring more than 10 times
17/07/04 11:44:44 INFO util.GSet: Computing capacity for map cachedBlocks
17/07/04 11:44:44 INFO util.GSet: VM type = 64-bit
17/07/04 11:44:44 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB
17/07/04 11:44:44 INFO util.GSet: capacity = 2^18 = 262144 entries
17/07/04 11:44:44 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033
17/07/04 11:44:44 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
17/07/04 11:44:44 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000
17/07/04 11:44:44 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
17/07/04 11:44:44 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
17/07/04 11:44:44 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
17/07/04 11:44:44 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
17/07/04 11:44:44 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
17/07/04 11:44:44 INFO util.GSet: Computing capacity for map NameNodeRetryCache
17/07/04 11:44:44 INFO util.GSet: VM type = 64-bit
17/07/04 11:44:44 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
17/07/04 11:44:44 INFO util.GSet: capacity = 2^15 = 32768 entries
17/07/04 11:44:46 INFO namenode.FSImage: Allocated new BlockPoolId: BP-456015986-172.16.73.143-1499139886625
17/07/04 11:44:46 INFO common.Storage: Storage directory /opt/data/hadoop_tmp_dir/dfs/name has been successfully formatted.
17/07/04 11:44:47 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
17/07/04 11:44:47 INFO util.ExitUtil: Exiting with status 0
17/07/04 11:44:47 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at node1/172.16.73.143
************************************************************/
[[email protected] bin]#
格式化之後,我們看看產生了什麼?
執行tree /opt/data檢視這個目錄樹的機構
、
黃色方框內的內容都是格式化之後建立的
啟動node1上的NameNode
sbin/hadoop-daemon.sh start namenode
執行之後通過jps檢視會有一個NameNode節點在執行
在node2上執行:
bin/hdfs namenode -bootstrapStandby
[[email protected] bin]# ./hdfs namenode -bootstrapStandby
17/07/04 18:14:59 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = node2/172.16.73.43
STARTUP_MSG: args = [-bootstrapStandby]
STARTUP_MSG: version = 2.7.2
STARTUP_MSG: classpath = 略
STARTUP_MSG: build = https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41; compiled by 'jenkins' on 2016-01-26T00:08Z
STARTUP_MSG: java = 1.7.0_76
************************************************************/
17/07/04 18:14:59 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
17/07/04 18:14:59 INFO namenode.NameNode: createNameNode [-bootstrapStandby]
17/07/04 18:15:01 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
=====================================================
About to bootstrap Standby ID node2 from:
Nameservice ID: cluster1
Other Namenode ID: node1
Other NN's HTTP address: http://node1:50070
Other NN's IPC address: node1/172.16.73.143:9000
Namespace ID: 1521343093
Block pool ID: BP-456015986-172.16.73.143-1499139886625
Cluster ID: CID-c5cf000d-0dc4-4391-97c8-8ff8067818a5
Layout version: -63
isUpgradeFinalized: true
=====================================================
17/07/04 18:15:03 INFO common.Storage: Storage directory /opt/data/hadoop_tmp_dir/dfs/name has been successfully formatted.
17/07/04 18:15:05 INFO namenode.TransferFsImage: Opening connection to http://node1:50070/imagetransfer?getimage=1&txid=0&storageInfo=-63:1521343093:0:CID-c5cf000d-0dc4-4391-97c8-8ff8067818a5
17/07/04 18:15:05 INFO namenode.TransferFsImage: Image Transfer timeout configured to 60000 milliseconds
17/07/04 18:15:05 INFO namenode.TransferFsImage: Transfer took 0.01s at 0.00 KB/s
17/07/04 18:15:05 INFO namenode.TransferFsImage: Downloaded file fsimage.ckpt_0000000000000000000 size 351 bytes.
17/07/04 18:15:05 INFO util.ExitUtil: Exiting with status 0
17/07/04 18:15:05 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at node2/172.16.73.43
************************************************************/
[[email protected] bin]#
我們看看執行這個之後在node2上產生了什麼
[[email protected] bin]# tree /opt/data
/opt/data
├── hadoop_tmp_dir
│ └── dfs
│ └── name
│ └── current
│ ├── fsimage_0000000000000000000
│ ├── fsimage_0000000000000000000.md5
│ ├── seen_txid
│ └── VERSION
└── journal_tmp_dir
└── cluster1
├── current
│ ├── paxos
│ └── VERSION
└── in_use.lock
8 directories, 6 files
[[email protected] bin]#
/opt/data/hadoop_tmp_dir/dfs/opt/data/journal_tmp_dir/cluster1
這兩個新目錄及其下面的檔案是新產生的。
然後啟動node2上的NameNode
sbin/hadoop-daemon.sh start namenode
啟動節點後用jps檢視會發現新增加了一個NameNode程序
[[email protected] sbin]# jps
25051 QuorumPeerMain
25964 Jps
25922 NameNode
25570 JournalNode
[[email protected] sbin]#
node1 ndoe2上都應該有NameNode程序存在。
2.4.4 啟動DataNode
在node1上執行
sbin/hadoop-daemons.sh start datanode
這個是啟動整個叢集中的所有datanode,注意這裡用的是hadoop-daemons.sh這個啟動指令碼。
[[email protected] sbin]# ./hadoop-daemons.sh start datanode
node1: starting datanode, logging to /opt/package/hadoop-2.7.2/logs/hadoop-root-datanode-node1.out
node2: starting datanode, logging to /opt/package/hadoop-2.7.2/logs/hadoop-root-datanode-node2.out
node3: starting datanode, logging to /opt/package/hadoop-2.7.2/logs/hadoop-root-datanode-node3.out
[[email protected] sbin]#
啟動之後,會同時啟動在node2 node3上的DataNode
2.4.5 啟動zkfc
在有NameNode的節點上(node1 node2)啟動上啟動zkFc,執行
sbin/hadoop-daemon.sh start zkf
啟動後應該有DFSZKFailoverController程序存在
OK ,到目前為止,所有的服務完全啟動完畢
各個節點上的程序如下
======================node1=============================
4034 DataNode
3749 NameNode
2466 QuorumPeerMain
4216 DFSZKFailoverController
3029 JournalNode
======================node2=============================
25051 QuorumPeerMain
26053 DataNode
26229 DFSZKFailoverController
25922 NameNode
25570 JournalNode
======================node3=============================
30422 DataNode
29691 QuorumPeerMain
29868 JournalNode
可以看到在node1和node2上都有NameNode、JournalNode 這個是JournalNode叢集的相關服務,用來實現當某一個NameNode宕機之後自動切換到另一個備用的NameNode
3.測試
通過下面的URL來檢視這個自動切換的HA叢集上的兩個NameNode的情況,其中必然有一個是active,一個是standby
172.16.73.143 node1
172.16.73.43 node2
50070是NameNode的WEB管理埠,通過這個埠可以用HTTP協議訪問NameNode,檢視各種重要的關鍵資訊。
http://172.16.73.143:50070
http://172.16.73.43:50070
因為使用JournalNode叢集來實現HA,所以叢集內的NameNode節點個數必須是2個
下面是node1的情況,同時也列出了3個DataNode的情況,可以發現node1是active狀態
node2:
node2是standby狀態。
當我們把node1上的NameNode停止之後,看看Node2的情況:
可以發現node2很快切換成active狀態,此時啟動node1上的namenode,然後檢視狀態,發現Node1已經是standby狀態。完美的解決了Hadoop的單點故障問題。
4 HA 自動切換高可用叢集的啟動和停止
經過前面若干步驟的安裝之後,HA自動切換高可用叢集已經完整的搭建起來了,當需要停止和再次啟動是什麼樣的順序呢?
4.1 啟動叢集
4.1.1 終止zkfc
在node1、node2上執行 hadoop-daemon.sh stop zkfc
4.1.2 終止datanode
在node1上執行 hadoop-daemons.sh stop datanode
4.1.3 終止namenode
在node1、node2上執行 hadoop-daemon.sh stop namenode
4.1.4 終止journalNode
在node1、node2上執行 hadoop-daemon.sh stop journalnode
4.1.5 終止zk叢集
./zkServer.sh stop
4.2 停止叢集
4.2.1 啟動zkServer叢集
在node1、node2、node3上,分別執行bin/zkServer.sh start
啟動後會有QuorumPeerMain的程序
4.2.2 啟動JournalNode叢集
在node1 node2 node3上分別執行sbin/hadoop-daemon.sh start journalnode
啟動後會有JournalNode程序
4.2.3 啟動NameNode
在node1 node2上分別執行hadoop-daemon.sh start namenode
啟動後會有NameNode程序
4.2.4 啟動DataNode
在node1或node2上執行hadoop-daemons.sh start datanode
啟動後node1 node2 node3 上會有DataNode程序
4.2.5 啟動zkfc
在node1 node2上執行hadoop-daemon.sh start zkfc
啟動後會有DFSZKFailoverController程序
上面的這些啟動和停止的操作看起來就讓人頭暈,其實我們可以藉助shell指令碼來方便的處理。敬請期待
相關推薦
Hadoop 2.7.2 HA 自動切換高可用叢集配置詳解
1、叢集節點規劃 NameNode node1 node2 DataNode node1 node2 node3 JournalNode node1 node2 node3 zookeeper node1 node2 node3 node1:172.16.73.143
Flume NG高可用叢集搭建詳解(基於flume-1.7.0)
1、Flume NG簡述 Flume NG是一個分散式,高可用,可靠的系統,它能將不同的海量資料收集,移動並存儲到一個數據儲存系統中。輕量,配置簡單,適用於各種日誌收集,並支援 Failover和負載均衡。並且它擁有非常豐富的元件。Flume NG採用的是三層架構:Agent層,Collecto
hadoop2.4以後版本的HA高可用模式配置詳解
1.修改Linux主機名 2.修改IP 3.修改主機名和IP的對映關係 4.關閉防火牆 5.ssh免登陸 6.安裝JDK,配置環境變數等 叢集規劃:主機名IP安裝的軟體執行的程序weekend01 192.168.1.201jdk、hadoopNameNode、DFSZKF
lvs+keepalived實現高可用群集配置詳解
https://www.linuxzen.com/lvskeepalivedshi-xian-gao-ke-yong-qun-ji-pei-zhi-xiang-jie.html lvs是一個開源的軟體,由畢業於國防科技大學的章文嵩博士於1998年5月創立(中國人的專案
Centos7之pacemaker高可用安裝配置詳解
申明: centos7的pacemaker與之前6使用的方法不一致,即使用centos6.x的方法在centos7.x上面配置pacemaker不能成功。 因此openstack 上面的centos7.1如果使用官方文件直接配置高可用HA也是無法成功的。(吐槽:opens
Hadoop(25)-高可用叢集配置,HDFS-HA和YARN-HA
一. HA概述 1. 所謂HA(High Available),即高可用(7*24小時不中斷服務)。 2. 實現高可用最關鍵的策略是消除單點故障。HA嚴格來說應該分成各個元件的HA機制:HDFS的HA和YARN的HA。 3. Hadoop2.0之前,在HDFS叢集中NameNode存在單點故障(SPOF
centos7.5搭建k8s1.11.2多master多node的高可用叢集
實驗環境說明 實驗架構圖 lab1: etcd master haproxy keepalived 11.11.11.111 lab2: etcd master haproxy keepalived 11.11.11.112 lab3: etcd master hapro
8節點(hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用叢集詳細配置
配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用叢集,同時安裝相關組建:JDK,MySQL,Hive,Flume 環境介紹 節點介紹 虛擬機器數量:8 臺 作業系統版本:CentOS-7-x8
Elasticsearch 2.2.0 叢集配置詳解
叢集分片配置 Elasticsearch master 節點的主要role就是決定每個shard分配到什麼節點,以及什麼時候在節點間遷移shard以reblance 叢集。有許多引數可以控制shard分配過程 叢集層面的分片分配引數分成3類:包括分片分配設定,分片平衡設
Spring Boot 2.x基礎教程:預設資料來源Hikari的配置詳解
通過上一節的學習,我們已經學會如何應用Spring中的JdbcTemplate來完成對MySQL的資料庫讀寫操作。接下來通過本篇文章,重點說說在訪問資料庫過程中的一個重要概念:資料來源(Data Source),以及Spring Boot中對資料來源的建立與配置。 基本概念 在開始說明Spring Boot中
基於zookeeper的Spark高可用叢集配置
首先我們這裡配置的三臺機器的叢集 名稱分別為hadoop、hadoop1、hadoop2 首先是安裝Zookeeper: (4)配置:進到conf目錄下,把zoo_sample.cfg修改成z
RHCS高可用叢集配置(luci+ricci+fence)
一 、關於RHCS 1. 什麼是RHCS RHCS是Red Hat Cluster Suite的縮寫,也就是紅帽子叢集套件,RHCS是一個能夠提供高可用性、高可靠性、負載均衡、儲存共享且經濟廉價的叢集工具集合,它將集群系統中三大叢集架構融合一體,可以給w
MHA 高可用集群詳解
fig 重新 use hostname pub ant pri 最優 功能 一、什麽是MHA 傳統的主從復制如果主庫宕機,其余從庫不會自動的代替主庫繼續工作,這樣就不能保證業務的高可用,而MHA就是一個mysql主從復制高可用的解決方案,當主庫宕機後,MHA能在1-30秒
Hadoop-2.7.3 HA高可用搭建
0.zookeeper叢集的搭 略,自行百度 1.hadoop2.7.3下載 http://hadoop.apache.org/releases.html 2.tar 解壓,mv到 /data,並將資料夾改為hadoop(也可以不改,
Hadoop-2.7.6雙namenode配置搭建(HA)高可用叢集部署教程
配置雙namenode的目的就是為了防錯,防止一個namenode掛掉資料丟失,具體原理本文不詳細講解,這裡只說明具體的安裝過程。Hadoop HA的搭建是基於Zookeeper的,關於Zookeeper的搭建可以檢視這裡 hadoop、zookeeper、hbase、spa
Hadoop HA高可用叢集搭建(2.7.2)
<configuration> <!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致 --> <property> <name>dfs.nameservices</name> <valu
hadoop 2.7.2 + zookeeper 高可用叢集部署
一.環境說明 虛擬機器:vmware 11 作業系統:Ubuntu 16.04 Hadoop版本:2.7.2 Zookeeper版本:3.4.9 二.節點部署說明 三.Hosts增加配置 sudo gedit /etc/hosts wxzz-pc、wxzz-pc0、
HBase HA + Hadoop HA 搭建 Hadoop 2.7.3 HA 搭建及遇到的一些問題
HBase 使用的是 1.2.9 的版本。 Hadoop HA 的搭建見我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些問題 以下目錄均為 HBase 解壓後的目錄。 1. 修改 conf/hbase-site.xml,內容如下 <configuration>
CentOS 7部署Hadoop叢集(HA高可用叢集)
目錄 測試環境 Hadoop 組織框架 HDFS架構 YARN架構 HA叢集部署規劃 自動故障轉移 關於叢集主機時間 Linux環境搭建 配置Java環境 安裝單機版Hadoop Zookeeper叢集安裝 配置環境變數 關閉防火牆 修
Hadoop部署(六)——CentOS 7部署Hadoop叢集(HA高可用叢集)
目錄 測試環境 關閉防火牆 測試環境 Linux系統版本:CentOS 7 64位 Hadoop 組織框架 Hadoop主要包括兩部分: 一部分是HDFS(Hadoop Distr