版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_41922058/article/details/81740032
規劃
Ssh信任配置方式Ssh信任配置方式
Ssh-keygen -t rsa -P “12345678”
Ssh-copy-id
Copy zookeeper以及hadoop文件
創建zookeeper/datas/myid文件
啓動zookeeper 查看狀態
zkServer.sh status //leader follower
配置hadoop
Core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<!--配置ns = nameservice,一個nameservice下,最多可以有兩個namenode-->
<value>hdfs://ns</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop85:2181,hadoop86:2181,hadoop87:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
</property>
</configuration>
Hdfs-site.xml
<configuration>
<!--配置nameservice與hdfs://ns保持相同,可以配置多個,ns,ns2-->
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<!--配置ns1下同有幾個namenode,一個nameservice下最多只能有兩個namenode-->
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<!--配置每一個namenode的信息之rpc-->
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>hadoop81:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>hadoop82:8020</value>
</property>
<!--配置每一個namenode之http.可以省略-->
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>hadoop81:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>hadoop82:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/app/hadoop/dfs/name,/app/hadoop/dfs2/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/app/hadoop/dfs/datas,/app/hadoop/dfs2/datas</value>
</property>
<!--配置journalnode保存edits的目錄,最後的ns1不一定要與nameservice的名稱一樣
因爲,它會在${dfs.journalnode.edits.dir}/ns目錄下-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop85:8485;hadoop86:8485;hadoop87:8485/ns</value>
</property>
<!--指定journal日誌保存的目錄,這個目錄只能是一個,不能是多個只能是一個目錄-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop/journal</value>
</property>
<!--有了上面的目錄,還需要爲每一個namenode配置日誌目錄嗎,以下兩個目錄下保存的數據完全一樣-->
<property>
<name>dfs.namenode.edits.dir</name>
<value>/app/hadoop/dfs/edits,/app/hadoop/dfs2/edits</value>
</property>
<!--開啓namenode失敗自動切換-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置自動切換的方式-->
<property>
<name>dfs.client.failover.proxy.provider.ns1</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>
<!--配置切換時免密碼登錄的key-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/jingxi/.ssh/id_rsa</value>
</property>
</configuration>
Yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop81</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/app/hadoop/nm-local-dir</value>
</property>
<!--開啓高可靠-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--配置一個集羣的名稱,雖然不用,但還是要配置一下-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>hadoop</value>
</property>
<!--配置resourcemanager兩個-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--指定第一個resourcemanager的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop83</value>
</property>
<!--配置第二個resourcemanager的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop84</value>
</property>
<!--配置zookeeper的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop85:2181,hadoop86:2181,hadoop87:2181</value>
</property>
<!-- 配置Mapper數據本地溢出緩存目錄-->
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/app/hadoop/nm-local-dirs/1,/app/hadoop/nm-local-dirs/2</value>
</property>
</configuration>
Slaves
hadoop81
hadoop82
hadoop83
hadoop84
hadoop85
hadoop86
hadoop87
啓動journalnode
在85 86 87 機器上啓動
$ hadoop-daemon.sh start journalnode
格式化namenode
$ hdfs namenode -format
共享edits目錄
$ scp -r /app/hadoop/ hadoop82:/app/
格式化zkfc
Hdfs zkfc -formatZK
啓動hdfs
Start-dfs.sh
啓動yarn
到83 84 機器啓動yarn
Start-yarn.sh
使用jps命令查看各節點啓動是否與規劃一致
Jps
使用http管理
http://hadoop83:8088/
http://hadoop82:50070/