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”,确保进入的是Active Namenode 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 |