这里搭建的是3个节点的完全分布式,即1个nameNode,2个dataNode,分别如下:
CentOS-master nameNode 192.168.11.128
CentOS-node1 dataNode 192.168.11.131
CentOS-node2 dataNode 192.168..11.132
1.首先创建好一个CentOS虚拟机,将它作为主节点我这里起名为CentOS-master,起什么都行,不固定要求
2.VMware中打开虚拟机,输入Java -version,检查是否有JDK环境,不要用系统自带的openJDK版本,要自己安装的版本
3.输入 systemctl status firewalld.service ,若如图,防火墙处于running状态,则执行第4和第5步,否则直接进入第6步
4.输入 systemctl stop firewalld.service ,关闭防火墙
5.输入 systemctl disable firewalld.service ,禁用防火墙
6.输入 mkdir /usr/local/Hadoop 创建一个hadoop的文件夹
7.将hadoop的tar包放到刚创建好的目录
8.进入hadoop目录,输入 tar -zxvf hadoop-2.7.3.tar.gz 解压tar包
9.输入 vi /etc/profile ,配置环境变量
10.加入如下内容,保存并退出
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3/
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
11.输入 . /etc/profile ,使环境变量生效
12.任意目录输入 hado ,然后按Tab,如果自动补全为hadoop,则说明环境变量配的没问题,否则检查环境变量哪出错了
13.创建3个之后要用到的文件夹,分别如下:
mkdir /usr/local/hadoop/tmp
mkdir -p /usr/local/hadoop/hdfs/name
mkdir /usr/local/hadoop/hdfs/data
14.进入hadoop解压后的 /etc/hadoop 目录,里面存放的是hadoop的配置文件,接下来要修改这里面一些配置文件
15.有2个.sh文件,需要指定一下JAVA的目录,首先输入 vi hadoop-env.sh 修改配置文件
16.将原有的JAVA_HOME注释掉,根据自己的JDK安装位置,精确配置JAVA_HOME如下,保存并退出
export JAVA_HOME=/usr/local/java/jdk1.8.0_102/
17.输入 vi yarn-env.sh 修改配置文件
18.加入如下内容,指定JAVA_HOME,保存并退出
export JAVA_HOME=/usr/local/java/jdk1.8.0_102
19.输入 vi core-site.xml 修改配置文件
20.在configuration标签中,添加如下内容,保存并退出,注意这里配置的hdfs:master:9000是不能在浏览器访问的
<property>
<name> fs.default.name </name>
<value>hdfs://master:9000</value>
<description>指定HDFS的默认名称</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>HDFS的URI</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>节点上本地的hadoop临时文件夹</description>
</property>
21.输入 vi hdfs-site.xml 修改配置文件
22.在configuration标签中,添加如下内容,保存并退出
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,默认是3,应小于datanode机器数量</description>
</property>
23.输入 cp mapred-site.xml.template mapred-site.xml 将mapred-site.xml.template文件复制到当前目录,并重命名为mapred-site.xml
24.输入 vi mapred-site.xml 修改配置文件
25.在configuration标签中,添加如下内容,保存并退出
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>指定mapreduce使用yarn框架</description>
</property>
26.输入 vi yarn-site.xml 修改配置文件
27.在configuration标签中,添加如下内容,保存并退出
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>指定resourcemanager所在的hostname</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>
NodeManager上运行的附属服务。
需配置成mapreduce_shuffle,才可运行MapReduce程序
</description>
</property>
28.输入 vi slaves 修改配置文件
29.将localhost删掉,加入如下内容,即dataNode节点的主机名
node1
node2
30.将虚拟机关闭,再复制两份虚拟机,重命名为如下,注意这里一定要关闭虚拟机,再复制
31.将3台虚拟机都打开,后两台复制的虚拟机打开时,都选择“我已复制该虚拟机”
32.在master机器上,输入 vi /etc/hostname,将localhost改为master,保存并退出
33.在node1机器上,输入 vi /etc/hostname,将localhost改为node1,保存并退出
34.在node2机器上,输入 vi /etc/hostname,将localhost改为node2,保存并退出