集群的节点使用虚拟机产生的,本文选择的是4个节点,即一个主节点和三个从节点。其中主节点(master)用于部署NameNode和ResourceManager,其余三个从节点(slave)用于部署DataNode和DataManager。节点的主机名称及对应的IP地址如下表所示:
主机名 | ip地址 | 节点作用 |
sf-node1.hadoop.com | 192.168.1.111 | master |
sf-node2.hadoop.com | 192.168.1.112 | slave |
sf-node3.hadoop.com | 192.168.1.113 | slave |
sf-node4.hadoop.com | 192.168.1.114 | slave |
为了方便,选择sf-node1.hadoop.com将Hadoop安装配置好,再使用scp命令进行拷贝至其他机器。
1. 安装jdk
由于Hadoop是基于java实现的,因此jdk是必须安装的工具。具体请参见:
入门级Hadoop集群搭建详细教程(八):JDK、Tomcat的安装
2. 下载Hadoop的版本
这里使用的Hadoop版本是hadoop-2.6.4.下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.6.4/
3. 安装Hadoop
为了统一管理在用户目录下创建一个文件夹apps,用于安装所有的Hadoop组件。
#创建一个新的目录 mkdir apps #将下载的文件hadoop-2.6.4.tar.gz解压至apps文件夹下,即可完成安装 tar –zxvf hadoop-2.6.4.tar.gz -C apps/ |
4. 配置SSH免密码登陆
详情见入门级Hadoop集群搭建详细教程(七):SSH免密码登陆
6. 配置主机与ip地址的映射
#打开hosts文件,配置内容如下: sudo vi /etc/hosts 192.168.1.111 sf-node1.hadoop.com 192.168.1.112 sf-node2.hadoop.com 192.168.1.113 sf-node3.hadoop.com 192.168.1.114 sf-node4.hadoop.com
|
为了每次都不用这么麻烦,可以配置一个局部的DNS服务器,这样随着节点的增多,只需要配置下域名服务器即可。具体的DNS搭建方法见:入门级Hadoop集群搭建详细教程(十):DNS服务器的搭建。本文采用的方法是搭建一个DNS服务器,地址为192.168.1.120。需要配置下域名服务器地址:
[dd171290@sf-node1 ~]$ sudo vi /etc/resolv.conf nameserver 192.168.1.120 |
7. 配置相关文件
一个简单的Hadoop集群需要配置如下几个核心文件:hadoop-env.sh 、 core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,还有一个slaves文件。这些配置文件所在的目录为:apps/hadoop-2.6.4/etc/hadoop/,具体的配置信息如下:
7.1 hadoop-env.sh配置
该文件主要修改下JAVA_HOME。如果你已经配置好了JDK,并且设定了JAVA_HOME变量,可以使用命令:echo $JAVA_HOME 来查看你的jdk安装目录,将hadoop-env.sh文件中的位置修改成如下:
# The java implementation to use.
export JAVA_HOME=/usr/apps/jdk1.8.0_121
7.2 core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <!—配置hdfs --> <value>hdfs://sf-node1.hadoop.com:9000</value> </property> <property> <name>hadoop.tmp.dir</name><!—配置hadoop临时数据目录 --> <value>/home/dd171290/apps/hadoop-2.6.4/tmp</value> </property> </configuration> |
7.3 hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>sf-node1.hadoop.com:50090</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/dd171290/apps/hadoop-2.6.4/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/dd171290/apps/hadoop-2.6.4/data</value> </property> </configuration> |
7.4mapred-site.xml
默认的是给定一个mapred-site.xml.template ,需要将其重命名为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
7.5 yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>sf-node1.hadoop.com</value> </property> </configuration> |
7.6slaves
sf-node2.hadoop.com sf-node3.hadoop.com sf-node4.hadoop.com |
8. 拷贝文件至其他节点
scp –r apps sf-node2.hadoop.com:/home/dd171290/
scp –r apps sf-node3.hadoop.com:/home/dd171290/
scp –r apps sf-node4.hadoop.com:/home/dd171290/
9. 测试启动
首先为了方便配置一下HADOOP_HOME。 export HADOOP_HOME=/home/dd171290/apps/hadoop-2.6.4 export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
# 格式化namenode hdfs namenode –format # 启动hdfs start-dfs.sh #启动mapreduce start-yarn.sh #使用all启动 start-sll.sh #关闭 stop-all.sh |