Namenode:文件系统的管家,监管文件系统的目录树结构,由它维护文件系统的元数据信息(文件信息,blockLocation)
Datanode:存放真实的数据(block块数据)
client:客户端
分布式集群的搭建与伪分布式略有不同
搭建时的不同点:需要修改的四个xml文件中有两个需要添加额外内容
部署前的必要设置(与伪分布相同的部分,上节有详细介绍)
- ip的设置
- 主机名的设置(永久设置)
- hosts文件的修改(ip和主机名的映射关系)
- 关闭防火墙(永久生效)
- ssh免密码登录(ssh-copy-id -i hadoop02 向远程主机拷贝公钥)
- JDK的安装(jdk1.8)
7.安装Hadoop(与伪分布有区别)
(1)上传并解压Hadoop安装包
(2)进入配置文件目录
(3)修改配置文件
# 修改 core-site.xml 文件,注意 fs.defaultFS 属性中的主机名需要和配置的主机名相同
[root@hadoop01 hadoop]# vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value> </property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
# 修改 mapred-site.xml,设置 mapreduce 使用的资源调度框架
[root@hadoop01 hadoop]# vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
# 不同(多一个属性,副本数小于<=节点数):修改 hdfs-site.xml 文件,把 hdfs 中文件副本的数量设置为 2
[root@hadoop01 hadoop]# vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value>
</property>
</configuration>
# 不同(多一个属性):修改 yarn-site.xml,设置 yarn 上支持运行的服务和环境变量白名单
[root@hadoop01 hadoop]# vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL
ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
</configuration>
添加HDFS和YARN的用户信息
使用vi 编辑器修改/hadoop-2.7.5/sbin下的四个脚本文件
#start-dfs.sh,stop-dfs.sh在文件前面添加如下
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
#start-yarn.sh,stop-yarn.sh在文件前面添加如下
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
把 hadoop01节点上修改好配置的安装包拷贝到其他两个从节点
(scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp是不加密的,scp 是 rcp 的加强版)
[root@hadoop01 hadoop-2.7.5]# scp -rq hadoop-2.7.5.tar.gz hadoop02:/home/
[root@hadoop01 hadoop-2.7.5]# scp -rq hadoop-2.7.5.tar.gz hadoop03:/home/
ps:推荐将Hadoop安装的目录相同
格式化 namenode (集群首次使用前的操作)
[root@hadoop01 hadoop]# cd /home/hadoop-2.7.5
[root@hadoop01 hadoop-2.7.5]# bin/hdfs namenode -format
#如果在后面的日志信息中能看到这一行,则说明 namenode 格式化成功。 common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted
启动集群,在 hadoop01节点上执行下面命令
[root@hadoop01 hadoop-2.7.5]# sbin/start-all.sh (不推荐使用,可做测试)
验证集群分别在 3 台机器上执行 jps 命令,进程信息如下所示:
# 在 hadoop01节点执行
[root@hadoop01 hadoop-2.7.5]# jps
8802 ResourceManager
8572 SecondaryNameNode
8334 NameNode
# 在 hadoop02节点执行
[root@hadoop101 hadoop-2.7.5]# jps
2229 NodeManager
2124 DataNode
# 在 hadoop03 节点执行
[root@hadoop102 hadoop-2.7.5]# jps
1857 DataNode
1963 NodeManager
可通过web查看运行状态
50070端口:访问Hadoop页面的地址
9000端口:hdfs进程间通信的端口