目录
1. HDFS架构
-
1个NameNode/NN(Master) 带 DataNode/DN(Slaves) (Master-Slave结构)
-
1个文件会被拆分成多个Block
-
NameNode(NN)
-
负责客户端请求的响应
-
负责元数据(文件的名称、副本系数、Block存放的DN)的管理
-
元数据 MetaData 描述数据的数据
-
-
监控DataNode健康状况 10分钟没有收到DataNode报告认为Datanode死掉了
-
-
DataNode(DN)
-
存储用户的文件对应的数据块(Block)
-
要定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况
-
-
分布式集群NameNode和DataNode部署在不同机器上
2.HDFS的使用
-
启动HDFS
[hadoop@hadoop00 sbin]$ ./start-dfs.sh
Starting namenodes on [hadoop00] hadoop00: starting namenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-namenode-hadoop00.out localhost: starting datanode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-datanode-hadoop00.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/logs/hadoop-hadoop-secondarynamenode-hadoop00.out
[hadoop@hadoop00 sbin]$ jps 4416 DataNode 4770 Jps 4631 SecondaryNameNode 4251 NameNode
-
来到$HADOOP_HOME/sbin目录下
-
执行start-dfs.sh
-
可以看到 namenode和 datanode启动的日志信息
-
通过jps命令查看当前运行的进程
-
可以看到 NameNode DataNode 以及 SecondaryNameNode 说明启动成功
-
-
通过可视化界面查看HDFS的运行情况
-
通过浏览器查看 192.168.19.137:50070
-
2.HDFS shell操作
-
调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式
-
ls
使用方法:hadoop fs -ls <args>
-
text
使用方法:hadoop fs -text <src>
将源文件输出为文本格式。允许的格式是zip和TextRecordInputStream。
-
mv
使用方法:hadoop fs -mv URI [URI …] <dest>
将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。 示例:
-
hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
-
hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1
返回值:
成功返回0,失败返回-1。
-
-
put
使用方法:hadoop fs -put <localsrc> ... <dst>
从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。
-
hadoop fs -put localfile /user/hadoop/hadoopfile
-
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
-
hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
-
hadoop fs -put - hdfs://host:port/hadoop/hadoopfile 从标准输入中读取输入。
返回值:
成功返回0,失败返回-1。
-
-
rm
使用方法:hadoop fs -rm URI [URI …]
删除指定的文件。只删除非空目录和文件。请参考rmr命令了解递归删除。 示例:
-
hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir
返回值:
成功返回0,失败返回-1。
-
-
3.HDFS shell操作练习
-
在centos 中创建 test.txt
touch test.txt
-
在centos中为test.txt 添加文本内容
vi test.txt
-
在HDFS中创建 hadoop001/test 文件夹
hadoop fs -mkdir -p /hadoop001/test
-
把text.txt文件上传到HDFS中
hadoop fs -put test.txt /hadoop001/test/
-
查看hdfs中 hadoop001/test/test.txt 文件内容
hadoop fs -cat /hadoop001/test/test.txt
-
将hdfs中 hadoop001/test/test.txt文件下载到centos
hadoop fs -get /hadoop001/test/test.txt test.txt
-
删除HDFS中 hadoop001/test/
hadoop fs -rm -r /hadoop001