在学习Hadoop过程中总结一下HDFS相关知识
Hadoop启动指令
所有启动指令都在指定服务器下启动
- 启动/关闭HDFS
sbin/start-dfs.sh
sbin/stop-dfs.sh
- 启动/关闭YARN(NodeManager 、ResourceManager)
sbin/start-yarn.sh
sbin/stop-yarn.sh
- 启动/关闭历史服务器
mapred --daemon start historyserver
mapred --daemon stop historyserver
Hadoop格式化NameNode
如果是第一次启动,需要在配置NameNode节点服务器下格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
hdfs namenode -format
Hadoop文件操作指令
-
创建文件夹
hadoop fs -mkdir /input
-
上传文件
hadoop fs -put a.txt /input
-
下载文件
hadoop fs -get /input/a.txt ./
-
执行word count程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
-
递归删除目录及目录里面内容
hadoop fs -rm -r /output
-
查看文件列表
hadoop fs -ls /
-
显示文件内容
hadoop fs -cat /a.txt
-
-chgrp、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限
hadoop fs -chmod 755 /a.txt
hadoop fs -chown xxx:xxx /a.txt
-
文件拷贝
hadoop fs -cp /a.txt /input
-
统计文件夹的大小信息
hadoop fs -du -h /input
-
其他更多指令可以通过
hadoop fs
查看
HDFS优缺点
优点
缺点
HDFS组成架构
- NameNode:是一个master,相当于主管、管理者
- 管理HDFS命名空间
- 配置副本策略
- 管理数据块(Block)映射信息
- 处理客户端读写请求
- DataNode:属于worker,NN下达命令,DN执行操作
- 存储实际的数据块
- 执行数据块的读写操作
- client :客户端
- 文件切分。文件上传HDFS的时候,client将文件切分成一个一个的block,然后进行上传
- 与NN交互,获取文件的位置信息
- 与DN交互,读取或写入数据
- client提供一些命令来管理HDFS,比如NN格式化
- client可以通过一些命令来访问HD