hadoop3.x学习教程(一)

1、Hadoop概述

1.1、Hadoop优点

  • 高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障也不会导致数据的流失。
  • 高扩展性:在集群分配任务数据,可方便地扩展节点。
  • 高效性:在MapReduce的思想下,Hadoop是并行工作的,加快任务处理速度
  • 高容错性:能够自动将失败的任务重新分配

1.2、Hadoop3.x组成

  • Hadoop3.x组成和2.x没有区别,内置组件分别有MapReduce(计算),Yarn(资源调度),HDFS(数据存储),Common(辅助工具)四种

1.3、HDFS架构概述

HDFS(Hadoop Distributed File System),是一个分布式文件系统
内置三种组件,NameNode,DataNode,SecondaryNameNode

  1. NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等
  2. DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
  3. SecondaryNameNode(2nn):每隔一段时间对NameNode元数据备份

1.3、YARN架构概述

YARN(Yet Another Resource Negotiator),是Hadoop的资源管理器
内置四种组件,ResourceManager(RM),NodeManager(NM),ApplicationMaster(AM),Container

  1. ResourceManager:集群的领导者
  2. NodeManager:单个节点的领导者
  3. ApplicationMaster:单个任务运行的老大
  4. Container:容器,相当一台独立的服务器,里面封装了任务运行所需要的资源
  5. 客户端可以有多个,集群上可以运行多个ApplicationMaster,每个NodeManager上可以有多个Container

1.4、MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

  1. Map阶段并行处理输入数据
  2. Reduce阶段对Map结果进行汇总

1.5、HDFS、YARN、MapReduce三者关系

  1. client向集群提交一个任务
  2. client提交完任务后,YARN中的ResourceManager寻找节点,开启一个Container,然后把任务放到Container中,任务叫AppMstr,AppMstr向ResourceManager申请任务开启所需资源。ResourceManager寻找那些节点有资源,AppMstr开启MapTask,每一个MapTask独立运行,最终把结果汇总写入HDFS上

2、Hadoop运行环境搭建

2.1、修改虚拟机IP地址

  1. 修改网络IP地址为静态地址,避免变化,方便节点服务器间的相互通信
vim /etc/sysconfig/network-scripts/ifcfg-ens33
  1. 修改下列值
TYPE="Ethernet"    #网络类型(通常是Ethemet)
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"   #IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"   
UUID="e83804c1-3257-4584-81bb-660665ac22f6"   #随机id
DEVICE="ens33"   #接口名(设备,网卡)
ONBOOT="yes"   #系统启动的时候网络接口是否有效(yes/no)
#IP地址
IPADDR=192.168.10.100  
#网关  
GATEWAY=192.168.10.2      
#域名解析器
DNS1=192.168.10.2

  1. 修改完成后保存退出,并重启网络服务
systemctl restart network
  1. 重启完成后ifconfig查询当前IP是否修改成功
  2. 保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同

2.2、配置虚拟机

  1. 修改主机名称
vim /etc/hostname
hadoop100
  1. 配置linux克隆主机名称映射hosts文件,打开/etc/hosts并添加节点的ip及主机名,然后重启
vim /etc/hosts
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102

#重启
reboot
  1. 修改windows的主机映射文件(hosts文件)
#进入C:\Windows\System32\drivers\etc路径
#打开hosts文件并添加如下内容,然后保存
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102

  1. 测试hadoop100虚拟机是否可以链接网络
ping www.baidu.com
  1. 安装epel-release

Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的

#安装epel-release
yum install -y epel-release
#工具包集合
yum install -y net-tools
#vim:编辑器
yum install -y vim

#关闭防火墙
systemctl stop firewalld
#关闭防火墙开机自启
systemctl disable firewalld.service
  1. 创建hadoop用户,并修改hadoop用户的密码
#在root用户下
useradd hadoop
passwd hadoop
  1. 配置hadoop用户具有root权限,方便后期加sudo执行root权限的命令
#在root用户下
vim /etc/sudoers

#在%wheel下一行添加
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
#这行
hadoop   ALL=(ALL)     NOPASSWD:ALL
#hadoop这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了hadoop具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以hadoop要放到%wheel这行下面。
  1. 在/opt目录下创建文件夹,并修改所属主和所属组
mkdir /opt/module
mkdir /opt/software
#修改module、software文件夹的所有者和所属组均为hadoop用户
chown hadoop:hadoop /opt/module
chown hadoop:hadoop /opt/software
#查看module、software文件夹的所有者和所属组
cd /opt/
ll
  1. 卸载虚拟机自带的JDK
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
reboot

2.3、安装jdk,hadoop

  1. 进入hadoop用户
ls /opt/software/
  1. 用XShell传输工具将JDK,Hadoop导入到opt目录下面的software文件夹下面
  2. 在Linux系统下的opt目录中查看软件包是否导入成功
[hadoop@hadoop100 ~]$ ls /opt/software/
  1. 解压JDK,Hadoop到/opt/module目录下
[hadoop@hadoop100 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
[hadoop@hadoop100 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
  1. 配置JDK,Hadoop环境变量
sudo vim /etc/profile.d/my_env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#注意安装路径路径一定要对
#保存后更新下环境变量
source /etc/profile
  1. 测试JDK,Hadoop是否安装成功
java -version
hadoop version
#如果出现版本号则安装成功
  1. 用hadoop100为模板,克隆两份,并修改IP地址和主机名
#修改主机名
vim /etc/hostname
#hadoop101
#hadoop102

#修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#仅修改IP_ADDR
#IPADDR=192.168.10.101  
#IPADDR=192.168.10.102  
  1. hadoop重要目录
#(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
#(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
#(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
#(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
#(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
#进入Hadoop文件,ll看一下用户组是否属于hadoop,如果不是请重新反汇root用户执行用户组变更

3、hadoop运行模式

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

  1. 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
  2. 伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
  3. 完全分布式模式:多台服务器组成分布式环境。生产环境使用。

3.1、本地运行模式(官方WordCount)

  1. 创建在hadoop-3.1.3文件下面创建一个wcinput文件夹
[hadoop@hadoop100 hadoop-3.1.3]$ mkdir wcinput
  1. 在wcinput文件下创建一个word.txt文件
[hadoop@hadoop100 hadoop-3.1.3]$ cd wcinput
  1. 编辑word.txt文件
[hadoop@hadoop100 wcinput]$ vim word.txt
#在文件中输入如下内容
hadoop yarn
hadoop mapreduce
hadoop
hadoop
#保存退出
  1. 回到Hadoop目录/opt/module/hadoop-3.1.3
  2. 执行程序
[hadoop@hadoop100 hadoop-3.1.3]$ cat wcoutput/part-r-00000
  1. 查看结果
hadoop 2
hadoop  2
mapreduce       1
yarn    1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值