hadoop学习(三)集群搭建

1.Hadoop运行模式

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式
Hadoop官方网站:http://hadoop.apache.org/

本地模式和伪分布式模式本文就不搭了,有兴趣的可以自己看看

2.集群搭建

集群搭建步骤:

  1. 准备3台客户机(关闭防火墙、静态ip、主机名称)
  2. 安装JDK
  3. 配置环境变量
  4. 安装Hadoop
  5. 配置环境变量
  6. 配置集群
  7. 单点启动
  8. 配置ssh
  9. 群起并测试集群

3.集群规划

hadoop102 hadoop103 hadoop104
HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode
YARN NodeManager ResourceManager 、NodeManager NodeManager

安装Hadoop

通过Xftp工具上传Hadoop压缩包到 /opt/software 目录下

[[email protected] software]$ ls
hadoop-2.7.2.tar.gz
[[email protected] software]$ tar -zxf hadoop-2.7.2.tar.gz -C /opt/module

解压缩到 /opt/module 目录下

修改配置文件

配置文件位置:/opt/module/hadoop-2.7.2/etc/hadoop
hadoop学习(三)集群搭建

(1)核心配置文件

编辑core-site.xml

[[email protected] hadoop]$ vim core-site.xml

在配置文件中加上如下配置

<!-- 指定HDFS中NameNode的地址 -->
<property>
		<name>fs.defaultFS</name>
      <value>hdfs://hadoop102:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>


(2)HDFS配置文件

配置 hadoop-env. sh

[[email protected] hadoop]$ vim hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置hdfs-site.xml

[[email protected] hadoop]$ vim hdfs-site.xml

在配置文件中加上如下配置

<!-- 文件副本数, 默认是3 -->
<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop104:50090</value>
</property>

(3)YARN配置文件

配置 yarn-env. sh

[[email protected] hadoop]$ vim yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置yarn-site.xml

[[email protected] hadoop]$ vim yarn-site.xml

在配置文件中加上如下配置

<!-- Reducer获取数据的方式 -->
<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop103</value>
</property>
(4)MapReduce配置文件

配置 mapred-env. sh

[[email protected] hadoop]$ vim mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml

[[email protected] hadoop]$ cp mapred-site.xml.template mapred-site.xml

[[email protected] hadoop]$ vim mapred-site.xml

在配置文件中加上如下配置

<!-- 指定MR运行在Yarn上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>
(5)配置slaves

注:这一步不配置只能单节点启动

在文件中增加你配置集群的所有节点

hadoop102
hadoop103
hadoop104

拷贝配置文件到其他机器

scp    -r /opt/module/  hadoop103:/opt/module
scp    -r /opt/module/  hadoop104:/opt/module

拷贝完成随便打开几个配置文件检查一下

4.启动集群

配置SSH

集群启动前需要配置好SSH
.ssh在用户的家目录下(如 /home/hadoop/.ssh/ ):

(1)生成公钥和私钥:

[[email protected] .ssh]$ ssh-****** -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
hadoop学习(三)集群搭建
(2)将公钥拷贝到要免密登录的目标机器上

[[email protected] .ssh]$ ssh-copy-id hadoop102
[[email protected] .ssh]$ ssh-copy-id hadoop103
[[email protected] .ssh]$ ssh-copy-id hadoop104

注意:
还需要在hadoop102上采用hadoop账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
还需要在hadoop103上采用hadoop账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

执行一下操作,如果不需要密码登陆则说明SSH免密登陆配置成功

[[email protected] .ssh]$ ssh hadoop103

启动集群

(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)

[[email protected] ~]$ cd /opt/module/hadoop-2.7.2/
[[email protected] hadoop-2.7.2]$ bin/hdfs namenode -format

注意:在namenode的节点上启动hdfs , 在 ResourceManager 节点上启动yarn

(2)启动HDFS

[[email protected] ~]$ cd /opt/module/hadoop-2.7.2/
[[email protected] hadoop-2.7.2]$ start-dfs.sh 
Starting namenodes on [hadoop102]
hadoop102: starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-namenode-hadoop102.out
hadoop104: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-datanode-hadoop104.out
hadoop103: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-datanode-hadoop103.out
hadoop102: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-datanode-hadoop102.out
Starting secondary namenodes [hadoop104]
hadoop104: starting secondarynamenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-secondarynamenode-hadoop104.out
[[email protected] hadoop-2.7.2]$ 

(3)启动YARN

[[email protected] hadoop-2.7.2]$ start-yarn.sh 
starting yarn daemons
starting resourcemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-atguigu-resourcemanager-hadoop103.out
hadoop104: starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-atguigu-nodemanager-hadoop104.out
hadoop102: starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-atguigu-nodemanager-hadoop102.out
hadoop103: starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-atguigu-nodemanager-hadoop103.out
[[email protected] hadoop-2.7.2]$ 

jps查看java进程:
hadoop102
hadoop学习(三)集群搭建
hadoop103
hadoop学习(三)集群搭建
hadoop104
hadoop学习(三)集群搭建
(4)web管理界面

注意:防火墙关闭或者开放50070和8088端口

HDFS: http://hadoop102:50070/
YARN: http://hadoop103:8088
hadoop学习(三)集群搭建

hadoop学习(三)集群搭建

看到这两个界面就说明集群搭建成功