1.分布式文件系统 Distributed File System
允许文件通过网络在多台主机上分析的文件系统,可让多台机器上的多台用户分享文件和存储空间。
通透性:让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。
容错:即使系统中某些节点脱机,整体来说系统仍然可以持续运作,而不会有数据丢失。
分布式文件系统很多,HDFS只是其中一种。适用于一次写入多次查询(读取)的情况,不支持并发写情况(一个文件的多 块不能同时写,需要一块一块的写),小文件不合适。(不支持update修改、更新,需要将原来的文件删除)
2 .通过命令行的方式来展示一下HDFS(HDFS shell)
cd /itcast/hadoop-2.2.0/sbin/
./start-dfs.sh #只查看HDFS,所以只打开HDFS就可以
打开hdfs 在sbin底下,以前用过上传put 查看 -ls
hadoop fs -ls hdfs://itcast01:9000/ #这是HDFS的根,类似linux的根,可以通过浏览器查看#
192.168.8.88:50070
hadoop fs -ls / 和上面表示的意思相同,都是查看hdfs根里面的文件
由图片可以看到HDFS根目录打开是jdk,tmp,wxout和words
不知道能个干神马,可以hadoop fs回车,查看帮助
复制文件
hadoop fs -copyFromLocal /root/install.log /in.log #复制linux根目录下/root/install.log 到hdfs根目录下为in.log
hadoop fs -ls / #查看根目录下有没有复制好的文件,也可以用浏览器查看
hadoop fs -cat /in.log #查看in.log文件的具体内容,也可以通过浏览器查看
或者hadoop fs -cat hsfs://itcast01:9000/in.log(命令意思相同)
hadoop fs -cat /in.log | more 用分页查看(文件打开比较多的时候)
从hdfs复制文件到本地,用copyToLocal,用法相同
count数hdfs根目录下文件数目:hadoop fs -count /
文件夹数目(根目录也算一个) 文件数目 多少字节 eg:5 3 154813887
删除:hadoop fs rm -r /tmp 删掉tmp
拷贝:cp hdfs路径 hdfs路径 (把hdfs数据拷贝到hdfs的某个目录)
put (本地文件拷贝到hdfs上)
下载:hadoop fs -get /in.log /home/ii.log (从Hdfs下载到本地)
查看: hadoop fs -ls 可加 -R 递归查看文件,包括目录下的子文件和子文件夹
加 -h 表示人类可读的,加单位
创建目录:hadoop fs -mkdir /itcast0106
剪切:-moveFromLocal 从本地上传一个文件,把原文件删除
-moveToLocal 从hdfs下载一个文件,把原文件删除
剪切重命名:-mv 把hdfs上的文件移动到hdfs的某个目录
上传:-put
删除:hadoop fs -rm /jdk -rm -r可以删除目录 -rmdir只能删除空目录
查看文件尾部的内容:-tail hadoop fs -tail /in.log
查看里面的内容:-text 和-cat 相同 hadoop fs -text /in.log
在hdfs上创建一个通文件:-touchz
查看帮助文档 hadoop fs -help <cmd> 加你要查看的命令
改变权限、所属用户、所属组
-ls里面可以看到它的权限【可读可写或what】
我想添加执行权限:hadoop fs -chmod +x【默认是a+x,就是所有】 /in.log
去掉执行权限:hadoop fs -chmod -R【代表递归,子文件和子文件夹都去掉权限】 -x /wcout
改变所属用户:hadoop fs -chown supergroup /in.log 由root 用户变成了supergroup
改变所属组:hadoop fs -chgrp root /in.log
如果想递归改:hadoop fs -chown -R supergroup:root /wcout
从上面的命令可以看到和linux的命令非常相似,简单易用
hdfs dfd -ls / hadoop2.2.0新出的命令,这两个命令相同
hadoop fs -ls /
常用的命令: