* 主打一个详解
* 推荐使用远程工具Xshell 7 + 文件传输工具 Xftp 7
一: 前期准备工作
1.关闭防火墙和seLinux服务
[root@bogon ~]# systemctl stop firewalld.service
[root@bogon ~]# systemctl disable firewalld.service
[root@bogon ~]# setenforce 0
2.添加主机映射并重启网卡
[root@bogon ~]# vim /etc/hosts
[root@bogon ~]# systemctl restart network
[root@bogon ~]# bash
3.配置免密登录
[root@master ~]# ssh-keygen
[root@slave1 ~]# ssh-keygen
[root@slave2 ~]# ssh-keygen
[root@master ~]# ssh-copy-id master
[root@master ~]# ssh-copy-id slave1
[root@master ~]# ssh-copy-id slave2
[root@slave1 ~]# ssh-copy-id master
[root@slave1 ~]# ssh-copy-id slave1
[root@slave1 ~]# ssh-copy-id slave2
[root@slave2 ~]# ssh-copy-id master
[root@slave2 ~]# ssh-copy-id slave1
[root@slave2 ~]# ssh-copy-id slave2
4.测试免密登录是否配置成功
[root@master ~]# ssh slave1
[root@slave1 ~]# exit
5.(用xftp7 将压缩包上传至指定位置)解压安装包
[root@master software]# tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/local/src/
[root@master software]# tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/src/
6.修改安装包名字并配置环境变量
[root@master src]# mv hadoop-2.7.7/ hadoop
[root@master src]# mv jdk1.8.0_162/ java
[root@master src]# vim /root/.bash_profile
###java
export JAVA_HOME=/usr/local/src/java
export PATH=$PATH:$JAVA_HOME/bin
###hadoop
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
[root@master src]# source /root/.bash_profile
以上前期配置完成 进入正式Hadoop 文件配置
二: 配置 HDFS
1.配置 core-site.xml
[root@master hadoop]# vim core-site.xml
<configuration>
<!--
用于设置Hadoop的文件系统,由URI指定
默认协议file:///属于本地路径,由于之后要用HDFS,因此需要修改为hdfs://主机名(ip):端口(内部的一个通讯)
-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 配置Hadoop存储数据目录,默认/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop/tmp</value>
</property>
<!-- 缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
2.配置 hdfs-site.xml
[root@master hadoop]# vim hdfs-site.xml
<configuration>
<!-- 定义secondarynamenode的通信地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<!-- namenode存储hdfs名字的空间的元数据文件目录 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/src/hadoop/name</value>
</property>
<!-- datanode上的一个数据块的物理的存储位置文件 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/src/hadoop/data</value>
</property>
<!-- 指定HDFS保存数据副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 设置一个block的大小:128M-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
三: 配置YARN
1.配置 yarn-site.xml
[root@master hadoop]# vim yarn-site.xml
<configuration>
<!-- NodeManager获取数据的方式shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 开启日志聚合功能,方便我们查看任务执行完成之后的日志记录 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置聚合日志在hdfs上的保存时间 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
2.配置mapreduce-site.xml
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vim mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上,表示MapReduce使用yarn框架 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 设置历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 设置网页访问历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
3.修改JAVA_HOME
[root@master hadoop]# echo $JAVA_HOME
[root@master hadoop]# vim hadoop-env.sh
[root@master hadoop]# vim yarn-env.sh
[root@master hadoop]# vim mapred-env.sh
四: 声明集群并分发文件和环境变量
[root@master hadoop]# vim slaves
master
slave1
slave2
[root@master src]# scp -r /usr/local/src/hadoop slave1:/usr/local/src
[root@master src]# scp -r /usr/local/src/hadoop slave2:/usr/local/src
[root@master src]# scp -r /usr/local/src/java slave1:/usr/local/src
[root@master src]# scp -r /usr/local/src/java slave2:/usr/local/src
[root@master hadoop]# scp -r /root/.bash_profile slave1:/root/.bash_profile
[root@master hadoop]# scp -r /root/.bash_profile slave2:/root/.bash_profile
[root@master hadoop]# source /root/.bash_profile (三台)
五: 集群启动
1.格式化namenode
[root@master hadoop]# hdfs namenode -format
2.群起集群
[root@master hadoop]# start-all.sh
[root@master hadoop]# jps
集群启动成功