前言
本篇博客内容是在虚拟机的CentOS7系统上搭建Hadoop集群的步骤,Hadoop集群的节点分为namenode和datanode,namenode可以看作是Hadoop的master节点,datanode可以看作是node节点,一个集群一般由一个namenode和多个datanode组成
一.准备工作
1.1 修改主机名
修改network文件vi /etc/sysconfig/network
,添加配置
主节点配置:
NETWORKING=yes
HOSTNAME=hadoop-master
node点配置:
NETWORKING=yes
HOSTNAME=hadoop-node01
1.2 配置主机名和IP的映射关系
修改hosts文件vi /etc/hosts
1.3 配置静态ip
我的另一篇博客有配置静态ip的方法CentOS7和Ubuntu16设置静态ip的方法
1.4 关闭防火墙
查看防火墙状态
firewall-cmd --state
关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机自启
systemctl disable firewalld.service
二.Hadoop集群搭建
在Hadoop集群的namenode和datanode的安装方式是相同的,但启动方式不同,namenode和datanode均需要进行以下步骤进行安装
2.1 安装jdk
首先上传jdk压缩包并解压
修改配置文件profilevim /etc/profile
添加以下内容,JAVA_HOME要改成你的jdk的位置,可以cd进jdk所在文件夹然后使用pwd
命令
export JAVA_HOME=/usr/local/application/JDK/jdk1.8.0_11
export PATH=$PATH:$JAVA_HOME/bin
重新加载配置文件
source /etc/profile
2.2 安装Hadoop
上传Hadoop压缩包并解压,Hadoop解压完成后,只需要修改Hadoop中的五个配置文件即可,五个配置文件均在Hadoop中的etc/hadoop目录下,master节点和node节点的配置相同,均需要进行以下步骤的配置
1.hadoop-env.sh
修改export JAVA_HOME的配置,原来的配置为{JAVA_HOME},这样是得不到jdk的地址的,将其删除,改为jdk所在的绝对路径
export JAVA_HOME=/usr/local/application/JDK/jdk1.8.0_11
2.core-site.xml
添加两条配置,第一条指定Hadoop所使用的文件系统schema(URI),指定NameNode的地址,第二条指定hadoop运行时产生文件的存储目录,指定为Hadoop根目录下的tmp文件。我的Hadoop所在路径为/usr/local/application/hadoop/hadoop-2.6.4/
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/application/hadoop/hadoop-2.6.4/tmp</value>
</property>
注意要在两个configuration标签之间添加配置
3.hdfs-site.xml
这条配置用于指定HDFS副本的数量,默认是3
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
4.mapred-site.xml
由于sbin目录下是没有直接给出mapred-site.xml文件的,所以要先用命令创建一个mapred-site.xml文件mv mapred-site.xml.template mapred-site.xml
,然后添加配置,指定mr运行在yarn上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.yarn-site.xml
这两条配置用于指定ResourceManager的位置及reducer获取数据的方式
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
2.3 将Hadoop配置到PATH
全部配置完成后,需将Hadoop配置到PATH中
修改配置文件profilevim /etc/profile
,添加以下内容,注意修改HADOOP_HOME
export HADOOP_HOME=/usr/local/application/hadoop/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
重新加载配置文件
source /etc/profile
2.4 Hadoop集群启动
首先启动namenode节点
启动namenode节点前,必须要先初始化namenode
运行命令
hadoop namenode -format
当看到如下图红圈所示信息时,表示namenode节点format成功,如果有错,说明之前的配置文件中很可能配置有错误,可以查看log文件寻找报错信息
格式化成功后,运行命令启动namenode节点
hadoop-daemon.sh start namenode
namenode节点成功启动后,在浏览器输入http://192.168.110.138:50070/访问namenode节点的50070端口即可看到Hadoop的管理界面,这时候集群还没有datanode节点
启动datanode节点
只需要在datanode节点上运行命令
hadoop-daemon.sh start datanode
datanode节点便可以根据配置信息自动接入集群,在Hadoop集群管理页面中可以看到datanode的信息