Hadoop(一)概述与配置安装

本文详细介绍了Hadoop的学习要点,包括HDFS、MapReduce和YARN的理解与源码分析,以及Hadoop的基础概述。通过实践操作,讲解了运行环境搭建、Hadoop的运行模式和完全分布式集群的部署,包括虚拟机环境准备、JDK和Hadoop的安装、集群配置、SSH免密登陆等步骤,最后总结了集群启动/停止方式和常见问题。
摘要由CSDN通过智能技术生成

学习一个框架,主要关注这个框架是什么、干什么、原理、怎么用、实地使用场景中可能存在的问题、原因及优化。

大数据开发面试指南

一.Hadoop学习要点

Hadoop 体系是我们学习大数据框架的基石,尤其是 MapReduce、HDFS、Yarn 三驾马车基本垫定了整个数据方向的发展道路。也是后面我们学习其他框架的基础,关于 Hadoop 本身我们主要应该掌握:

  • HDFS架构理解(基础)
  • HDFS源码/工作原理(高级)
  • MapReduce架构理解(基础)
  • MapReduce源码/原理/Shuffle原理(高级)
  • MapReduce二次排序(编程,必选)
  • YARN架构理解(基础)
  • YARN源码/工作原理(高级)

其主要是三方面内容:

1)HDFS

  • 十分熟悉 HDFS 的架构图和读写流程
  • 十分熟悉 HDFS 的配置
  • 熟悉 DataNode 和 NameNode 的作用
  • NameNode 的 HA 搭建和配置,Fsimage 和 Edit Journal 的作用的场景
  • HDFS 操作文件的常用命令
  • HDFS 的安全模式

2)MapReduce

  • 掌握 MapReduce 的工作原理
  • 能用 MapReduce 手写代码实现简单的 WordCount 或者 TopN 算法
  • 掌握 MapReduce Combiner 和 Partitioner的作用
  • 熟悉 Hadoop 集群的搭建过程,并且能解决常见的错误
  • 熟悉 Hadoop 集群的扩容过程和常见的坑
  • 如何解决 MapReduce 的数据倾斜
  • Shuffle 原理和减少 Shuffle 的方法

3)Yarn

  • Yarn 的产生背景和架构
  • Yarn 中的角色划分和各自的作用
  • Yarn 的配置和常用的资源调度策略
  • Yarn 进行一次任务资源调度的过程

二.Hadoop基础概述


关于大数据

什么是大数据?多大算是大数据?其有什么特点?

大数据(BigData) :指无法在一定时间范围内用常规软件工具进行捕捉、管理
和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程
优化能力
海量、高增长率和多样化的信息资产

按顺序给出数据存储单位: bit.、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。

大数据的特点:4V

  • volume 大量
  • velocity 高速
  • variety 多样
  • value 低价值密度

大数据生态体系图

关于Hadoop

Hadoop三大发行版本:Apache、Cloudera、Hortonworks。

  • Apache版本最原始(最基础)的版本,对于入门学习最好(手动挡)。
  • Cloudera内部集成了很多大数据框架。对应产品CDH(自动挡)。
  • Hortonworks文档较好。对应产品HDP。

Hadoop的优势:4高

  • 1)高可靠性:多个数据副本
  • 2)高扩展性:节点方便扩展
  • 3)高效性:MapReduce思想下的并行工作,加快任务处理速度
  • 4)高容错性:能自动将失败任务重新分配

Hadoop官方网站:http://hadoop.apache.org/

Hadoop组成

在这里插入图片描述

  • 1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
  • 2)Hadoop MapReduce:一个分布式的离线并行计算框架。
  • 3)Hadoop YARN:作业调度与集群资源管理的框架。
  • 4)Hadoop Common:支持其他模块的工具模块。

Hadoop2.x 之后,将之前的MapReduce部分分为MapReduce与YARN两个部分,其目的是为了解耦。

解耦的一个好处就是可以实现MapReduce的可插拔,从而更加方便地替换计算框架
在这里插入图片描述

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

  • 1)Map阶段并行处理输入数据
  • 2)Reduce阶段对Map结果进行汇总
    在这里插入图片描述
    YARN架构:
  • 1)ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
  • 2)NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
  • 3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
  • 4)Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

在这里插入图片描述

三.Hadoop实践操作*


1. 运行环境搭建

Hadoop的运行环境安装主要包括三大部分:基础的集群操作系统的准备、具体的运行环境安装——包括JDK和Hadoop两个部分。

1)虚拟机环境准备

①单台最小安装的虚拟机:内存4G,硬盘50G,并安装必要环境:

sudo yum install -y epel-release
sudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

如果有需要,修改YUM源为国内镜像

②修改虚拟机的静态IP

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

③修改主机名

sudo hostnamectl --static set-hostname hadoop101

④配置主机名称映射,打开/etc/hosts

sudo vim /etc/hosts

⑤修改windows的hosts文件

  • 路径:C:\Windows\System32\drivers\etc

⑥关闭虚拟机防火墙

sudo systemctl stop firewalld
sudo systemctl disable firewalld

⑦创建新用户,并重启

sudo useradd zxy
sudo passwd zxy

reboot

⑧配置atguigu用户具有root权限

visudo

修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
atguigu   ALL=(ALL)     ALL

⑨在/opt目录下创建下创建module、software文件夹;并修改module、software文件夹的所有者

sudo mkdir module
sudo mkdir software

sudo mkdir /opt/module /opt/software
sudo chown zxy:zxy /opt/module /opt/software

⑩关机照快照,再克隆两台虚拟机

  • 修改其IP,主机名

2)安装JDK

①卸载现有JDK

rpm -qa | grep -i java | xargs -n1 sudo rpm -e –nodeps
  • grep -i 或 --ignore-case : 忽略字符大小写的差别
  • xargs是给命令传递参数的一个过滤器:
    • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的

②将JDK导入到opt目录下面的software文件夹下

③解压JDK到/opt/module目录下

tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/

④配置JDK环境变量

  • 新建/etc/profile.d/my_env.sh文件:一般用户对该文件夹只有只读权限,所以需要sudo
sudo vim /etc/profile.d/my_env.sh
  • 在my_env.sh文件中添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
  • 保存后退出
  • 重启xshell窗口,让环境变量生效,或者运行命令
source /etc/profile.d/my_env.sh

⑤测试JDK是否安装成功

java -version

如果能看到版本信息,则Java正常安装;否则试着重启。

3)安装Hadoop

Hadoop下载地址:

  • https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3

①进入到Hadoop安装包的路径下,解压安装文件到/opt/module下面

[zxy@hadoop101 ~]$ cd /opt/software/
[zxy@hadoop101 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
[zxy@hadoop101 software]$  ls /opt/module/
hadoop-3.1.3

②添加Hadoop环境变量,并执行source命令

[zxy@hadoop101 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh

在profile文件末尾添加JDK路径:(shift+g)

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

③测试是否安装成功

[zxy@hadoop101 hadoop-3.1.3]$ source /etc/profile.d/my_env.sh
[zxy@hadoop101 hadoop-3.1.3]$ hadoop version
Hadoop 3.1.3

Hadoop目录结构

[zxy@hadoop102 hadoop-3.1.3]$ ll
总用量 180
drwxr-xr-x. 2 zxy zxy    236 4月   2 15:50 bin
drwxrwxr-x. 4 zxy zxy     30 3月  23 10:16 data
drwxr-xr-x. 3 zxy zxy     20 9月  12 2019 etc
drwxr-xr-x. 2 zxy zxy    106 9月  12 2019 include
drwxr-xr-x. 3 zxy zxy     20 9月  12 2019 lib
drwxr-xr-x. 4 zxy zxy    288 9月  12 2019 libexec
-rw-rw-r--. 1 zxy zxy 147145 9月   4 2019 LICENSE.txt
drwxrwxr-x. 3 zxy zxy   4096 4月   2 15:46 logs
-rw-rw-r--. 1 zxy zxy  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 zxy zxy   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 zxy zxy   4096 9月  12 2019 sbin
drwxr-xr-x. 4 zxy zxy     31 9月  12 2019 share
  • 1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
  • 2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
  • 3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
  • 4)sbin目录:存放启动或停止Hadoop相关服务的脚本
  • 5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

2.Hadoop运行模式

Hadoop运行模式:

  • 1)本地模式(默认模式):不需要启用单独进程,直接可以运行,测试和开发时使用。
  • 2)伪分布式模式:等同于完全分布式,只有一个节点。
  • 3)完全分布式模式:多个节点一起运行

3.完全分布式部署Hadoop集群

完全分布式模式配置流程:

  • 1)准备3台
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值