1.Hadoop概述
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据存储和海量数据的分析计算问题。
2.Hadoop组成
2.1.Hadoop 1.x和Hadoop 2.x的区别
MapReduce(计算+资源调度) |
HDFS(数据存储) |
Common(辅助工具) |
MapReduce(计算) |
Yarn(资源调度) |
HDFS(数据存储) |
Common(辅助工具) |
在 Hadoop 1.x 时代,Hadoop 中的 MapReduce 同时处理业务逻辑运算和资源调度,耦合性较大。
在 Hadoop 2.x 时代,增加了 Yarn。Yarn 只负责资源的调度,MapReduce 只负责运算。
2.2.HDFS框架概述
2.2.1.介绍HDFS
- HDFS(Hadoop Distributed File System)是Apache Hadoop项目的一个核心组件,用于存储大规模数据集。
- 它设计用于在普通硬件上提供高吞吐量访问数据。
2.2.2.架构
- HDFS采用主从架构,由一个NameNode和多个DataNode组成。
- NameNode负责管理文件系统的命名空间和客户端对文件的访问。
- DataNode负责实际存储数据块并执行数据读写操作。
2.2.3.数据复制
- HDFS通过数据复制实现容错性。默认情况下,每个数据块会被复制到多个DataNode上。
- 当某个DataNode失败时,系统可以从备份的副本中读取数据,确保数据可靠性和持久性。
2.2.4.数据块管理
- HDFS将大文件分割成固定大小的数据块,并存储在不同的DataNode上。
- 数据块的默认大小为128MB(可以配置)。
2.2.5.用途和应用
- HDFS将大文件分割成固定大小的数据块,并存储在不同的DataNode上。
- 数据块的默认大小为128MB(可以配置)。
2.3.YARN架构概述
Yet Another Resource Negotiator(YARN), 是Hadoop的资源管理器
- ResourceManager(RM): 整个集群资源(内存,cpu)的老大
- NodeManager(NM): 单个节点服务器资源的老大
- AplicationMaster(AM): 单个任务运行的老大
- Container: 容器,相当于一台独立的服务器, 里面封装了任务运行所需要的资源
2.4.MapReduce架构概述
它会有两个阶段:
- Map: 把任务分发到每台机器上去做运算, 并行处理输入数据
- Reduce: 对各个机器上Map的结果汇总返回
2.5.Hadoop模块之间的关系
➢ MapReduce计算需要的数据和产生的结果需要HDFS来进行存储
➢ MapReduce的运行需要由Yarn集群来提供资源调度。
3.Hadoop集群搭建
3.1.集群简介
Hadoop集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
3.2.HDFS集群
NameNode、DateNode、SecondaryNode
3.3.YARN集群
ResourceManager、NodeManager
3.4.集群搭建方式
Standalone mode(单机模式)
单机模式, 1个机器上运行HDFS的NameNode和DataNode、YARN的ResourceManager和NodeManager,主要用于学习和调试。
Cluster mode(集群模式)
集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。
4.简单Linux命令复习
ls:列出目录内容。
用法:ls [options] [directory]
示例:ls -l(以详细列表形式显示目录内容)
cd:更改当前工作目录。
用法:cd [directory]
示例:cd /home/user/Documents(进入指定目录)
pwd:显示当前工作目录的路径。
用法:pwd
示例:/home/user
mkdir:创建新目录。
用法:mkdir [directory]
示例:mkdir my_folder(创建名为"my_folder"的新目录)
rm:删除文件或目录。
用法:rm [options] [file/directory]
示例:rm file.txt(删除名为"file.txt"的文件)
cp:复制文件或目录。
用法:cp [options] [source] [destination]
示例:cp file.txt new_location/(将"file.txt"复制到新位置)
mv:移动文件或目录,也可用于重命名文件或目录。
用法:mv [options] [source] [destination]
示例:mv file.txt new_location/(将"file.txt"移动到新位置)
cat:连接文件并打印到标准输出设备上。
用法:cat [file]
示例:cat file.txt(显示"file.txt"文件的内容)
grep:在文件中搜索指定模式的文本。
用法:grep [options] pattern [file]
示例:grep "keyword" file.txt(在"file.txt"中搜索包含"keyword"的行)
chmod:修改文件或目录的权限。
用法:chmod [options] mode file
示例:chmod 755 script.sh(将"script.sh"文件的权限设置为755)