完全分布式是由3个及以上的实体机或者虚拟机组建的机群。
分布式各节点介绍
namenode
NameNode主要是用来保存HDFS的元数据信息,比如命名空间信息,块信息等。当它运行的时候,这些信息是存在内存中的。但是这些信息也可以持久化到磁盘上。
Secondarynamenode
平时不工作,元数据进行合并时工作,工作时与namenode拥有相同多的内存。
datanode
用来执行具体的存储任务:存储文件块。另外它也会定时的通过心跳向NameNode报告自己的状态(包括存储的文件块的信息)。
resoucemanager
是管理集群所有可用资源的中心节点,默认的情况下,如果没有指定rm的运行的主机,则以启动Start-yarn.sh时的那个机器为主机,占的内存不大。
NodeManager
NodeManager是进行运算的,必须要与DataNode同时在同一个机器上–数据本地化。
环境
参考伪分布式配置
分布式系统环境搭建
配置hadoop
hadoop-env.sh
export JAVA_HOME=/usr/yourjdk/bin
core-site.xml
配置Namenode节点的文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>localhost:50090</value>
</property>
</configuration>
hdfs-site.xml
配置Secondarynamenode节点的文件
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
mapred-site.xml
指定mapreduce运行平台
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
配置resourcemanager,nodemanager节点的文件
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
</configuration>
slaves
配置datanode,nodemanager节点文件,文件中包含hostname(需要在/etc/hosts中配置好)。
格式化namenode
Hdfs namenode -format
报错则根据提示修改配置文件。
启动集群
Start-dfs.sh 启动hdfs文件系统
Start-yarn.sh 启动yarn