HDFS是Hadoop中自带的分布式文件系统,具有高容错、运行在廉价的机器上和高吞吐等特性。
1、hdfs命令格式
l Hadoop fs:使用面最广,可以操作任何文件系统。
l hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。
l 格式
2、修改目录权限
l 任务:将HDFS目录的权限改为“rwxrwxrwx”。
l 步骤
Linux:
// 将Hadoop当前用户设置为hdfs,实现HDFS访问授权
1. export HADOOP_USER_NAME=hdfs
2. hadoop fs -chmod -R 777 /tmp/{test}
3、创建目录
l 任务:在HDFS上创建目录“/tmp/{test}/hdfs_data”。
l 步骤
Linux:
// 创建HDFS目录
1. hadoop fs -mkdir -p /tmp/{test}/hdfs_data
4、上传下载文件
l 任务:将本地文件“/var/log/transwarp-manager/master/transwarp-manager.log”上传到HDFS目录“/tmp/{test}/hdfs_data”中。
l 步骤
Linux:
1. hadoop fs –copyFromLocal 本地路径hdfs路径
2. hadoop fs -copyToLocal hdfs路径 本地路径
5、查看目录内容
l 任务:查看HDFS目录“/tmp/{test}/hdfs_data”的内容。
l 步骤
Linux:
1. hadoop fs -ls /tmp/{test}/hdfs_data
6、查看文件内容
l 任务:查看HDFS文件“/tmp/{test}/hdfs_data/transwarp-manager.log”的内容。
l 步骤
Linux:
1. hadoop fs -cat /tmp/{test}/hdfs_data/transwarp-manager.log
7、通过Web查看目录和文件数据块
l 任务:通过Transwarp Manager浏览HDFS目录,并找到文件“/tmp/{test}/hdfs_data /transwarp-manager.log”的Block Id。
l 步骤
Web:
1. 登录Transwarp Manager
2. 进入HDFS服务,点击左侧“角色”按钮
3. 点击Namenode后面的“Link”,确保进入的是ActiveNamenode
4. 点击菜单项“Utilities/Browse the file system”,浏览HDFS目录
5. 找到文件“/tmp/{test}/hdfs_data/transwarp-manager.log”,查看它的block ID
8、查找Block文件
l 任务:在集群各节点的本地文件系统中,查找任务8中Block Id对应的Block文件。
l 步骤
Linux:
1. find / -name blk* | grep {block_id}
9、查看Namenode状态
l 任务:查看Namenode的主备状态,Active还是Standby。
l 步骤
Linux:
// 查看Namenode nn1的主备状态,nn1为Namenode ID
1. hdfs haadmin -getServiceState nn1
2. hdfs haadmin -getServiceState nn2
10、Namenode主备切换
l 任务:手工实现Namenode主备切换,即Active与Standby互换。
l 步骤
Linux:
// 切换Namenode nn1和nn2的主备状态,nn1为Active,nn2为Standby
1. hdfs haadmin -failover nn1 nn2
11、创建快照
l 任务:为HDFS文件夹“/tmp/{test}/hdfs_data”创建快照。
l 步骤
Linux:
// 设置允许快照
1. hdfs dfsadmin -allowSnapshot /tmp/{test}/hdfs_data
// 创建快照
2. hdfs dfs -createSnapshot /tmp/{test}/hdfs_data bak1
12、利用快照恢复文件
l 任务:删除目录“/tmp/{test}/hdfs_data”中的所有文件,然后利用快照恢复。
l 步骤
Linux:
// 删除目录下的所有文件,并确认删除情况
1. hadoop fs -rm -skipTrash /tmp/{test}/hdfs_data/*
2. hadoop fs -ls /tmp/{test}/hdfs_data
// 将快照目录下的文件复制到原目录下,实现快照恢复,并查看文件恢复情况
3. hadoop fs -cp /tmp/{test}/hdfs_data/.snapshot/bak1/* /tmp/{test}/hdfs_data
4. hadoop fs -ls /tmp/{test}/hdfs_data