栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hadoop集群架构(hadoop的hdfs)

hadoop集群架构(hadoop的hdfs)

一、创建回收站

(1)编辑配置文件

core-site.xml

添加内容如下


    fs.trash.interval
    10080

10080 代表 10080分钟 即7天 也就是回收站保存7天,7天后删除

(2)重新启动集群进行测试

在hdfs上新建test1、test2文件夹

对test 进行删除操作,操作与显示如下:

[peizk@hadoop sbin]$ hdfs dfs -rm -r /test
2022-03-20 12:15:49,546 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop:9000/test' to trash at: hdfs://hadoop:9000/user/peizk/.Trash/Current/test

查看  回收站

[peizk@hadoop sbin]$ hdfs dfs -ls /user/peizk/.Trash/Current/
Found 1 items
drwxr-xr-x   - peizk supergroup          0 2022-03-20 12:13 /user/peizk/.Trash/Current/test

配置成功

(3)此外还有一种不经过回收站直接删除

语句如下:

[peizk@hadoop sbin]$ hdfs dfs -rm -r -skipTrash /test3
Deleted /test3

此语句在生产中一般不允许使用

二、HDFS一些其他命令

(1)hdfs --help

查看hdfs 下命令

(2) hdfs  dfsadmin

查看安全模式是否开启

[peizk@hadoop sbin]$ hdfs dfsadmin -safemode get
Safe mode is OFF
[peizk@hadoop sbin]$ 

当安全模式关闭时,读和写都是可以的

当安全模式开启时,读可以,写不可以

一般进入安全模式有两种情况

   第一是:被动进入,说明HDFS集群有问题,一般是 集群磁盘空间不够了,此时进入相当于保护模式

   第二是:主动进入,一般是用于维护,保证这段时间HDFS不会有新数据/新文件写入。

(3)hdfs  fsck 

用来查看数据块是否健康,获取文件的block信息和位置信息等

如下查看HDFS根目录

[peizk@hadoop sbin]$ hdfs fsck /
Connecting to namenode via http://hadoop:9870/fsck?ugi=peizk&path=%2F
FSCK started by peizk (auth:SIMPLE) from /10.0.12.8 for path / at Sun Mar 20 12:44:23 CST 2022

Status: HEALTHY
 Number of data-nodes:	1
 Number of racks:		1
 Total dirs:			9
 Total symlinks:		0

Replicated Blocks:
 Total size:	140 B
 Total files:	3
 Total blocks (validated):	2 (avg. block size 70 B)
 Minimally replicated blocks:	2 (100.0 %)
 Over-replicated blocks:	0 (0.0 %)
 Under-replicated blocks:	0 (0.0 %)
 Mis-replicated blocks:		0 (0.0 %)
 Default replication factor:	1
 Average block replication:	1.0
 Missing blocks:		0
 Corrupt blocks:		0
 Missing replicas:		0 (0.0 %)

Erasure Coded Block Groups:
 Total size:	0 B
 Total files:	0
 Total block groups (validated):	0
 Minimally erasure-coded block groups:	0
 Over-erasure-coded block groups:	0
 Under-erasure-coded block groups:	0
 Unsatisfactory placement block groups:	0
 Average block group size:	0.0
 Missing block groups:		0
 Corrupt block groups:		0
 Missing internal blocks:	0
FSCK ended at Sun Mar 20 12:44:23 CST 2022 in 7 milliseconds


The filesystem under path '/' is HEALTHY

(4)hdfs  namenode

  格式化namenode命令如下

hdfs namenode -format  

三、HDFS主从架构

(1)一个名词:元数据 --  metaData

  是由NameNode来维护的包含文件的路径、副本数量、block块所在的服务器位置等信息

例如下

 元数据存储的三种方式

  内存元数据:元数据放在内存中,方便快速读取

   fsimage :元数据镜像文件,内存中的元数据,序列化到磁盘中。存储某一时间段NameNode内存元数据信息。

  edits  :记录用户的一些操作日志、删除请求、上传请求等,可通过日志运算出元数据。

(2)NameNode(NN)名称节点

存储的内容包括:

1、文件的名称

2、文件的目录结构

3、文件的属性(权限、副本数、创建时间等)

***4、一个文件被对应切割的哪些数据块(包括副本的数据块)》》对应分布在哪些DataNode,管理文件系统的命名空间,本质就是维护文件系统树的文件和文件夹。

NameNode 文件存放路径

[peizk@hadoop current]$ pwd
/home/peizk/tmp/dfs/name/current

存放的文件主要为:

     镜像文件:fsimage

    编辑日志文件:edits

(3)NameSecondary(2NN) 第二节点

 NameSecondary 文件存放位置

[peizk@hadoop current]$ pwd
/home/peizk/tmp/dfs/namesecondary/current

(4)DataNode (DN)数据节点

DataNode  文件存放位置

/home/peizk/tmp/dfs/data/current/BP-2057196106-10.0.12.8-1647183603680/current/finalized/subdir0/subdir0

1、存储数据块和数据块的元数据

  主要文件:块   一个块的 默认最大为128M

                    块的元数据

2、每隔一段时间会发送blockreport(块报告)给NN

  dfs.blockreport.intervalMsec    21600000 =6H

   在给NN发送 blockreport(块报告)要检查自己

  dfs.datanode.directoryscan.interval   21600000 = 6H

注意:这两个参数值一定要一样

(5)  NameNode与NameSecondary 工作机制     1.x

为什么要引进2NN如下图

NN工作机制

    1、client 向NN提出上传请求,NN的Edits对上传请求进行记录并返回相对应的元数据信息给Client

    2、client 根据返回的相应元数据,去对应的DN上传数据,当数据上传完成后,DN向client返回相应的结果

   3、 client再将DN返回的结果,再返回给NN,然后NN在MD进行相应记录,并让2NN对fsimage进行相应的更新(合并edits和fsimage)

2NN工作机制(合并更新的流程)

 

关于  CheckPoint

什么是checkpoint,就是2NN合并更新文件的触发时间

主要有两个 

1、是时间指定两次checkpoint的最大时间间隔

fs.checkpoint.period  默认是3600S

2、是针对edits文件的操作次数,比如每1000次上传请求触发一次

(6)NameNode高可靠  2.x~

为了解决 脑裂

引入Zookeeper

四、HDFS优缺点

优点:1、处理海量数据     GB   TB   PB

2、适合批处理

移动计算而不是移动数据,会把数据位置暴露给计算框架

3、高容错

数据自动保存N个副本,增加副本数,提高容错

某一个副本丢失,HDFS内部机制是可以自动恢复的

4、可以构建在廉价机器上

缺点:1、小文件问题,需要工程师去合并小文件

2、不适合毫秒级(实时)

补充:关于小文件问题

a:数据传输到HDFS之前,提前合并

b:数据已经到HDFS,在业务低谷期,去合并,至于如何合并,HAR,CombineFileInputFormat

五、作业

1、了解机架

机架感知  以副本=3为例

首先在客户端所在机架挑出一台主机(有时也会根据容量等)进行副本存储,接着在同一机架,挑选另一台主机进行存储,最后再挑选不同机架的一个主机进行存储

2、sal数字向百位取整,例如6变100,648变700,1100变1200

(1)SELECt
	floor( ( sal + 100 ) / 100 ) * 100 
FROM
	emp

(2)SELECt
	trunc( sal,- 2 ) + 100 
FROM
	emp

3、求取sal,sal+100,和2中变化后的sal,取其中的最大值和最小值

(1)
SELECt
	GREATEST( sal, sal1, sal2 ) AS max_sal,
	LEAST( sal, sal1, sal2 ) AS min_sal 
FROM
	( SELECt sal, sal + 100 AS sal1, trunc( sal,- 2 ) + 100 AS sal2 FROM emp )

(2)
select
case
	when sal>=sal1 then  case when sal>= sal2 then sal  else sal2 end 
	when sal1>sal then  case when sal1>=sal2 then sal1 else sal2 end  
end  as max_sal 
,case
	when sal>=sal1 then  case when sal1>= sal2 then sal2  else sal1 end 
	when sal1>sal then  case when sal>=sal2 then sal2 else sal end  
end  as min_sal 
from 
(
		SELECt
		sal 
		,sal +100  as sal1 
		,trunc( sal,- 2 ) + 100  as sal2  
	FROM
		emp
)

4、emp表,入职日期(hiredate)是当年的第几天,当月的第几天,当周的第几天 

SELECt
	HIREDATE - trunc( HIREDATE, 'yyyy' ) + 1  as year_day 
	,HIREDATE -trunc( HIREDATE, 'mm' ) +1 as month_day
	,to_char(HIREDATE,'d')  as week_day  --星期天为第一天
FROM
	emp

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号