1、集群部署规划(3台客户机)
说明:NameNode和SecodaryNameNode使用内存是1:1的比例,所以分到2台机器,ResourceManager单独再另一台机器启动
hadoop03 NameNode、DataNode、NodeManager
hadoop04 DataNode、NodeManager、ResourceManager
hadoop05 SecodaryNameNode、DataNode、NodeManager
2、配置文件目录hadoop根目录下的/etc/hadoop下
3、配置相关文件的JAVA环境变量(hadoop,yarn,mapred)
hadoop-env.sh
mapred-env.sh
yarn-env.sh
4、配置hdfs
- core-site.xml
<!--配置hdfs文件系统命名空间,value值对应NameNode节点-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop03:9000</value>
</property>
# 疑问,手动创建了目录/home/bigdata/tmp/dfs/data/,否则启动报错
<!--配置临时数据存储目录,默认是/tmp/hadoop-${user.name},-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
<!--配置hdfs缓冲区大小,官方默认值是131072-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
- hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop05:50090</value>
</property>
<!--文件存储的副本数,默认是3-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--块大小,默认是128MB-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!--hdfs元数据存储位置,默认是file://${hadoop.tmp.dir}/dfs/name-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/bigdata/tmp/dfs/name</value>
</property>
<!--hdfs的数据存储位置,默认是file://${hadoop.tmp.dir}/dfs/data-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/bigdata/tmp/dfs/data</value>
</property>
<!--hdfs的namenode的web访问地址,默认是namenode的ip:50070-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop03:50070</value>
</property>
<!--hdfs的secondarynode的web访问地址,默认是secondarynode的ip:50090-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop05:50090</value>
</property>
<!--是否开启web操作hdfs,默认是true-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>false</value>
</property>
<!--是否启用hdsf权限(acl),默认是true-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
5、配置MapReduce
- mapred-site.xml
复制文件:cp mapred-queues.xml.template mapred-queues.xml
开始只有mapred-queues.xml.template文件,复制这个文件并命名为mapred-queues.xml
<!--指定MR运行框架------>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务通信地址,和MR服务保持统一------>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop05:10020</value>
</property>
<!--历史服务web ui地址,和MR服务保持统一------>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop05:19888</value>
</property>
6、配置yarn
vim yarn-site.xml
<!--指定Reduce获取数据方式->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定RM服务启动的主机-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop04</value>
</property>
<!--指定RM内部通信地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop04:8032</value>
</property>
<!--指定RM的scheduler通信地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop04:8030</value>
</property>
<!--指定RM的resource-tracker通信地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop04:8031</value>
</property>
<!--指定RM的admin通信地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop04:8033</value>
</property>
<!--指定RM的web ui地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop04:8088</value>
</property>
7、配置 slaves 文件(集群的datanode节点)
不能有空行和空格
8、分发配置文件到其他集群服务器
可以使用群分析脚本或rsync命令或scp命令