规划
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/
欢迎扫码进群,期待更优秀的你!