大数据学习笔记(一):Hadoop笔记2

发布于:2022-08-05 ⋅ 阅读:(314) ⋅ 点赞:(0)

提示:有一些是参考了他人的总结,第二份笔记主要是对HDFS进行一个总结,后续将对mapreduce及其他环节进行详细的介绍和总结,整个大数据的路线将以python为主,有错误的地方欢迎批评指正。


大数据学习笔记(1):Hadoop笔记二

第二部分主要是对HDFS的学习


`

一、HDFS

HDFS(Hadoop distributed file system):分布式文件系统,主要用来存储海量的数据(通过目录树来定位文件)
此外:适合一次写入,多次读取,并且不支持文件的修改。只适合用来做数据分析,不适合做网盘应用

1.简介

需要一种系统来管理多台机器上的文件,这个就叫做分布式文件管理系统,HDFS是典型的一种。

2.优缺点

2.1优点

1.高容错性:

(1)数据多副本保存(一般为3)
(2)某个副本丢失后自动恢复

2.适合处理大数据:

(1)处理PB级大数据
(2)处理大规模文件

3.可构建在廉价机器上

2.2缺点

1.不适合低延迟数据访问:

2.无法高效存储大量小文件

(1)存储大量小文件会占用NM内存来进行存储文件目录及块信息。(NM内存总是有限的)
(2)小文件存储的寻址时间会超过读取时间

3.不支持并发写入,文件修改

(1)一个文件只能一个写,不允许多线程同时写
(2)仅支持数据append(追加),不支持文件随机修改

二、HDFS架构

1.HDFS架构

HDFS架构

1.NameNode(nn):master

(1)管理HDFS的命名空间
(2)配置副本
(3)处理客户端client的请求
(4)维护文件名→block映射关系
(5)维护block→dn映射关系

2.DataNode(dn):slave

(1)存储实际数据块
(2)执行数据块的读写操作

3.client:客户端

(1)文件切分。文件上传至HDFS时,client将文件切分成一个一个的block,之后上传
(2)与NM交互,获取文件位置信息
(3)与DN交互,读取或者写入数据
(4)提供一些命令来管理HDFS,例如将NM格式化
(5)通过命令来访问HDFS,进行增减删查

4.Secondary NameNode(SNN):不是NM备份

(1)辅助NM,分担工作量,eg:定期合并Fsimage和Edits,并推送给NM
(2)紧急情况下可辅助恢复NM
(3)与DN交互,读取或者写入数据
(4)提供一些命令来管理HDFS,例如将NM格式化
(5)通过命令来访问HDFS,进行增减删查

2.HDFS参数等

HDFS中文件在物理上是分块存储(Block),可由(dfs.blocksize)配置。默认大小在老版本是64M,在2.0中是128M.

1.block不可设太小或者太大:

(1)太小的话会增加寻址时间
(2)太大的话,从磁盘传输数据的时间会明显大于定位这个块开始位置的时间,导致程序处理数据时会很慢。

三、HDFS实操

需要先进行相关软件的安装配置具体包括。

软件 版本
jdk 1.8.0
Hadoop 2.6.5

1.指令准备:

[root@master sbin]# cd $HADOOP_HOME
[root@master hadoop-2.6.5]# cd sbin/
[root@master sbin]# start-all.sh
[root@master sbin]# jps
#master节点
1689 SecondaryNameNode
1834 ResourceManager
2107 Jps
1484 NameNode
#slave节点
1440 Jps
1221 DataNode
1323 NodeManager

2.指令:
(1)help

[root@master sbin]# hadoop fs -help

(2)ls:目录显示

[root@master sbin]# hadoop fs -ls /

(3)mkdir:创建目录

[root@master sbin]# hadoop fs -mkdir /test_0
drwxr-xr-x   - root supergroup          0 2022-08-05 10:38 /test_0
[root@master sbin]# hadoop fs -mkdir -p /test_0/test_0_0
drwxr-xr-x   - root supergroup          0 2022-08-05 10:39 /test_0/test_0_0

(4)put:上传

[root@master test_0]# hadoop fs -put /root/test_0/text_0.txt /test_0/test_0_0
-rw-r--r--   3 root supergroup       1666 2022-08-05 10:45 /test_0/test_0_0/text_0.txt

(5)cat:查看

[root@master test_0]# hadoop fs -cat /test_0/test_0_0/text_1.txt
11111
22222

(6)rmr:递归删除

[root@master test_0]# hadoop fs -rmr /test_0/test_0_0/text_1.txt

(7)get:下载

[root@master test_0]# hadoop fs -get /test_0/test_0_0/text_1.txt /root/test_0/

(8)cp:复制

[root@master test_0]# hadoop fs -cp /test_0/test_0_0/text_0.txt /test_0/

(9)mv:移动

[root@master test_0]# hadoop fs -mv /test_0/test_0_0/text_0.txt /test_0/

(9)getmerge:合并下载

(py27) [root@master test_0]# hadoop fs -getmerge /test_0/test_0_0/* /root/test_0/te
xt_0.txt

(10)tail:尾部查看

[root@master test_0]# hadoop fs -tail /test_0/test_0_0/text_1.txt

(11)du:文件大小查看

[root@master test_0]# hadoop fs -du /test_0/test_0_0/text_0.txt
1666  /test_0/test_0_0/text_0.txt
[root@master test_0]# hadoop fs -du -h /test_0/test_0_0/text_0.txt
1.6 K  /test_0/test_0_0/text_0.txt

总结

第二节主要是对HDFS进行整理,后续会对mapreduce环节进行一个详细的总结整理。整条路线及后续的环节将主要以python作为编程语言进行实战。有不对的地方欢迎指正。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到