今天学习HDFS命令行接口,通过命令行交互进一步认识HDFS。
fs.default.name
该属性设置为hdfs://localhost/,用于设置Hadoop的默认文件系统。文件系统是由URI指定的,这里我们已使用hdfs URI来配置HDFS为Hadoop的默认文件系统(这里需要明确Hadoop的文件系统是一个抽象的概念,HDFS只是其中的一个实现)。HDFS的守护程序通过该树形象来确定HDFS namenode的主机及端口。如此HDFS客户端可以通过该属性得知namenode在哪里运行进而连接到它。
def.replication
文件系统块复本数量,默认为3。当我们在哎伪集群模式下运行测试时,在单独一个datanode上运行时,设置为1,这样就不会收到复本不足的警告。
我们可以通过help命令来查看hdfs的命令详情。命令如下:
hadoop fs -help
首先我们从本地文件系统将一个文件复制到HDFS:
hadoop fs -copyFromLocal ${local file} ${hdfs file}
本地文件:/home/hxxtsx/app/spe_app/tmp/template.sh
hdfs上传路径:spe/template.sh
注:这里hdfs路径是简略写法,省略了fs.default.name属性值,因为在core-site.xml中已经指定了。core-site.xml文件请参考Hadoop环境搭建相关文章。
如下所示,文件上传成功。
hadoop fs -copyToLocal ${hdfs file} ${local file}
hadoop fs -mkdir ${hdfs dir}
hadoop fs -ls ${hdfs dir}
上传:
hadoop fs -put ${local file[dir]} ${hdfs file[dir]}
下载:
hadoop fs -get ${local file[dir]} ${hdfs file[dir]}
删除:
hadoop fs -rm {$ hdfs dir[file]}