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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

自己从零安装hadoop-HA集群

發布時間:2025/3/11 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自己从零安装hadoop-HA集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總體步驟

?

1、分配機器,各安裝什么軟件

2、每個節點設置時間一致,設置開機自動校驗時間。

3、每個節點修改主機名。

4、每個節點配置hosts。

5、每個節點關閉防火墻。

6、上傳JDK,配置JDK

7、創建hadoop用戶。

8、給hadoop用戶配置root組

-------以下hadoop用戶的操作---------

9、開啟ssh免密登錄。

10、上傳Zookeeper到HA8,解壓

11、環境變量配置zookeeper

12、配置zoo.cfg文件。

13、創建zoo.cfg中配置的文件夾

14、配置myid文件

15、刪除zookeeper安裝目錄下無用的幫助文檔。

16、scp zookeeper的安裝目錄到8,9,10節點。

17、修改其他節點上的 myid文件

18、scp 環境變量到其他節點。

19、source 各個節點的環境變量。

20、啟動。

21、查看狀態。

22、停止Zookeeper

23、上傳hadoop 壓縮包,解壓

24、配置hadoop 環境變量

25、配置hadoop-HA參數

26、scp環境變量到1~7節點

27、source 環境變量1~7節點

28、scp hadoop.xxx文件夾到1~7節點

29、啟動

?

*將整個過程編程shell或Python命令

?

1、分配機器

10臺centos

?

機器名

安裝的軟件

進程

HA1

JDK,hadoop

namenode,zkfc

HA2

JDK,hadoop

namenode,zkfc

HA3

JDK,hadoop

resourcemanager

HA4

JDK,hadoop

resourcemanager

HA5

JDK,hadoop

datenode,nodemanager

HA6

JDK,hadoop

datenode,nodemanager

HA7

JDK,hadoop

datenode,nodemanager

HA8

JDK,zookeeper,hadoop

JournalNode、QuorumPeerMain,zkfc狀態值,yarn的ha狀態值

HA9

JDK,zookeeper,hadoop

JournalNode、QuorumPeerMain,zkfc狀態值,yarn的ha狀態值

HA10

JDK,zookeeper,hadoop

JournalNode、QuorumPeerMain,zkfc狀態值,yarn的ha狀態值

?

?

2、每個節點設置時間一致,設置開機自動校驗時間。

chkconfig --list

chkconfig --level 12345 ntpdate?on

service ntpdate start

?

?

3、每個節點修改主機名。

vi /etc/sysconfig/network

hostname HA123456...10

?

?

4、每個節點配置hosts。

vi /etc/hosts

?

192.168.18.136 HA1

192.168.18.137 HA2

192.168.18.138 HA3

192.168.18.139 HA4

192.168.18.140 HA5

192.168.18.141 HA6

192.168.18.142 HA7

192.168.18.143 HA8

192.168.18.144 HA9

192.168.18.145 HA10

?

//要編寫一個shell腳本,如果集群里有幾十臺怎么辦?

?

5、每個節點關閉防火墻。

chkconfig iptables off

service iptables stop

?

6、新建application文件夾,上傳JDK,配置JDK

每臺機器都需要

1、HA1上傳JDK壓縮包到根目錄

2、解壓到根目錄

tar -xzvf jdk-8u73-linux-x64.tar.gz

vi /etc/profile

export JAVA_HOME=/jdk1.8.0_73

export PATH=$PATH:$JAVA_HOME/bin

刪除一些無用的文件

拷貝到其他機器,在向所有窗口發送中輸入:

scp -r HA1:/jdk1.8.0_73/ $HOSTNAME:/

?

拷貝 /etc/profile 到其他機器

scp HA1:/etc/profile $HOSTNAME:/etc/profile

source /etc/profile

?

7、 創建hadoop賬號

adduser hadoop

passwd hadoop

123456

?

8、給hadoop用戶配置root組

vi /etc/sudoers

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

在這里添加

hadoop ALL=(ALL) ALL

?

?

------------以下hadoop用戶的操作-----------------

9、開啟ssh免密登錄。

ssh-keygen -t rsa

touch?authorized_keys

修改authorized_keys文件權 限為 600,命令:chmod 600 authorized_keys

如果不修改權限,通不過linux的權限認證,ssh會無效的

?

這個ssh免密登錄是針對hadoop用戶。root用戶沒有配置,不能免密登錄對方。ssh免密是用戶有效

?

10、上傳Zookeeper到HA8,解壓

上傳到home文件夾下

解壓到home文件夾下

tar -xzvf zookeeper-3.3.6.tar.gz

?

11、環境變量配置zookeeper

sudo vi /etc/profile

export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.3.6

export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

?

?

12、配置zoo.cfg文件。

cd conf/

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

dataDir=/home/hadoop/zookeeper-3.3.6/data

dataLogDir=/application/zookeeper-3.3.6/log

?

server.1=HA8:2888:3888

server.2=HA9:2888:3888

server.3=HA10:2888:3888

?

13、創建zoo.cfg中配置的文件夾

[hadoop@HA8 zookeeper-3.3.6]$ mkdir data

[hadoop@HA8 zookeeper-3.3.6]$ mkdir log

?

?

14、配置myid文件

cd data

vi myid

1

不能帶有空格或空行

?

15、刪除zookeeper安裝目錄下無用的幫助文檔。

rm -rf docs dist-maven/

rm -rf src.zip *.txt javafx-src.zip *.html

rm -rf *.xml *.txt src zookeeper-3.3.6.jar.*

?

?

16、scp zookeeper的安裝目錄到8,9,10節點。

[hadoop@HA8 ~]$ scp -r zookeeper-3.3.6 HA9:/home/hadoop

[hadoop@HA8 ~]$ scp -r zookeeper-3.3.6 HA10:/home/hadoop

?

?

17、修改其他節點上的 myid文件

cd data

vi myid?

2 ?另一臺 3

不能帶有空格或空行

?

18、scp 環境變量到其他節點。

sudo scp /etc/profile HA9:/etc/profile

sudo scp /etc/profile HA10:/etc/profile

?

?

19、source 各個節點的環境變量。

source /etc/profile

?

20、啟動。

?8,9,10三臺機器都要運行

zkServer.sh start

?

21、查看狀態。

8,9,10三臺都要運行

jsp

zkServer.sh status

?

22、停止Zookeeper

Zookeeper安裝啟動成功后,先stop。

8,9,10三臺都要運行

zkServer.sh stop

?

23、上傳hadoop 壓縮包,解壓

[hadoop@HA1 hadoop-2.7.3]$ tar -xzvf hadoop-2.7.3.tar.gz

?

24、配置hadoop 環境變量

sodu vi /etc/profile

?

export HADOOP_HOME=/home/hadoop/hadoop-2.7.3

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

?

除了配置HA1,還要配置 HA8,9,10

?

25、配置hadoop-HA參數

25.1修改hadoop-env.sh

vi hadoop-env.sh

#export JAVA_HOME=${JAVA_HOME}

export JAVA_HOME=/jdk1.8.0_73

?

25.2修改core-site.xml

<configuration>

<!-- 指定hdfs的nameservice為nbdo -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://nbdo/</value>

</property>

<!-- 指定hadoop臨時目錄 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/app/hdpdata/</value>

</property>

?

<!-- 指定zookeeper地址 -->

<property>

<name>ha.zookeeper.quorum</name>

<value>HA8:2181,HA9:2181,HA10:2181</value>

</property>

</configuration>

?

25.3修改hdfs-site.xml

<configuration>

<!--指定hdfs的nameservice為nbdo,需要和core-site.xml中的保持一致 -->

<property>

<name>dfs.nameservices</name>

<value>nbdo</value>

</property>

<!-- nbdo下面有兩個NameNode,分別是nn1,nn2 -->

<property>

<name>dfs.ha.namenodes.nbdo</name>

<value>nn1,nn2</value>

</property>

<!-- nn1的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.nbdo.nn1</name>

<value>HA1:9000</value>

</property>

<!-- nn1的http通信地址 -->

<property>

<name>dfs.namenode.http-address.nbdo.nn1</name>

<value>HA1:50070</value>

</property>

<!-- nn2的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.nbdo.nn2</name>

<value>HA2:9000</value>

</property>

<!-- nn2的http通信地址 -->

<property>

<name>dfs.namenode.http-address.nbdo.nn2</name>

<value>HA2:50070</value>

</property>

<!-- 指定NameNode的edits元數據在JournalNode上的存放位置 -->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://HA8:8485;HA9:8485;HA10:8485/nbdo</value>

</property>

<!-- 指定JournalNode在本地磁盤存放數據的位置 -->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/home/hadoop/journaldata</value>

</property>

<!-- 開啟NameNode失敗自動切換 -->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!-- 配置失敗自動切換實現方式 -->

<property>

<name>dfs.client.failover.proxy.provider.nbdo</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!-- 配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行,防止腦裂問題-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>

sshfence

shell(/bin/true)

</value>

</property>

<!-- 使用sshfence隔離機制時需要ssh免登陸 -->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/home/hadoop/.ssh/id_rsa</value>

</property>

<!-- 配置sshfence隔離機制超時時間 -->

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

</configuration>

?

?

25.4修改mapred-site.xml

[hadoop@HA1 hadoop]$ cp mapred-site.xml.template mapred-site.xml

[hadoop@HA1 hadoop]$ vi mapred-site.xml

?

<configuration>

<!-- 指定mr框架為yarn方式 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

?

25.5修改yarn-site.xml

<configuration>

<!-- 開啟RM高可用 -->

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<!-- 指定RM的cluster id -->

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>yrc</value>

</property>

<!-- 指定RM的名字 -->

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<!-- 分別指定RM的地址 -->

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>HA3</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>HA4</value>

</property>

<!-- 指定zk集群地址 -->

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>HA8:2181,HA9:2181,HA10:2181</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

?

25.5修改slaves

(slaves是指定子節點的位置,因為要在HA1和HA2上啟動HDFS、在HA3和HA4啟動yarn,所以HA1和HA2上的slaves文件指定的是datanode的位置,HA3和HA4上的slaves文件指定的是nodemanager的位置)

HA5

HA6

HA7

?

26、scp環境變量到1~7節點

sudo scp HA1:/etc/profile $HOSTNAME:/etc/profile

?

?

27、source 環境變量1~7節點

source /etc/profile

?

28、scp hadoop.xxx文件夾其他9臺機器

刪除share文件下的doc文件夾

rm -rf doc

scp -r HA1:/home/hadoop/hadoop-2.7.3 $HOSTNAME:/home/hadoop/

?

?

?

29、啟動

順序嚴格按照

29.1啟動Zookeeper

HA8,9,10

zkServer.sh start

?

29.2啟動journalnode

HA8,9,10

hadoop-daemon.sh start journalnode

?

29.3格式化HDFS

#在HA1上執行命令:

hdfs namenode -format

#格式化后會在根據core-site.xml中的hadoop.tmp.dir配置生成個文件,這里我配置的是/home/hadoop/app/hdpdata/,然后將/home/hadoop/app/hdpdata/拷貝到HA2的/home/hadoop/app/hdpdata/。

scp -r

##也可以這樣,建議HA2上運行:hdfs namenode -bootstrapStandby

?

29.4格式化ZKFC(在HA1上執行一次即可)

hdfs zkfc -formatZK

?

29.5啟動HDFS(在HA1上執行)

sbin/start-dfs.sh

?

?

29.6啟動YARN

(#####注意#####:是在HA3上執行start-yarn.sh,把namenode和resourcemanager分開是因為性能問題,因為他們都要占用大量資源,所以把他們分開了,他們分開了就要分別在不同的機器上啟動)

HA3上:sbin/start-yarn.sh

HA4上:yarn-daemon.sh start resourcemanager

?

yarn-ha,還需要手動啟動(HA4上:yarn-daemon.sh start resourcemanager)第二個resourcemanager,

因為start-yarn.sh不具備啟動第二個resourcemanager的功能

?

?

[hadoop@HA1 .ssh]$ jps

2949 DFSZKFailoverController

3064 Jps

2622 NameNode

[hadoop@HA1 .ssh]$

?

[hadoop@HA2 .ssh]$ jps

2040 NameNode

2154 DFSZKFailoverController

2287 Jps

?

[hadoop@HA3 ~]$ jps

2593 ResourceManager

2859 Jps

?

[hadoop@HA4 ~]$ jps

2320 ResourceManager

2376 Jps

[hadoop@HA4 ~]$

?

[hadoop@HA5 ~]$ jps

2331 Jps

2220 NodeManager

2015 DataNode

[hadoop@HA5 ~]$

?

[hadoop@HA6 ~]$ jps

2317 Jps

2206 NodeManager

2015 DataNode

[hadoop@HA6 ~]$

?

[hadoop@HA7 ~]$ jps

2419 NodeManager

2551 Jps

2008 DataNode

[hadoop@HA7 ~]$

?

[hadoop@HA8 ~]$ jps

2187 Jps

1979 QuorumPeerMain

2031 JournalNode

[hadoop@HA8 ~]$

?

[hadoop@HA9 ~]$ jps

2001 JournalNode

2157 Jps

1951 QuorumPeerMain

[hadoop@HA9 ~]$

?

[hadoop@HA10 ~]$ jps

2178 Jps

2019 JournalNode

1961 QuorumPeerMain

[hadoop@HA10 ~]$

?

http://192.168.18.136:50070/(HDFS管理界面)

?

?

http://192.168.18.138:8088/ (MR管理界面)

?

?

總結

以上是生活随笔為你收集整理的自己从零安装hadoop-HA集群的全部內容,希望文章能夠幫你解決所遇到的問題。

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