HDFS即可作为Hadoop集群的一部分,也可以作为一个独立的分布式文件系统。上一小节实现了Hadoop安装,伪分布式搭建HDFS,这一小节使用完全分布式搭建Hadoop-HDFS集群。
1. 环境准备
1.1 JDK安装并配置环境变量
echo $JAVA_HOME #查看JDK环境变量
1.2 准备至少3台Linux虚拟机、
通过VMware的克隆虚拟机功能;配置好网络JDK 时间 hosts,保证节点间能互ping通,这里配置了host:node01、node02、node03。
1.3 时间同步
查看之前小节。
1.4 ssh免秘钥登录
查看之前小节。
2. 完全分布式搭建
2.1 下载解压缩Hadoop
tar -zxvf hadoop-2.6.5.tar.gz
2.2 配置etc/hadoop/hadoop-env.sh
vim hadoop-2.6.5/etc/hadoop/hadoop-env.sh
添加JAVA/_HOME:
export JAVA_HOME=${JAVA_HOME}
JAVA_HOME=/usr/java/jdk1.8.0_191-amd64 #这里为JDK根目录
2.3 配置core-site.xml
vim hadoop-2.6.5/etc/hadoop/core-site.xml
fs.defaultFS 默认的服务端口NameNode URI ,hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.6.1</value>
</property>
</configuration>
2.4 配置hdfs-site.xml
dfs.datanode.https.address表示https服务的端口;
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>node02:50091</value>
</property>
</configuration>
2.5 配置Masters
master 表示可以做主备的SNN,在/home/hadoop-2.6.5/etc/hadoop/新建masters文件 写上SNN节点名:
vim master
写入:
node02
2.6 配置Slaves
在/home/hadoop-2.6.5/etc/hadoop/slaves文件中填写DN 节点名:node01 node02 node03 (注意:每行写一个 写成3行):
vim slaves
写入:
node01
node02
node03
2.7 最后将配置好的Hadoop通过SCP命令发送都其他节点
scp -r hadoop-2.6.5 node02:`pwd`
scp -r hadoop-2.6.5 node03:`pwd`
2.8 配置Hadoop的环境变量
vim ~/.bash_profile
写入:
export HADOOP_HOME=/home/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
重新加载环境变量:
source ~/.bash_profile
2.9 对NN进行格式化
回到根目录(node01,这里指定了node01位namenode)对NN进行格式化:
hdfs namenode -format
2.10 启动HDFS
start-dfs.sh
2.11 浏览器查阅
关闭防火墙:service iptables stop
;
在浏览器输入 node1:50070 出现以下界面成功: