1.前言
Apache Hadoop是由Apache基金会所开发的分布式系统基础架构。它可以让用户在不了解分布式底层细节的情况下,开发出分布式程序。Hadoop是以Google的MapReduce论文为基础所开发出的一个分布式计算框架。
本次向您介绍如何在Centos6.8下,进行Hadoop3.1.1的完全分布式安装,让您能够快速搭建好Hadoop集群。
2.环境准备
2.1.系统环境
操作系统:Centos6.8
内核版本:2.6.32-431.17.1.el6.x86_64
硬件环境:三台虚拟机,并在hosts配置文件中都添加了所有节点的IP地址和主机名映射关系,如下所示:
192.168.60.128 hadoop-master
192.168.60.129 hadoop-slave1
192.168.60.130 hadoop-slave2
2.2.Hadoop环境
版本:3.1.1
下载地址:https://hadoop.apache.org/releases.html#31+July%2C+2018%3A+Release+3.1.1+available
下载后的hadoop安装包为tar.gz格式,可以通过如下命令解压:
tar -zxvf hadoop-3.1.1.tar.gz -C /usr/local/
3.安装Java环境
由于Hadoop是Java语言写成的,所以在安装Hadoop之前需要先安装Java环境。推荐使用JDK1.8版本。
3.1.下载JDK1.8
下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载完毕后,通过如下命令解压:
tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/
3.2.配置环境变量
在/etc/profile文件中添加如下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
生效执行下列命令:
source /etc/profile
输入以下命令来检查Java是否已安装:
java -version
输出信息如下便表示安装成功:
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
4.配置SSH免密登录
Hadoop是一个分布式系统框架,集群中的各台机器之间需要互相访问文件和程序,因此需要配置SSH免密登录,以方便各节点之间相互操作。
4.1.配置密钥
进入hadoop安装文件夹中的etc/hadoop文件夹中,使用以下命令生成密钥:
ssh-keygen -t rsa
按照提示一路回车即可。生成密钥后,通过以下命令将密钥传输到所有节点:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop-slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop-slave2
以上命令中的hadoop-slave1和hadoop-slave2分别为两台从节点的IP地址。
4.2.检验是否可以免密登录
在master节点通过以下命令检查是否可以免密登录:
ssh hadoop-slave1
ssh hadoop-slave2
若出现以下提示则表示免密登录正常:
Last login: Thu Jan 10 21:35:24 2019 from hadoop-master
5.配置Hadoop环境
5.1.编辑hadoop-env.sh文件
在hadoop安装文件etc/hadoop文件夹中找到hadoop-env.sh文件,将其中的JAVA_HOME修改为Java的安装路径:
export JAVA_HOME=/usr/local/jdk1.8.0_191
5.2.编辑core-site.xml文件
在hadoop安装文件etc/hadoop文件夹中找到core-site.xml文件,修改其中相关配置:
fs.defaultFS
hdfs://hadoop-master:9000
其中hadoop-master为主节点的主机名。
5.3.编辑hdfs-site.xml文件
在hadoop安装文件etc/hadoop文件夹中找到hdfs-site.xml文件,修改其中相关配置:
dfs.namenode.name.dir
/usr/local/hadoop-3.1.1/dfs/name
dfs.datanode.data.dir
/usr/local/hadoop-3.1.1/dfs/data
dfs.replication
2
其中dfs.namenode.name.dir表示HDFS命名空间的元数据所存储的位置。dfs.datanode.data.dir表示每个HDFS数据节点上block数据的存储位置,dfs.replication表示数据备份数量,一般越大越安全,但也会导致存储空间的更大占用。
5.4.编辑mapred-site.xml文件
在hadoop安装文件etc/hadoop文件夹中找到mapred-site.xml文件,修改其中相关配置:
mapreduce.framework.name
yarn
其中mapreduce.framework.name设置为yarn,表示Hadoop框架采用YARN作为资源管理器进行集群资源的管理。
5.5.编辑yarn-site.xml文件
在hadoop安装文件etc/hadoop文件夹中找到yarn-site.xml文件,修改其中相关配置:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop-master
yarn.scheduler.minimum-allocation-mb
128
yarn.scheduler.maximum-allocation-mb
512
yarn.nodemanager.resource.memory-mb
2048
yarn.nodemanager.resource.cpu-vcores
2
yarn.nodemanager.aux-services为Yarn的进程间通信机制,其值设置为mapreduce_shuffle表示采用Mapreduce的Executor服务来处理进程间通信;yarn.resourcemanager.hostname表示Master节点的主机名;yarn.scheduler.minimum-allocation-mb是指节点的最小内存限制,单位是MB;yarn.scheduler.maximum-allocation-mb是指节点的最大内存限制,单位是MB;yarn.nodemanager.resource.memory-mb是指每个NodeMananger的最大内存在安装了其他软件的情况下可以设置为1GB或更大;yarn.nodemanager.resource.cpu-vcores是指每个NodeManager可以使用的CPU核数.
6.启动Hadoop集群
进入安装文件夹中的sbin文件夹,使用以下命令启动Hadoop集群:
./start-all.sh
使用以下命令检查Hadoop进程是否启动成功:
jps
输出信息应如下所示:
8872 NodeManager
8515 ResourceManager
9353 Jps
7989 NameNode
8190 DataNode
8642 SecondaryNameNode
以上为六个进程的PID,表示Hadoop运行正常。
7.Web页面查看Hadoop集群状态
在浏览器中输入以下网址,可以查看到Hadoop集群的整体状态:
http://hadoop-master:8088/cluster
如果能够成功访问,则代表我们的Hadoop集群已经安装好,并且正在正常运行。
8.停止Hadoop集群
进入安装文件夹中的sbin文件夹,使用以下命令停止Hadoop集群:
./stop-all.sh
9.总结
本文介绍了在Centos6.8下进行Hadoop3.1.1完全分布式安装的步骤,并详细说明了各个配置文件中的各种参数的含义。通过这篇文章,读者可以快速掌握Hadoop的搭建方法,其中包括环境准备、SSH免密登录、Hadoop环境配置、集群启动和查看集群状态等,希望本文能够对读者有所帮助。