日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

greenplum配置高可用_高可用hadoop集群配置就收藏这一篇,动手搭建Hadoop(5)

發布時間:2024/9/27 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 greenplum配置高可用_高可用hadoop集群配置就收藏这一篇,动手搭建Hadoop(5) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

01 ssh免密安裝

02 jdk安裝

03 hadoop偽分布式安裝

04 hadoop全分布式

完成了前面四步,現在做hadoop的高可用。其實和之前的lvs的高可用差不多的。如果我們有兩個namenode節點,分別是node01和node02。假設node01是主節點,node02是從節點,當node01掛掉了以后,node02自動成為主節點。這里通過zookeeper的方式來實現,node01,node02都會注冊到zookeeper當中,由zookeeper來實現高可用。文章有點長先收藏再閱讀,開始。

準備

node01(192.168.146.101):namenode01 ,ZKFC,JNN(journalnode)

node02(192.168.146.102):namenode02,datanode,zookeeper,ZKFC,JNN

node03(192.168.146.103): datanode, zookeeper, JNN

node04(192.168.146.104): datanode,zookeeper,

hadoop配置修改

修改hadoop_env.sh 文件

在原來的基礎上指定ZKFC 和journalnode 兩個進程的角色,這里注意我們之前用到的從節點sencondarynamenode現在用不著了,可以remark起來。

cd /usr/hadoop-3.1.2/etc/hadoop

export JAVA_HOME=/usr/java/jdk-12.0.1

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

#export HDFS_SECONDARYNAMENODE_USER=root

export HDFS_ZKFC_USER=root

export HDFS_JOURNALNODE_USER=root

修改core-site.xml 文件

只用修改臨時文件的目錄即可,原來指向full現在建立一個新目錄指向ha

vi core-site.xml

fs.defaultFS

hdfs://node01:9820

hadoop.tmp.dir

/var/hadoop/ha

修改hdfs-site.xml 文件

由于原先所有的datanode都需要和一個namenode做關聯,現在做高可用需要讓datanode和多個namenode做關聯。因此,需要給namenode起一個logic name。同時需要配置兩個namenode服務器(node01,node02)對應的rpc和httpaddress的信息。兩個namenode進行同步的配置,這里需要指定journalnode服務器的地址。以及故障轉移的代理類。

vi hdfs-site.xml

dfs.replication

3

#邏輯namenode 名字

dfs.nameservices

mycluster

#配置兩個namenode服務器

dfs.ha.namenodes.mycluster

nn1,nn2

#配置rpc的調用

dfs.namenode.rpc-address.mycluster.nn1

node01:8020

dfs.namenode.rpc-address.mycluster.nn2

node02:8020

#配置http address

dfs.namenode.http-address.mycluster.nn1

node01:9870

dfs.namenode.http-address.mycluster.nn2

node02:9870

#配置journalnode節點

dfs.namenode.shared.edits.dir

qjournal://node01:8485;node02:8485;node03:8485/mycluster

#配置故障轉移的調用

dfs.client.failover.proxy.provider.mycluster

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

#故障隔離 當一個從節點即將要成為主節點的時候,會通知原來的主節點使之成為從節點。

dfs.ha.fencing.methods

sshfence

#故障隔離需要的私鑰的地址

dfs.ha.fencing.ssh.private-key-files

/root/.ssh/id_rsa

#配置journalnode的存儲地址

dfs.journalnode.edits.dir

/var/hadoop/ha/journalnode

dfs.ha.automatic-failover.enabled

true

再回到core-site.xml文件的配置

原來配置的是一個固定的主節點的名字,現在需要使用邏輯的namenode的服務名稱,也就是我們在上面hdfs-site.xml中定義的 mycluster 這個名字。以及對zookeeper集群的配置。

fs.defaultFS

hdfs://mycluster

ha.zookeeper.quorum

node02:2181,node03:2181,node04:2181

分發core-site.xml hdfs-site.xml 和 hadoop-env.sh 三個文件到其他三個服務器(node02,node03,node04)

scp core-site.xml hdfs-site.xml hadoop-env.sh node02:`pwd`

scp core-site.xml hdfs-site.xml hadoop-env.sh node03:`pwd`

scp core-site.xml hdfs-site.xml hadoop-env.sh node04:`pwd`

安裝配置zookeeper

由于我們之前定義的zookeeper的安裝是在node02,node03,node04三個服務器。所以copy下載zookeeper的安裝包。對其進行解壓。這里我把zk放到/usr 這個目錄下面了。

tar xf zookeeper-3.4.6.tar.gz -C /usr/

配置環境變量

export ZOOKEEPER_HOME=/usr/zookeeper-3.4.6

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin

再將這個配置分發到其余的兩個服務器node03,node04

scp /etc/profile node03:/etc/profile

scp /etc/profile node04:/etc/profile

source /etc/profile

修改zoo.cfg,指定文件存放地址;并且告之參與zk集群的端口的具體信息

cd /usr/zookeeper-3.4.6/conf

mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

dataDir=/var/zookeeper

server.1=node02:2888:3888

server.2=node03:2888:3888

server.3=node04:2888:3888

分發zk到node02,node03

scp -r zookeeper-3.4.6/ node03:`pwd`

scp -r zookeeper-3.4.6/ node04:`pwd`

在三個節點創建zk的存儲文件

mkdir /var/zookeeper

指定每個節點對應的服務器的名稱根據zoo.cfg中的定義

server.1=node02

server.2=node03

server.3=node04

所以在node02中執行

echo 1 > /var/zookeeper/myid

所以在node03中執行

echo 2 > /var/zookeeper/myid

所以在node04中執行

echo 3 > /var/zookeeper/myid

啟動zookeeper

分別在node02,node03,node04上運行zookeeper,并且查看啟動后的狀態。

zkServer.sh start

zkServer.sh status

可以看到node04作為leader,node02和node03都是follower。

啟動journalnode 節點

我配置了三個journalnode節點,分別是node01,node02,node03.所以在這三個節點分別執行以下指令。

hdfs --daemon start journalnode

啟動以后會在對應的目錄下面生成存儲edits持久化文件的目錄。這個目錄我配置到了/var/hadoop/ha,在前面的cord-site.xml 中有說明。

針對主節點,node01,node02 進行namenode的格式化。這里我們選擇node01進行格式化,然后啟動namenode做為主節點。再到node02上面去同步node01上面的數據,這樣node01是active node02是standby,node02上面同步了node01的namenode的數據,一旦node01無法使用了,node02會變成active狀態接替node01的工作。

node01操作

hdfs namenode -format

hdfs --daemon start namenode

node02操作

hdfs namenode -bootstrapStandby

這樣node02就把node01的namenode數據同步過來了。

可以到 /var/hadoop/ha/dfs/name 下面的VERSION文件中檢查兩個節點的clusterID是否相同。

初始化zookeeper

zookeeper需要注冊兩個主從節點,node01,node02.注冊以后當一個節點服務down機或者和zookeeper失去聯系了,那么另外一個節點就會接替主節點的位置成為active狀態。

ps:可以通過 zkCli.sh 命令打開zookeeper客戶端查看zookeeper情況。

node01上運行

hdfs zkfc -formatZK

啟動hadoop集群

到node01節點上啟動集群

start-dfs.sh

運行完命令以后打開zookeeper客戶端,查看

zkCli.sh

ls /hadoop-ha/mycluster

我們看到在myclusert這個集群下面多了兩個節點,這兩個節點就是zookeeper注冊的主從節點,node01,node02。可以通過以下命令查看兩個節點的狀態。

get /hadoop-ha/mycluster/ActiveBreadCrumb

get /hadoop-ha/mycluster/ActiveStandbyElectorLock

測試高可用效果

去網站看看結果。在瀏覽器輸入192.168.146.101:9870 和 192.168.146.102:9870

node01是active,node02是standby

然后把node01的namenode關掉。

到node01節點上運行

hdfs --daemon stop namenode

可以看到node01無法訪問了,這個時候node02成為active狀態,依舊可以提供訪問。

到此hadoop高可用的配置和啟動過程就完畢了。

總結

以上是生活随笔為你收集整理的greenplum配置高可用_高可用hadoop集群配置就收藏这一篇,动手搭建Hadoop(5)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。