HDFS拥有超大型的数据量,并提供更轻松地访问。为了存储这些庞大的数据,这些文件都存储在多台机器。这些文件都存储以冗余的方式来拯救系统免受可能的数据损失,在发生故障时。 HDFS也使得可用于并行处理的应用程序。
基本介绍
特点:
1、它适用于在分布式存储和处理。
2、Hadoop提供的命令接口与HDFS进行交琵
3、名称节点和数据节点帮助用户内置的服务器能够轻松地检查集群的状态。
4、流式访问文件系统数据。
5、HDFS提供了文件权限和验证。
名称节点 - Namenode
名称节点是包含GNU/Linux操作系统和软件名称节点的普通硬件。它是一个可以在商品硬件上运行的软件。
具有名称节点系统作为主服务器,它执行以下任务:
1、管理文件系统命名空间。
2、规范客户端对文件的访问。
3、它也执行文件系统操作,如重命名,关闭和打开的文件和目录。
数据节点 - Datanode Datanode
具有GNU/Linux操作系统和软件Datanode的普通硬件。对于集群中的每个节点(普通硬件/系统),有一个数据节点。这些节点管理数据存储在它们的系统。
1、数据节点上的文件系统执行的读写操作,根据客户的请求。
2、还根据名称节点的指令执行操作,如块的创建,删除和复制。
块
一般用户数据存储在HDFS文件。在一个文件系统中的文件将被划分为一个或多个段和/或存储在个人数据的节点。这些文件段被称为块。换句话说,数据的HDFS可以读取或写入的最小量被称为一个块。缺省的块大小为64MB,但它可以增加按需要在HDFS配置来改变。
HDFS的目标
故障检测和恢复:
由于HDFS包括大量的普通硬件,部件故障频繁。因此HDFS应该具有快速和自动故障检测和恢复机制。
巨大的数据集:
HDFS有数百个集群节点来管理其庞大的数据集的应用程序。
数据硬件:
请求的任务,当计算发生不久的数据可以高效地完成。涉及巨大的数据集特别是它减少了网络通信量,并增加了吞吐量。
来源: https://www.yiibai.com/hadoop/hadoop_hdfs_overview.html
Hadoop HDFS命令操作
Hadoop HDFS的文件列表
1、查询
1)、"hdfs dfs -ls /"执行会列出/目录下的文件和目录
root:hadoop2.9 home$ bin/hdfs dfs -ls /
Found 2 items
drwx-wx-wx - root supergroup 0 2019-01-27 10:29 /tmp
drwxr-xr-x - root supergroup 0 2019-01-27 10:48 /xytest
2)、“hdfs dfs -ls -R /”
这条会列出/目录下的左右文件,由于有-R参数,会在文件夹和子文件夹下执行ls操作。
root:hadoop2.9 home$ bin/hdfs dfs -ls -R /
drwx-wx-wx - root supergroup 0 2019-01-27 10:29 /tmp
-rw-r--r-- 1 root supergroup 311 2019-01-27 10:29 /tmp/file.txt
drwx-wx-wx - root supergroup 0 2019-01-26 23:36 /tmp/hive
drwxr-xr-x - root supergroup 0 2019-01-27 10:48 /xytest
-rw-r--r-- 1 root supergroup 311 2019-01-27 10:48 /xytest/file.txt
2、添加文件夹
hdfs dfs -mkdir -p <目录>
#创建目录
root:hadoop2.9 home$ bin/hdfs dfs -mkdir -p /xytest/testdata001/
#查看指定目录
root:hadoop2.9 home$ bin/hdfs dfs -ls -R /xytest
drwxr-xr-x - root supergroup 0 2019-01-27 10:40 /xytest/testdata001
3、上传文件
hdfs dfs -put <本地文本> <dfs目录位置>
root:hadoop2.9 home$ bin/hdfs dfs -put ./file.txt /xytest/testdata001/
root:hadoop2.9 home$ bin/hdfs dfs -ls -R /xytest
drwxr-xr-x - root supergroup 0 2019-01-27 10:43 /xytest/testdata001
-rw-r--r-- 1 root supergroup 311 2019-01-27 10:43 /xytest/testdata001/file.txt
4、查看文件
hdfs dfs -cat <文件目录>
root:hadoop2.9 home$ bin/hdfs dfs -cat /xytest/username.txt
hadoop username
5、下载dfs文件到本地
hdfs dfs -get <dfs文件位置> <本地文件位置>
root:hadoop2.9 home$ bin/hdfs dfs -get /xytest/testdata001/file.txt ./file02.txt
6、删除文件及目录
hdfs dfs -rm -f <dfs文件位置>
hdfs dfs -rm -r <dfs目录位置>
root:hadoop2.9 home$ bin/hdfs dfs -rm -f /xytest/testdata001/file.txt
Deleted /xytest/testdata001/file.txt
root:hadoop2.9 home$ bin/hdfs dfs -rm -r /xytest/testdata001
Deleted /xytest/testdata001
7、查看版本
root:hadoop2.9 home$ bin/hdfs version
Hadoop 2.9.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 826afbeae31ca687bc2f8471dc841b66ed2c6704
Compiled by ajisaka on 2018-11-13T12:42Z
Compiled with protoc 2.5.0
From source with checksum 3a9939967262218aa556c684d107985
This command was run using /Users/hadoop/hadoop2.9/share/hadoop/common/hadoop-common-2.9.2.jar
8、集群状态
由于采用的是单机模式安装,所以datanodes只存在一个节点
root:hadoop2.9 home$bin/hdfs dfsadmin -report
Configured Capacity: 249795969024 (232.64 GB)
Present Capacity: 6681300992 (6.22 GB)
DFS Remaining: 6681264128 (6.22 GB)
DFS Used: 36864 (36 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Pending deletion blocks: 0
-------------------------------------------------
Live datanodes (1):
Name: 127.0.0.1:50010 (localhost)
Hostname: localhost
Decommission Status : Normal
Configured Capacity: 249795969024 (232.64 GB)
DFS Used: 36864 (36 KB)
Non DFS Used: 242852524032 (226.17 GB)
DFS Remaining: 6681264128 (6.22 GB)
DFS Used%: 0.00%
DFS Remaining%: 2.67%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sun Jan 27 14:21:06 CST 2019
Last Block Report: Sun Jan 27 10:48:20 CST 2019
9、命令帮助指定
root:hadoop2.9 home$ bin/hdfs dfs -help