【Hadoop】2、HDFS以及HDFS命令

本文深入解析了Hadoop Distributed File System(HDFS),介绍了其架构、工作原理及数据存取模式。HDFS采用一次写入多次读取的方式,适用于大数据处理,通过集群架构存储大数据文件,利用Streaming存取数据集。文章还详细解释了HDFS的存储架构,包括区块划分、副本策略和机架感知功能,以及提供了HDFS常用命令和配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是HDFS?

HDFS是Hadoop Distributed File System的简写,即分布式文件系统。
在这里插入图片描述
NameNode负责管理与维护HDFS目录系统并控制文件的读写
DataNode负责存储数据

对于HDFS的数据存取
用cluster集群架构来存储大数据文件,通过Streaming来存取数据集,并且HDFS是批处理,而不是实时互动处理。存取模式是一次写入多次读取(write-once-read-many)。

HDFS存储架构
系统将大数据文件分成多个区块,每个区块64MB。一个文件区块默认复制成三份,文件区块损坏时,系统会找其他DataNode上的副本,来恢复数据,维持三份副本的策略。

HDFS机架感知功能
将副本放在不同的机架数据节点里,防止一个机架受损导致数据遗失。

HDFS命令

hadoop fs -命令

常用HDFS命令:

hadoop fs -mkdir
hadoop fs -ls
hadoop fs -cat
hadoop fs -cp
hadoop fs -rm

hadoop fs -copyFromLocal //复制本地文件到HDFS
hadoop fs -put //复制本地文件到HDFS

hadoop fs -copyToLocal //将HDFS文件复制到本地
hadoop fs -get//将HDFS文件复制到本地

创建用户目录

hadoop fs -mkdir /user
hadoop fs -mkdir /user/hduser
hadoop fs -mkdir /user/hduser/test
或
hadoop fs -mkdir -p /user/hduser/test

:如果出现WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable这条信息就依次进行以下操作,更新glibc版本(一般都是glibc版本过低的原因导致的,可以用hadoop checknative -a检查一下)

yum install svn autoconfautomake libtool cmake ncurses-devel openssl-devel gcc*

cd /usr/local/lib

wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar -zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build && cd build

../configure --prefix=/opt/glibc-2.14

make

sudo make install

cp  /etc/ld.so.c* /opt/glibc-2.14/etc/

ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

strings /lib64/libc.so.6 | grep GLIBC

vim /etc/sysconfig/i18n
# 添加下面的
LC_ALL=C
export LC_ALL
# 再执行下面的语句,使之生效
source /etc/sysconfig/i18n

hadoop fs -ls -R /查看创建的目录

复制文件

hadoop fs -copyFromLocal  /usr/local/hadoop/README.txt  /user/hduser/test/test1.txt

注:如果失败,可能是没有关闭防火墙,CentOS6中永久关闭防火墙

service iptables stop

chkconfig iptables off

强制复制

hadoop fs -copyFromLocal  -f /usr/local/hadoop/README.txt  /user/hduser/test/test1.txt

PS
允许一次复制多个文件
使用 -put复制会直接覆盖文件

put可使用标准输入

echo 123 | hadoop fs -put - /user/hduser/test/echoin

使用以下命令查看各节点情况

hadoop dfsadmin -report

使用以下命名查看文件内容

hadoop fs -cat /user/hduser/test/test1.txt|more

HDFS文件复制到本地

hadoop fs -copyToLocal /user/hduser/test/

删除文件

hadoop fs -rm /user/hduser/test/echoin

web页面进入HDFS文件系统

master:50070
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值