📙Hadoop是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
主要解决,海量数据的存储和海量数据的分析计算问题。
广义上来说,Hadoop通常是指一个更广泛的概念---Hadoop生态圈。
Hadoop1.x、2.x、3.x区别
Hadoop1.x组成 | Common(辅助工具) | HDFS(数据存储) | MapReduce(计算+资源调度) | |
Hadoop2.x组成 | Common(辅助工具) | HDFS(数据存储) | Yarn(资源调度) | MapReduce(计算) |
Hadoop3.x组成 | Hadoop3.x在组成上没有变化 |
HDFS架构概述
Hadoop Distrributed File System,简称HDFS,是一个分布式文件系统。
NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
DataNode(dn):在本地系统存储文件块数据,以及块数据的校验和。
Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。
YARN架构概述
Yet Another Resource Negotiator 简称YARN,另一种资源协调者,是Hadoop的资源管理器。
ResourceManager(RM):整个集群资源(内存、CPU等)的老大。
NodeManager(NM):单个节点服务器资源老大。
ApplicationMaster(AM):单个任务运行的老大。
Container:容器,相当一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce。
Map阶段并行处理输入数据。
Reduce阶段对Map结果进行汇总。
Hadoop运行环境搭建
安装虚拟机
安装好虚拟机后下载拓展工具包
yum install -y epel-release
关闭防火墙,关闭防火墙开机自启
systemctl stop firewalld
systemctl disable firewalld.service
卸载虚拟机自带的JDK,安装自己需要的JDK版本
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
rpm -qa:查询安装的所有rpm软件包
grep -i:忽略大小写
xargs -n1:表示每次只传递一个参数
rpm -e --nodeps:强制卸载软件
安装好后设置JDK环境变量
cd /etc/profile.d/ #开机会遍历的脚本目录
vim my_env.sh #新建我们自己的脚本
-----------------------------------------------------
#JAVA_HOME
export JAVE_HOME= 自己安装的JDK目录的路径位置
export PATH=$PATH:$JAVE_HOME/bin #在环境变量中添加JAVEbin路径
------------------------------------------------------
source /etc/profile #重新加载profile文件
配置Hadoop环境变量
vim my_env.sh
------------------------------------------------------------
#HADOOP_HOME
export HADOOP= 自己安装的Hadoop目录的路径位置
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:HADOOP_HOME/sbin
------------------------------------------------------------
source /etc/profile
Hadoop有三种运行模式
本地模式:数据存储在Linux本地
伪分布式:数据存储在HDFS
完全分布式:数据存储在HDFS/多台服务器工作
hadoop演示统计文本内各单词次数
新建文本
vim word.txt
----------------------------------
aa aa
cc cc
dd
-----------------------------------
运行hadoop进行统计
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount word.txt ./wcoutput
运行share下的hadoop下的mapreduce中的hadoop-mapreduce-examples-3.1.3.jar的wordcount功能来统计word.txt单词数并输出到wcoutput文件夹中