1-1 java(最好是1.8及其以上,but1.8以上只有open jdk了)
1-2 ssh软件,免密登录需要具体怎么配置网络上搜吧
直接在官网上搜就行了【https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html 这里就有】,主要就是生成公钥和私钥,并将公钥分发给要免密登录的服务器,登录时,会拿着自己的私钥和对方的公钥进行匹配,匹配上就可以登录,等于是说对方有一把指纹锁,你把公钥给对方等于是在指纹锁中录入了自身的信息,等你拿着私钥登录对方时,等于在锁上录入指纹信息,如果匹配上,则表示可以开锁【即可以登录对方服务器】
为啥?一般情况下我们在不是Java时都会在/etc/profile中配置JAVA_HOME,为什么还要再配置一次?主要是因为启动hdfs的时候,
使用的是ssh远程登录到别的服务器运行命令,但是ssh远程后无法取到/etc/profile中的环境变量,所以才需要在hadoop.env中进行配置,表示要同时告诉操作系统和hadoop本机的JAVA_HOME在哪
1)、NameNode 主要是存储元数据2)、DataNode 存储文件的block块3)、secondaryNameNode周期合并fsimage(元数据全量快照)和edit_log(增量操作日志)生成新的fsimage返回给NameNode【减轻NameNode的压力 4-2 配置/etc/hadoop下的core-site.xml
4-3 配置hdfs-site.xmlfs.defaultFS hdfs://hdp001:9000
4-4 配置slaves文件【dataNode的地址】dfs.replication 1 dfs.namenode.name.dir /var/hadoop/hdfs/local/dfs/name dfs.datanode.data.dir /var/hadoop/hdfs/local/dfs/data dfs.namenode.secondary.http-address hdp001:50090 dfs.namenode.checkpoint.dir /var/hadoop/hdfs/local/dfs/namesecondary
hdp0014-5 在/sbin下使用start-dfs.sh启动hdfs【web:http://hdp001:50070】 5、分布式部署【一共四台虚拟机:hdp001,hdp002,hdp003,hdp004】 5-1 角色规划
| NN | SNN | DN | |
|---|---|---|---|
| hdp001 | * | ||
| hdp002 | * | * | |
| hdp003 | * | ||
| hdp004 | * |
**不需要改配置,保持和之前一样即可
5-3 配置hdfs-site.xml5-4 配置slaves(HA模式的slaves文件和这个一样)dfs.replication 2 dfs.namenode.name.dir /var/hadoop/hdfs/full/dfs/name dfs.datanode.data.dir /var/hadoop/hdfs/full/dfs/data dfs.namenode.secondary.http-address hdp002:50090 dfs.namenode.checkpoint.dir /var/hadoop/hdfs/full/dfs/namesecondary
hdp002 hdp003 hdp0046、分布式部署 HA模式【一共四台虚拟机:hdp001,hdp002,hdp003,hdp004】 6-1 角色规划
| NN | JN | DN | ZKFC | ZK | |
|---|---|---|---|---|---|
| hdp001 | * | * | * | * | |
| hdp002 | * | * | * | * | * |
| hdp003 | * | * | * | ||
| hdp004 | * | * |
6-3 配置hdfs-site.xmlfs.defaultFS hdfs://mycluster ha.zookeeper.quorum hdp002:2181,hdp003:2181,hdp004:2181
dfs.nameservices
mycluster
dfs.ha.namenodes.mycluster
hdp001,hdp002
dfs.namenode.rpc-address.mycluster.hdp001
hdp001:8020
dfs.namenode.rpc-address.mycluster.hdp002
hdp002:8020
dfs.namenode.http-address.mycluster.hdp001
hdp001:50070
dfs.namenode.http-address.mycluster.hdp002
hdp002:50070
dfs.namenode.shared.edits.dir
qjournal://hdp001:8485;hdp002:8485;hdp003:8485/mycluster
dfs.journalnode.edits.dir
/var/hadoop/hdfs/ha/dfs/jn
dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/home/hdp01/.ssh/id_rsa
dfs.ha.automatic-failover.enabled
true
6-4 实施流程
1)、 搭建zk2)、 启动JN hadoop-daemon.sh start journalnode3)、 选择一个NN进行格式化,hdfs namenode -format4)、 启动格式化的NN,hadoop-daemon.sh start namenode5)、 在另一台NN运行 hdfs namenode -bootstrapStandby6)、 格式化zk:hdfs zkfc -formatZK7)、 start-dfs.sh 6-5 可以自己测试一下HA模式下的故障转移
杀死hdp001的zkfc进程或者nn进程,其会将hdp002自动升级为主【kill -9 psid】


![Hadoop学习笔记[2]-HDFS安装部署流程 Hadoop学习笔记[2]-HDFS安装部署流程](http://www.mshxw.com/aiimages/31/725159.png)
