1 节点简介
| 主机名 | ip地址 |
|---|---|
| hdp-nn | 192.168.64.10 |
| hdp-nn-standy | 192.168.64.7 |
| hdp-01 | 192.168.64.11 |
| hdp-02 | 192.168.64.12 |
| hdp-03 | 192.168.64.13 |
2 集群规划
| 主机名 | 安装软件 | 节点分配 |
|---|---|---|
| hdp-nn | hadoop | namenode,ZKFC,Resourcemanager |
| hdp-nn-standy | hadoop | namenode,ZKFC,Resourcemanager |
| hdp-01 | hadoop ,zookeeper | natanode,nodemanager,zookeeper,Journalnode |
| hdp-02 | hadoop ,zookeeper | natanode,nodemanager,zookeeper,Journalnode |
| hdp-03 | hadoop ,zookeeper | natanode,nodemanager,zookeeper,Journalnode |
3 core-site.xml配置
<configuration>
<!-- 配置高可用后,因为有两台namenode,不能在指定某一台,起个虚拟的名称 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop/</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/data/tmp</value>
</property>
<!-- 指定zookeeper -->
<property>
<name>ha.zookeeper.quorum</name>
<value>hdp-01:2181,hdp-02:2181,hdp-03:2181</value>
</property>
</configuration>
4 hdfs-site.xml 配置
<configuration>
<!--指定hdfs的nameservice为bi,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>hadoop</value>
</property>
<!-- hadoop下面有两个NameNode,分别是hdp-nn,hdp-nn-standy -->
<property>
<name>dfs.ha.namenodes.hadoop</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.hadoop.nn1</name>
<value>hdp-nn:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.hadoop.nn1</name>
<value>hdp-nn:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.hadoop.nn2</name>
<value>hdp-nn-standy:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.hadoop.nn2</name>
<value>hdp-nn-standy:50070</value>
</property>
<!-- 指定NameNode的edits元数据在机器本地磁盘的存放位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/bigdata/hadoop-2.7.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop/bigdata/hadoop-2.7.5/tmp/dfs/data</value>
</property>
<!-- 指定NameNode的共享edits元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hdp-01:8485;hdp-02:8485;hdp-03:8485/hadoop</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/root/hdpdata/journaldata</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.hadoop</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>/root/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
5 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6 yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 开启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>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hdp-nn</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hdp-nn-standy</value>
</property>
<!-- 指定zk集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hdp-01:2181,hdp-02:2181,hdp-03:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
7 slaves配置
hdp-01
hdp-02
hdp-03
hdp-nn
hdp-nn-standy
8 设置hdp-nn与其余四个节点免密登陆,设置hdp-nn-standy与其余四个节点免密登陆
详情请看:Hadoop分布式部署,部署一个namenode和三个datanode
中有免密登陆设置
9 启动zookeeper集群(分别在hdp-01、hdp-02、hdp-03上启动zk)
zookeeper集群搭建请看:zookeeper集群的搭建
10 手动启动journalnode(分别在在hdp-01、hdp-02、hdp-03上执行)
sbin/hadoop-daemon.sh start journalnode
注意我刚开始启动此处失败,是因为我在
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/data/tmp</value>
</property>
此处配置了root下创建文件,而我是用hadoop用户登陆的,需要给hadoop操作root文件夹的权限。赋予权限之后在启动journalnode
11 格式化namenode
#在hdp-nn上执行命令:
hdfs namenode -format
格式化完毕后将home/hadoop/bigdata/hadoop-2.7.5/tmp/dfs文件夹拷贝到hdp-nn-standy节点此处下,保证两个节点一致
12 格式化ZKFC(在hdp-nn上执行即可)
hdfs zkfc -formatZK
13 在hdp-nn中启动start-dfs.sh 在hdp-nn-standy上启动start-yarn.sh
集群搭建完毕
2234



被折叠的 条评论
为什么被折叠?



