HDFS基础
一. HDFS分布式
是一种主从结构模型,一个主节点控制多个子节点
主节点:主要是用来保存数据块和各个子节点之间的映射关系,并不会保存具体的文件数据
子节点:主要是用来保存文件切片后具体的数据块
HDFS文件存储过程:
1. 发起一个文件存储请求
2. 从主节点中获取子节点的分配列表
3. 去具体的子节点中写数据
4. 数据写完之后就进行提交和关闭
HDFS文件读取过程:
1. 发起一个文件读取的请求
2. 从主节点中获取文件的数据块和对应保存的位置
3. 从子节点读取对应的数据块内容
4. 关闭
二. HDFS 操作的常见命令
语法前提:hadoop平台必须处于开启状态
语法:hdfs 子命令 命令
注意:HDFS 文件系统的根目录“/”
1. 创建文件夹
hdfs dfs -mkdir /demo
2. 显示某一个文件夹下面的文件信息
hdfs dfs -ls /
3. 将一个文件上传到 hdfs 平台
hdfs dfs -put 文件名 /demo
4. 查看文件中的内容
hdfs dfs -cat 文件路径
5. 将 hdfs 上的文件下载到本地
hdfs dfs -get 文件
6. 将 hdfs 上的文件进行复制
hdfs dfs -cp 原路径 复制后的路径
7. 将 hdfs 上的文件进行移动或者重命名
hdfs dfs -mv 原路径 移动后的路径
8. 将 hdfs 上的文件进行删除
hdfs dfs -rm -r 要删除的文件
9. 修改 hdfs 上的文件权限
hdfs dfs -chmod [-R] 文件的路径
注意:-R 代表修改的时候会将该文件夹以及文件下面的所有文件权限全部修改
使用浏览器来访问hadoop中的hdfs文件系统
1. 必须先关闭虚拟机中的防火墙
防火墙操作的命令
(1)查看防火墙状态
systemctl status firewalld.service
(2)关闭防火墙
systemctl stop firewalld.service
(3)开启防火墙
systemctl start firewalld.service
2. 在浏览器输入以下地址进行访问
虚拟机ip地址:50070
注意:50070是hadoop2.x版本的端口号,在hadoop3.x版本的端口号为:9870
访问Mapreduce程序的一些进程信息的地址
虚拟机ip地址:8088
三. mapreduce
是一种离线的分布式计算框架,也是一种编程模型
主要是用来进行大规模的数据集的分布式并行运算,采用“分而治之”的思想,主要就是将大规模的数据集进行切片然后分发给主节点
特点:
易于编程
良好的扩展性
高容错性
适合PB级以上海量数据的离线处理
Mapreduce运行过程:
1. 输入文件被切分成多个块,每一个块会对应一个mapTask进行处理
2. map阶段的输出结果会先保存到缓冲区中,然后由缓冲区再写入到磁盘上,默认的缓冲区是100M,溢出的百分比是80%,也就是说当缓冲区的数据达到了80M则会将数据写入磁盘,不超过80M最终也会被写入到磁盘上
3. 写到磁盘上的数据最终都变成了一个个的中间文件,在磁盘上写数据的时候会对数据进行分区排序
4. 如果map产生了多个中间文件,则最终要将多个文件合并成1个文件,将相同分区的都放到一起,也就是shuffle
5. 将shuffle之后的结果输出给reduce,相同分区的数据会进入同一个reduce进行合并处理
6. 最后将reduce结果输出
四. hive
是一个处理hdfs上的数据的工具,并不是一个数据库,因为他本身不会保存任何数据,只是借助于类sql(HQL)语句对hdfs上的数据进行处理
注意:要使用hive则必须保证hadoop平台是正常启动的状态
hive连接方式:
方式一:使用hive自己的client客户端工具进行连接
直接使用命令:hive
方式二:使用JDBC进行连接:该种方式主要使用java代码进行连接
方式三:使用其他的客户端工具进行连接
前提条件:先要启动hive的对外服务器
hiveserver2
注意:启动成功之后,启动窗口一致保持,不能结束进程
由于hadoop2.X的版本中添加了权限的控制,所以需要在进行beeline连接之前进行权限的添加。
进入hadoop安装路径,找到核心配置文件:core-site.xml
打开配置文件添加以下内容:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
然后保存退出
停止hadoop stop-all.sh
启动hadoop start-all.sh
启动hive服务器
hiveserver2
修改HDFS上的文件的访问权限 hdfs dfs -chmod -R 777 /
使用beeline工具进行连接:beeline -u jdbc:hive2://master3:10000/default
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?