1.集群部署规划
注:所有的没有进行自定义的配置,其实都是使用的默认配置,只是这 default-site.xml 对我们相对透明
master:hadoop102
slave1 : hadoop103
slave2 : hadoop104
最佳集群部署规划: namenode, resourcemanager, secondarynamenode 都是资源的管理者,要占用 节点的内存, 如果把这些 管理者 都部署到 主节点master上,势必会造成内存资源的分配问题,最好的办法就是将其分散开来。
master 放置 namenode
slave1 放置 resourcemanager
slave2 放置 secondarynamenode
每一个节点都有 datanode, nodemanager
2.配置集群
针对集群配置信息:
- core-site.xml 配置 namenode 所在节点
- hdfs-site.xml 配置 冗余备份 secondarynamenode 所在节点
- yarn-site.xml 配置 resourcemanager 所在节点
伪分布式情况下:
- core-site.xml 配置 hadoop的tmp目录,namenode的所在节点
- hdfs-site.xml 配置 副本数
- yarn-site.xml 配置 resourcemanager, nodemanager
- mapred-site.xml.template 转为 mapred-site.xml 配置 yarn 管理 mapreduce
50070 hdfs
8088 yarn
9000 namenode
50090 secondarynamenode
env.sh环境的配置
env.sh都需要使用 jdk
hadoop-env.sh
yarn-env.sh
mapred-env.sh
xml文件的配置
配置core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.3/tmp</value>
</property>
配置hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave2:50090</value>
</property>
配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave2</value>
</property>
配置mapred.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
上述步骤都是在master上完成的,通过 xsync 或者 scp 或者 rsync 发送到 slave1, slave2 省的重复配置