Hadoop 3.1.3 本地、伪分布、完全分布环境搭建 学习笔记

Hadoop

大数据特点(4V)

1、Volume(大量)

2、Velocity(告诉)

3、Variety(多样)

4、Value(低价值密度)

hadoop的优势

高可靠性:多个数据副本,不会导致数据丢失

高扩展性:横向扩展

高效性:Hadoop并行工作,加快处理速度

高容错性:能够自动将失败的任务重新分配

一、Hadoop组成(重点)

1.x HDFS(数据存储)+ MapReduce(计算 + 资源调度) + Common(辅助工具)

2.x HDFS(数据存储)+ MapReduce(计算)+ Yarn(资源调度)+ Common(辅助工具)

解偶

Modules

The project includes these modules:

  • Hadoop Common: The common utilities that support the other Hadoop modules.
  • Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
  • Hadoop YARN: A framework for job scheduling and cluster resource management.
  • Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
  • Hadoop Ozone: An object store for Hadoop.
HDFS架构

HDFS(Hadoop Distributed File System)

1.NameNode(nn): 存储文件的 元数据,如文件名、文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表块所在的DataNode等。

2.DataNode(dn): 在本地文件系统存储文件块数据,以及块数据的校验和

​ ——真实数据

3.Secondary NameNode(2nn): 每隔一段时间对NameNode元数据备份。

​ ——辅助NameNode工作,不能替换

YARN架构

1.ResourceManager(RM) ——管理集群中所有资源(每个DataNode上的资源)

(1)处理客户端请求

(2)启动或监控ApplicationMaster

(3)监控Nodemanager

(4)资源的分配和调度

2.NodeManager(NM) ——管理单个节点的资源(单个DataNode资源)

(1)管理单个节点上的资源

(2)处理来自ResourceManager的命令

(3)处理来自ApplicationMaster的命令

3.ApplicationMaster(AM) ——每个MapReduce(MR)任务会启动一个MrAppMaster, 负责为MapReduce向ResourceManager申请资源(MrAppMaster是AM的子类)

(1)负责数据的切分

(2)为应用程序申请资源并分配给内部的任务

(3)任务的监控与容错

4.Container:——对资源的封装,防止资源被侵占

Containe是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等

举例:  
运行一个MapReduce任务,MapReduce需要启动2个MapTask 和 1个 ReduceTask,也就是总共3个Task

首先会启动一个MrAppMaster ,需要用到资源,假如2G内存,此时RM会在有资源的NM上分配资源,运行MrAppMaster[此时就有1个container]
接下来 MrAppMaster 会根据MapReduce的情况, 比如需要总共启动3个Task , MrAppMaster会向RM申请资源,假如
一个Task需要1G的内存, RM会在有资源的NM上分配, 来运行Task. 每个Task单独运行,占用1G内存。此时又有3个Container

需要解释的是 MrAppMaster和所有的Task可以运行在不同的服务器.

最后当所有的Task都运行完成后,MrAppMaster会想RM注销自己,RM回收资源。
MapReduce架构

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

1)Map阶段并行处理输入数据

2)Reduce阶段对Map结果进行汇总

大数据生态体系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FhGJIfeB-1587564742487)(/Users/vanas/Library/Application Support/typora-user-images/截屏2020-04-08下午6.44.05.png)]

二、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

修改克隆虚拟机的静态IP(按照自己机器的网络设置进行修改)

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

2)修改主机名:

修改主机名称

sudo vim /etc/hostname

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

sudo vim /etc/hosts

3)关闭防火墙

sudo systemctl stop firewalld

sudo systemctl disable firewalld

4)创建用户

sudo useradd vanas

sudo passwd 123456

5)配置用户具有root权限

sudo vi /etc/sudoers

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

## Allow root to run any commands anywhere

root   ALL=(ALL)   ALL

Vanas	 ALL=(ALL)   NOPASSWD:ALL

主机联动host映射文件之前已经写好就不用再改了

切换用户

su vanas

6)在/opt目录下创建文件夹

注意目前用户已经不是root

在/opt目录下创建module、software文件夹

sudo mkdir module

sudo mkdir software

修改module、software文件夹的所有者

sudo mkdir /opt/module /opt/software

sudo chown vanas:vanas /opt/module /opt/software

记得重启

reboot

安装JDK

  1. 将JDK安装包上传到Linux /opt/software目录下

  2. 解压JDK到/opt/module目录下

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

3)配置JDK环境变量

新建/etc/profile.d/my_env.sh文件

sudo vim /etc/profile.d/my_env.sh

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

保存后退出

:wq
  1. 测试JDK是否安装成功
source /etc/profile	
java -version

安装Hadoop

Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

  1. 将hadoop安装包上传到/opt/software目录下

  2. 解压安装文件到/opt/module下面

 tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
  1. 查看是否解压成功
 ls /opt/module/
 hadoop-3.1.3
  1. 将Hadoop添加到环境变量

获取Hadoop安装路径

pwd

/opt/module/hadoop-3.1.3

打开/etc/profile.d/my_env.sh文件(shift+g)

#JAVA_HOME
JAVA_HOME=/opt/module/jdk1.8.0_212
#HADOOP_HOME
HADOOP_HOME=/opt/module/hadoop-3.1.3
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH JAVA_HOME HADOOP_HOME

保存后退出

:wq

让修改后的文件生效

source /etc/profile
  1. 测试是否安装成功
hadoop version
Hadoop 3.1.3
  1. 重启(如果Hadoop命令不能用再重启)
sync
sudo reboot

伪分布式

启动HDFS

(1)配置集群

[vanas@hadoop132 ~]$ cd /opt/
[vanas@hadoop132 opt]$ cd module/hadoop-3.1.3/etc/hadoop/
[vanas@hadoop132 hadoop]$ vim hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_212

[vanas@hadoop132 hadoop]$ vim core-site.xml 
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
    <value>hdfs://hadoop132:9820</value>
</property>

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


[vanas@hadoop132 hadoop]$ vim hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

格式化后多处data 和logs

[vanas@hadoop132 hadoop]$ cd ..
[vanas@hadoop132 etc]$ cd ..
[vanas@hadoop132 hadoop-3.1.3]$ ll
总用量 204
drwxr-xr-x. 2 vanas vanas   4096 9月  12 2019 bin
drwxr-xr-x. 3 vanas vanas   4096 9月  12 2019 etc
drwxr-xr-x. 2 vanas vanas   4096 9月  12 2019 include
drwxrwxr-x. 2 vanas vanas   4096 4月   8 16:43 input
drwxr-xr-x. 3 vanas vanas   4096 9月  12 2019 lib
drwxr-xr-x. 4 vanas vanas   4096 9月  12 2019 libexec
-rw-rw-r--. 1 vanas vanas 147145 9月   4 2019 LICENSE.txt
-rw-rw-r--. 1 vanas vanas  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 vanas vanas   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 vanas vanas   4096 9月  12 2019 sbin
drwxr-xr-x. 4 vanas vanas   4096 9月  12 2019 share
[vanas@hadoop132 hadoop-3.1.3]$ hdfs namenode -format

[vanas@hadoop132 hadoop-3.1.3]$ ll
总用量 212
drwxr-xr-x. 2 vanas vanas   4096 9月  12 2019 bin
drwxrwxr-x. 3 vanas vanas   4096 4月  10 09:49 data
drwxr-xr-x. 3 vanas vanas   4096 9月  12 2019 etc
drwxr-xr-x. 2 vanas vanas   4096 9月  12 2019 include
drwxrwxr-x. 2 vanas vanas   4096 4月   8 16:43 input
drwxr-xr-x. 3 vanas vanas   4096 9月  12 2019 lib
drwxr-xr-x. 4 vanas vanas   4096 9月  12 2019 libexec
-rw-rw-r--. 1 vanas vanas 147145 9月   4 2019 LICENSE.txt
drwxrwxr-x. 2 vanas vanas   4096 4月  10 09:49 logs
-rw-rw-r--. 1 vanas vanas  21867 9月   4 2019 NOTICE.txt
-rw-rw-r--. 1 vanas vanas   1366 9月   4 2019 README.txt
drwxr-xr-x. 3 vanas vanas   4096 9月  12 2019 sbin
drwxr-xr-x. 4 vanas vanas   4096 9月  12 2019 share

(2)启动、测试集群增、删、查

注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps

[vanas@hadoop132 hadoop-3.1.3]$ hdfs --daemon start namenode
[vanas@hadoop132 hadoop-3.1.3]$ hdfs --daemon start datanode
[vanas@hadoop132 hadoop-3.1.3]$ jps
14027 Jps
13149 NameNode
13694 DataNode
[vanas@hadoop132 hadoop-3.1.3]$ hdfs dfs -mkdir /input
[vanas@hadoop132 hadoop-3.1.3]$ hdfs dfs -put input/my.txt /input
[vanas@hadoop132 hadoop-3.1.3]$ hdfs dfs -ls /
Found 1 items
drwxr-xr-x   - vanas supergroup          0 2020-04-10 11:57 /input      1
[vanas@hadoop132 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

web端查看HDFS文件系统

http://hadoop132:9870

启动YARN并运行MapReduce程序

(1)配置集群在YARN上运行MR

[vanas@hadoop132 logs]$ cd ..
[vanas@hadoop132 hadoop-3.1.3]$ cd etc/hadoop/
[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值