Hadoop2.x完全分布式环境搭建及测试验证
前置条件:
[1] 已制作好CentOS虚拟机模板。
[2] 该模板安装好Oracle JDK,且JAVA_HOME值为/usr/java/jdk1.8.0_171-amd64/jre。
准备三台虚拟机
[1] 搭建完全Hadoop分布式最少需要三台服务器,假设三台服务器的IP地址如下:
192.168.159.194 hadoop01
192.168.159.195 hadoop02
192.168.159.196 hadoop03
[2] 配置要求:建议每台虚拟机的配置最低为2核4G,如果内存确实有限,可以将hadoop02和hadoop03的内存降为2G,但hadoop01的内存不能低于4G,因为根据后面的安排,hadoop01作为主节点,上面部署的服务较多。
概述
完全分布式包含多个节点,按功能可划分为:
[1] 主节点(master):如NameNode和ResourceManager
[2] 备节点(slave):如DataNode和NodeManager
[3] 辅助服务:如Web App Proxy Server和MapReduce Job History server
部署架构
配置文件
可分为三类:
[1] 只读的默认配置文件,包括
hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml
hadoop-2.7.3/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
hadoop-2.7.3/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
hadoop-2.7.3/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
[2] site相关的配置,包括:
hadoop-2.7.3/etc/hadoop/core-site.xml
hadoop-2.7.3/etc/hadoop/hdfs-site.xml
hadoop-2.7.3/etc/hadoop/yarn-site.xml
hadoop-2.7.3/etc/hadoop/mapred-site.xml
[3] 控制脚本文件,在hadoop-2.7.3/etc/hadoop/*-env.sh
说明:以下操作在hadoop01上进行。
第一步:操作系统配置
[1] 修改/etc/hostname的内容为hadoop01
[2] 修改/etc/hosts的内容为
127.0.0.1 localhost
192.168.159.194 hadoop01
192.168.159.195 hadoop02
192.168.159.196 hadoop03
[3] 重启操作系统
[root@centos7 ~]# init 6
第二步:Hadoop安装包下载
可以在官网https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz
第三步:解压hadoop包
[1] 将hadoop-2.7.3.tar.gz上传到/root目录下。
[root@hadoop01 ~]# cd /opt/
[root@hadoop01 opt]# tar zxf ~/hadoop-2.7.3.tar.gz
[root@hadoop01 opt]# cd hadoop-2.7.3/
[2] 创建hadoop需要的目录
[root@hadoop01 ~]# mkdir -p /opt/hadoop-2.7.3/data/namenode
[root@hadoop01 ~]# mkdir -p /opt/hadoop-2.7.3/data/datanode
第四步:配置Hadoop
[1] 配置hadoop-env.sh
编辑etc/hadoop/hadoop-env.sh,修改JAVA_HOME的值如下:
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64/jre
[2] 配置core-site.xml
编辑etc/hadoop/core-site.xml,修改如下:
<configuration>
<property>
<!-- The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. default value: file:/// -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>