目录

一、Hadoop集群规划

二、配置样板节点

1、虚拟机硬件信息

2、本地登录配置

(1)root用户登录

(2)关闭防火墙

(3)修改主机名和IP地址

(4)配置hosts

(5)创建用户设置密码

(6)添加sudo权限

(7)切换用户验证sudo命令

(8)创建软件安装目录

3、远程登录配置

(1)Xshell远程登录

(3)安装jdk和hadoop

(4)修改hadoop配置文件

(5)配置主机免密登录

三、克隆样板节点搭建集群 

1、克隆样板节点修改配置

(1)克隆样板节点

(2)开启三台克隆虚拟机

(3)atguigu用户本地登录克隆机

(4)修改克隆机主机名、固定ip、虚拟网卡

2、Xshell远程连接启动集群

(1)Xshell同时连接三台虚拟机

(2)ssh登录三台主机实现免密登录

(3)同时切换到hadoop安装目录

(4)hadoop102启动hdfs测试

(5)hadoop103启动yarn测试

(6)hadoop104启动jobhistory测试

3、启动集群所有节点并通过浏览器查看

(1)hadoop102启动hdfs

(2)hadoop103启动yarn

(3)hadoop104启动jobhistory

(4)jps查看进程状态

(5)浏览器查看节点状态

四、集群功能测试

1、创建测试文件

2、上传文件到集群hdfs系统根目录/

3、web端查看是否上传成功 

4、调用mapreduce函数wordcount

五、启动停止主机单节点

(1)启动/停止当前主机HDFS节点

(2)启动/停止当前主机YARN节点


一、Hadoop集群规划

集群使用192.168.1.102、192.168.1.103、192.168.1.104三台虚拟机,主机名对应为

hadoop102、hadoop103、hadoop104

集群配置方案:(9个节点搭配部署在3台服务器,生产环境中每个节点单独一台服务器)

 

hadoop102

hadoop103

hadoop104

HDFS

 

NameNode

DataNode

 

DataNode

SecondaryNameNode

DataNode

YARN

 

NodeManager

ResourceManager

NodeManager

 

NodeManager

ps:104主机还作为历史服务器

二、配置样板节点

1、虚拟机硬件信息

内存2G、硬盘20G

4处理器*2核=8线程

分区配置:

/ 15260M(15G)

/boot 200M

/swap 剩余所有

2、本地登录配置

(1)root用户登录

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop

(2)关闭防火墙

service iptables stop

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_02

chkconfig iptables off

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_03

查看防火墙状态

service iptables status

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_04

chkconfig iptables --list

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_05

(3)修改主机名和IP地址

vim /etc/sysconfig/network


 


Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_06

vim /etc/sysconfig/network-scripts/ifcfg-eth0

参考如下配置:

DEVICE=eth0
TYPE=Ethernet
#开机联网
ONBOOT=yes
#静态ip
BOOTPROTO=static
#固定IP地址
IPADDR=192.168.1.100
PREFIX=24
#网关地址
GATEWAY=192.168.1.2
#域名解析器地址
DNS1=192.168.1.2
NAME=eth0

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_07

(4)配置hosts

vim /etc/hosts

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_08

参考如下配置:

(前项是服务器IP地址,后项是服务器主机名)

192.168.1.100 hadoop100
192.168.1.102 hadoop102
192.168.1.103 hadoop103
192.168.1.104 hadoop104

清除默认后配置如下

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_09

(5)创建用户设置密码

useradd atguigu
passwd atguigu

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_10

(6)添加sudo权限

vim /etc/sudoers

 复制第91行至92行,将root修改为atguigu

快捷操作命令:

91+G:直接跳到91行,先输入数字91,然后同时按下shift键和g键

yy:复制当前行

p:粘贴

i:进入编辑模式

wq!:退出并强制保存

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_11

 

(7)切换用户验证sudo命令

su atguigu

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_12

 

(8)创建软件安装目录

mkdir /opt/module /opt/software
chown atguigu:atguigu /opt/module /opt/software

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_13

3、远程登录配置

(1)Xshell远程登录

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_14

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_15

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_16

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_17

(3)安装jdk和hadoop

*查看系统是否已安装jdk,如果系统已安装jdk则需要卸载

rpm -qa |grep java

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_18

xftp上传压缩包到/opt/software目录

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_19

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_20

解压缩到/opt/module目录

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module

 修改系统配置文件

sudo vim /etc/profile

在最后追加如下配置

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_21

使配置文件立即生效

source /etc/profile

验证配置是否已生效:java -version、hadoop version

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_22

(4)修改hadoop配置文件

切换到hadoop安装目录

cd /opt/module/hadoop-2.7.2

 修改hadoop-env.sh、mapred-env.sh 、yarn-env.sh 三个文件

vim etc/hadoop/hadoop-env.sh
vim etc/hadoop/mapred-env.sh
vim etc/hadoop/yarn-env.sh

 统一将JAVA_HOME变量值修改为jdk安装路径

export JAVA_HOME=/opt/module/jdk1.8.0_144

修改core-site.xml

vim etc/hadoop/core-site.xml

 <configuration></configuration>之间新增如下内容

<!-- 指定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>

修改hdfs-site.xml

vim etc/hadoop/hdfs-site.xml

 <configuration></configuration>之间新增如下内容

<!-- 数据的副本数量 -->
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>

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

修改yarn-site.xml

vim etc/hadoop/yarn-site.xml

 <configuration></configuration>之间新增如下内容

<!-- 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>
        <!-- 日志聚集功能使用 -->
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>
        <!-- 日志保留时间设置7天 -->
        <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
        </property>

mapred-site.xml.template重命名为mapred-site.xml再修改

mv etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml

 <configuration></configuration>之间新增如下内容

<!-- 指定MR运行在Yarn上 -->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <!-- 历史服务器端地址 -->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop104:10020</value>
        </property>
        <!-- 历史服务器web端地址 -->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoop104:19888</value>
        </property>

 修改节点配置文件slaves

vim etc/hadoop/slaves

清除原有信息改为如下配置: 

hadoop102
hadoop103
hadoop104

(5)配置主机免密登录

生产密钥对,出现提示直接回车三次即可

ssh-keygen -t rsa

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_23

发送公钥到本机(输入yes后输入密码)

ssh-copy-id hadoop100

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_24

尝试免密登录 

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_25

三、克隆样板节点搭建集群 

1、克隆样板节点修改配置

(1)克隆样板节点

关闭样板节点虚拟机

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_26

选中虚拟机右键-管理-克隆 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_27

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_28

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_29

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_30

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_31

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_32

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_33

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_34

同样的操作步骤,克隆hadoop103、hadoop104

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_35

(2)开启三台克隆虚拟机

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_36

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_37

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_38

(3)atguigu用户本地登录克隆机

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_39

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_40

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_41

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_42

(4)修改克隆机主机名、固定ip、虚拟网卡

虚拟机名、主机名、ip地址三者最好对应,

hadoop102对应192.168.1.102

hadoop103对应192.168.1.103

hadoop104对应192.168.1.104

sudo vim /etc/sysconfig/network

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_43

 

sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_44

 

sudo vim /etc/udev/rules.d/70-persistent-net.rules

删除第一行,将第二行的ech1改为ech0

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_45

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_46

按i进入编辑模式将数字1改为0,esc退出编辑模式,:wq保存并退出

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_47

  

重启虚拟机

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_48

PS:相同步骤修改克隆机hadoop103和hadoop104 

2、Xshell远程连接启动集群

(1)Xshell同时连接三台虚拟机

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_49

(2)ssh登录三台主机实现免密登录

ssh登录三台主机

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_50

每台虚拟机上都执行一遍

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_51

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_52

(3)同时切换到hadoop安装目录

cd /opt/module/hadoop-2.7.2/

(4)hadoop102启动hdfs测试

namenode节点部署在hadoop102

***第一次运行需要格式化namenode,后续不再需要

hdfs namenode -format

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_53

启动hdfs集群

start-dfs.sh

namenode节点和三个datanode节点都启动成功

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_54

关闭hdfs集群

stop-dfs.sh

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_55

(5)hadoop103启动yarn测试

ResourceManager节点部署在hadoop103

启动yarn集群

start-yarn.sh

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_56

 关闭yarn集群

stop-yarn.sh

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_57

(6)hadoop104启动jobhistory测试

启动历史服务器jobhistory

sbin/mr-jobhistory-daemon.sh start historyserver

停止历史服务器jobhistory

sbin/mr-jobhistory-daemon.sh stop historyserver

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_58

3、启动集群所有节点并通过浏览器查看

(1)hadoop102启动hdfs

start-dfs.sh

(2)hadoop103启动yarn

start-yarn.sh

(3)hadoop104启动jobhistory

sbin/mr-jobhistory-daemon.sh start historyserver

(4)jps查看进程状态

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_59

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_60

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_61

(5)浏览器查看节点状态

查看HDFS数据节点

http://192.168.1.102:50070/dfshealth.html#tab-datanode

查看整个集群节点

http://192.168.1.103:8088/cluster/nodes

查看SecondaryNameNode节点状态

http://192.168.1.104:50090/status.html

ps:若想使用域名访问相关节点,可以配置本地hosts

编辑windows本地hosts文件添加域名对应ip映射即可,文件路径——C:\Windows\System32\drivers\etc

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_62

配置后本地可使用域名访问

查看HDFS数据节点

http://hadoop102:50070/dfshealth.html#tab-datanode

查看整个集群节点

http://hadoop103:8088/cluster/nodes

查看SecondaryNameNode节点

http://hadoop104:50090/status.html

四、集群功能测试

1、创建测试文件

cd /opt/module/hadoop-2.7.2
mkdir wcinput
cd wcinput/
vim wc.input

测试文件wc.input输入以下内容,:wq保存并推出

hadoop yarn
hadoop mapreduce
atguigu
atguigu

2、上传文件到集群hdfs系统根目录/

cd /opt/module/hadoop-2.7.2

hadoop fs -put wcinput /

3、浏览器查看是否上传成功 

http://hadoop102:50070/explorer.html#/

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_63

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_64

 

4、执行测试程序

(1)调用mapreduce的wordcount函数

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /wcinput /wcoutput

显示任务执行成功

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_65

(2)查看执行结果

http://hadoop102:50070/explorer.html#/

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_66

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_67

 

下载到本机查看结果 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_68

 

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hadoop_69

 

(3)浏览器访问Yarn节点查看任务执行情况

http://hadoop103:8088/cluster

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_vim_70

点击History可查看详情

Kubernetes中部署 Hadoop 大数据集群 大数据hadoop集群搭建_hdfs_71

五、启动停止单节点

(1)启动/停止当前主机HDFS节点

hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode

(2)启动/停止当前主机YARN节点

yarn-daemon.sh  start / stop  resourcemanager / nodemanager