2、Hadoop.hdfs集群

在第一篇的基础上,要解决的问题
1、NN单点故障
2、内存压力过大

解决方案:
1、多个NN将数据分片,NN管理不同路径分支的数据

 

 

 

1 先启动JN                
2 hadoop-daemon.sh  start journalnode
3 选择一个NN做格式化,  这样JN中的数据也可以格式化    <只有第一次搭建做,在任意一台namenode>
4 hdfs namenode -format
5 启动这个格式化的NN,以备另外一台同步 
6 hadoop-daemon.sh start namenode
7 在另外一台机器中 hdfs namenode -bootstrapStandby    同步数据
8 格式化ZK   hdfs zkfc -format   (为每个集群启动一个单独的znode)
9 start-dfs.sh

 

1 ZKFC 自己登陆自己,登陆其他机器
2 
3 1)启动start-dfs.sh脚本的机器需要将公钥分发给其他机器,以便远程登录,启动程序
4 2)在HA模式下,每一个NN身边都有一个ZKFC,会用免密方式控制自己和其他NN
 Zookeeper
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1.tar.gz

# 修改 conf/zoo_sample.cfg
  dataDir=/var/bigdata/hadoop/zk
  ....
  server.1=node02:2888:3888
  server.2=node03:2888:3888
  server.3=node04:2888:3888
# 配置在每一台都需要配置 权重
  mkdir /var/bigdata/hadoop/zk
  echo 1 > /var/bigdata/hadoop/zk/myid
export ZOOKEEPER_HOME=/opt/bigdata/zookeeper-3.6.1
export PATH=$PATH:$ZOOKEEPER_HOME/bin


# 所有ZK节点启动
  zkServer.sh start
1、cp zoo_example.cfg  zoo.cfg
2、Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMainv

更改版本
http:
//apache.fayea.com/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz

 

 

 
HDFS集成ZK
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 3 <configuration>
 4     <property>
 5         <name>fs.defaultFS</name>
 6         <value>hdfs://mycluster</value>
 7     </property>
 8     <property>
 9         <name>ha.zookeeper.quorum</name>
10         <value>node02:2181,node03:2181,node04:2181</value>
11     </property>
12 </configuration>
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 3 <configuration>
 4     <property>
 5         <name>dfs.replication</name>
 6         <value>2</value>
 7     </property>
 8     <property>
 9         <name>dfs.namenode.name.dir</name>
10         <value>/var/bigdata/hadoop/ha/dfs/name</value>
11     </property>
12     <property>
13         <name>dfs.datanode.data.dir</name>
14         <value>/var/bigdata/hadoop/ha/dfs/data</value>
15     </property>
16 
17     <property>
18         <name>dfs.nameservices</name>
19         <value>mycluster</value>
20     </property>
21     <property>
22         <name>dfs.ha.namenodes.mycluster</name>
23         <value>nn1,nn2</value>
24     </property>
25     <!-- 逻辑到物理 -->
26     <property>
27         <name>dfs.namenode.rpc-address.mycluster.nn1</name>
28         <value>node01:8020</value>
29     </property>
30     <property>
31         <name>dfs.namenode.rpc-address.mycluster.nn2</name>
32         <value>node02:8020</value>
33     </property>
34     <property>
35         <name>dfs.namenode.http-address.mycluster.nn1</name>
36         <value>node01:50070</value>
37     </property>
38     <property>
39         <name>dfs.namenode.http-address.mycluster.nn2</name>
40         <value>node02:50070</value>
41     </property>
42 
43     <!-- journalnode 配置-->
44     <property>
45         <name>dfs.namenode.shared.edits.dir</name>
46         <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
47     </property>
48     <property>
49         <name>dfs.journalnode.edits.dir</name>
50         <value>/var/bigdata/hadoop/ha/dfs/jn</value>
51     </property>
52 
53     <!--免密的配置 -->
54     <property>
55         <name>dfs.client.failover.proxy.provider.mycluster</name>
56         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
57     </property>
58     <property>
59         <name>dfs.ha.fencing.methods</name>
60         <value>sshfence</value>
61     </property>
62     <property>
63         <name>dfs.ha.fencing.ssh.private-key-files</name>
64         <value>/home/god/.ssh/id_dsa</value>
65     </property>
66 
67     <!-- 开启HA -->
68     <property>
69         <name>dfs.ha.automatic-failover.enabled</name>
70         <value>true</value>
71     </property>
72 
73 </configuration>
1、先启动所有的journalnode
  hadoop-daemon.sh start journalnode
--------hdfs-------------
2、随便选一台NN
  hdfs namenode -format
3、启动第一个NN
  hadoop-daemon.sh start namenode
4、其他NN同步
  hdfs namenode -bootstrapStandby
-------zkfc--------------
5、在所有ZK节点,格式化;(创建集群对应目录树)
  hdfs zkfc -format
--------start-------------
6、在其中一个NN
  start-dfs.sh  启动nn,dn,zkfc(无法控制)

 

 

权限

 

useradd god
passwd god
chown -R god:god /var/bigdata/hadoop-3.6.1/

 

 

 

 

posted @ 2020-06-25 20:13  慕沁  阅读(141)  评论(0)    收藏  举报