HDFS的Shell操作
HDFS集群启停命令
-
一键启停脚本
-
单独控制进程
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
## 或者
hdfs --daemon start datanode
hdfs --daemon stop datanode
文件系统操作命令
文件系统基本信息
HDFS和Linux系统一样,都是以/作为跟牡蛎的组织形式
如何区分Linux和HDFS:
协议头
Linux: file:///usr/local/hello.txt
HDFS: hdfs://node1:8020/usr/local/hello.txt
## 但实际运用中系统会自动识别Linux还是HDFS,不用明确写协议头
操作命令
## old
hadoop fs [generic options]
## new
hdfs dfs [generic options]
- 创建文件夹
hdfs dfs -mkdir [-p] <path>
- 查看指定目录下内容
hadoop fs -ls [-h] [-R] [<path>...]
-h 人性化显示文件size
-R 递归查看指定目录及其子目录
- 上传文件到HDFS指定目录下
hadoop fs -put [-f] [-p] <localsrc>(linux->) ... <dst>(hdfs)
-f 强制(如果已存在)覆盖目标文件
-p 拍保留访问和修改时间
- 查看文件内容
hadoop fs -cat <scr>
## 读取大文件可以使用管道符配合more(对内容空格翻页)
hadoop fs -cat <src> | more
- 下载文件
hadoop fs -get [-f] [-p] <src> ... <localdst>
-f 强制(如果已存在)覆盖目标文件
-p 保留访问和修改时间
- 拷贝文件
hadoop fs -cp [-f] <src>(linux->) .. <dst>(hdfs)
- 追加数据到hdfs(hdfs只能删除和追加)
hadoop fs -appendToFile <localscr> <dst>
- 数据移动
hadoop fs -mv <localsrc> <dst>
- 数据删除操作
Hadoop fs -rm -r [skipTrash] URI
-skipTrash 跳过回收站直接删除
ps:回车站默认关闭,需要开启需要在core-site.xml内配置
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>
在哪个机器执行命令在哪个机器生效
WEB也可浏览,但只推荐查看不推荐操作
10. 修改权限
Linux的超级用户是root HDFS文件系统的超级用户: 是启动namenode的用户
## 修改所属用户和组:
hadoop fs -chown [-R] root:root /xxx.txt
## 修改权限
hadoop fs -chmod [-R] 777 /xxx.txt
常见操作练习
- 在hdfs中创建文件夹: /itcast/itheima, 如存在请删除(跳过回收站)
- 上传/etc/hosts文件到hdfs的/itcast/itheima内
- 查看hdfs中刚刚上传的文件内容
- 向hdfs中上传的文件追加:itheima到最后一行
- 下载hdfs中上传的文件到本地任意目录
- 在hdfs中创建文件夹:/itcast/bigdata,将/itcast/itheima/hosts文件复制到/itcast/bigdata内
- 将/itcast/itheima/hosts文件重命名为/itcast/itheima/myhost
- 删除/itcast文件夹