1. 程式人生 > >Hadoop 2.7.2 HA 自動切換高可用叢集配置詳解

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