您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > HDFS Shell的使用
=41一、复习HDFS:海量数据存储YARN:资源调度系统(MR、Spark、Storm、MPI)MapReduce:编程模型1.准备Linux环境2.安装JDK3.安装Hadoop(修改5个配置文件)4.配置ssh免密码登陆ssh-keygen-trsa~/.sshid_rsaid_rsa.pubssh-coyp-id要免登陆机器的IP或主机名二、今天的课程内容1.分布式文件系统介绍2.HDFS的体系结构和基本概念3.HDFSShell的使用4.HDFS的Java编程API5.Hadoop的RPC通信机制=42三、分布式文件系统介绍1.什么是分布式文件系统?分布式文件系统(DistributedFileSystem)是指文件系统管理的物理存储资源通过计算机网络与节点相连,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色,可以将文件分布式存放在多台服务器上。2.分布式文件系统的特点可扩展容错高可用高吞吐3.怎样设计一个分布式文件系统?(给出思路即可)=43四、HDFSShell1.什么是HDFSShell?HDFS提供shell命令行客户端,即通过命令行的方式操作HDFS[-appendToFilelocalsrc...dst][-cat[-ignoreCrc]src...][-checksumsrc...][-chgrp[-R]GROUPPATH...][-chmod[-R]MODE[,MODE]...|OCTALMODEPATH...][-chown[-R][OWNER][:[GROUP]]PATH...][-copyFromLocal[-f][-p][-l]localsrc...dst][-copyToLocal[-p][-ignoreCrc][-crc]src...localdst][-count[-q][-h]path...][-cp[-f][-p|-p[topax]]src...dst][-createSnapshotsnapshotDir[snapshotName]][-deleteSnapshotsnapshotDirsnapshotName][-df[-h][path...]][-du[-s][-h]path...][-expunge][-get[-p][-ignoreCrc][-crc]src...localdst][-getfacl[-R]path][-getfattr[-R]{-nname|-d}[-een]path][-getmerge[-nl]srclocaldst][-help[cmd...]][-ls[-d][-h][-R][path...]][-mkdir[-p]path...][-moveFromLocallocalsrc...dst][-moveToLocalsrclocaldst][-mvsrc...dst][-put[-f][-p][-l]localsrc...dst][-renameSnapshotsnapshotDiroldNamenewName][-rm[-f][-r|-R][-skipTrash]src...][-rmdir[--ignore-fail-on-non-empty]dir...][-setfacl[-R][{-b|-k}{-m|-xacl_spec}path]|[--setacl_specpath]][-setfattr{-nname[-vvalue]|-xname}path][-setrep[-R][-w]reppath...][-stat[format]path...][-tail[-f]file][-test-[defsz]path]=44[-text[-ignoreCrc]src...][-touchzpath...][-usage[cmd...]]hdfsdfs-appendToFilelocalsrc...dst可同时上传多个文件到HDFS里面hdfsdfs-catURI[URI...]查看文件内容hdfsdfs-chgrp[-R]GROUPURI[URI...]修改文件所属组hdfsdfs-chmod[-R]MODE[,MODE]...|OCTALMODEURI[URI...]修改文件权限hdfsdfs-chown[-R][OWNER][:[GROUP]]URI[URI]修改文件所有者,文件所属组,其他用户的读、写、执行权限hdfsdfs-copyFromLocallocalsrcURI复制文件到hdfshdfsdfs-copyToLocal[-ignorecrc][-crc]URIlocaldst复制文件到本地hdfsdfs-count[-q]paths统计文件及文件夹数目hdfsdfs-cp[-f]URI[URI...]destHadoopHDFS文件系统间的文件复制hdfsdfs-du[-s][-h]URI[URI...]统计目录下的文件及大小hdfsdfs-dusargs汇总目录下的文件总大小hdfsdfs-get[-ignorecrc][-crc]srclocaldst下载文件到本地=45hdfsdfs-getmergesrclocaldst[addnl]合并下载文件到本地hdfsdfs-lsargs查看目录hdfsdfs-ls-Rargs循环列出目录、子目录及文件信息hdfsdfs-mkdir[-p]paths创建空白文件夹dfs-moveFromLocallocalsrcdst剪切文件到hdfshdfsdfs-moveToLocal[-crc]srcdst剪切文件到本地hdfsdfs-mvURI[URI...]dest剪切hdfs文件hdfsdfs-putlocalsrc...dst上传文件hdfsdfs-rm[-skipTrash]URI[URI...]删除文件/空白文件夹hdfsdfs-rm-r[-skipTrash]URI[URI...]递归删除删除文件及文件夹下的所有文件hdfsdfs-setrep[-R][-w]numReplicaspath修改副本数hdfsdfs-statURI[URI...]显示文件统计信息hdfsdfs-tail[-f]URI查看文件尾部信息hdfsdfs-test-[ezd]URI对PATH进行如下类型的检查:-ePATH是否存在,如果PATH存在,返回0,否则返回1=46-z文件是否为空,如果长度为0,返回0,否则返回1-d是否为目录,如果PATH为目录,返回0,否则返回1hdfsdfs-textsrc查看文件内容hdfsdfs-touchzURI[URI...]创建长度为0的空文件五、HDFS的java编程APIpackagecn.edu360.hadoop.hdfs;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.URI;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.FSDataOutputStream;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IOUtils;importorg.junit.Before;importorg.junit.Test;publicclassHDFSAPI{publicstaticvoidmain(String[]args)throwsException{//跟HDFS建立上连接,要知道NameNode的地址即可Configurationconf=newConfiguration();conf.set(fs.defaultFS,hdfs://hadoop.edu360.cn:9000);FileSystemfileSystem=FileSystem.get(conf);//打开一个输入流InputStreamin=fileSystem.open(newPath(/a.txt));//打开一个本地的输出流文件OutputStreamout=newFileOutputStream(d://out123.txt);//拷贝IN—OUT//关闭流IOUtils.copyBytes(in,out,1024,true);=47}privateFileSystemfileSystem=null;@Beforepublicvoidinit()throwsException{Configurationconf=newConfiguration();//System.setProperty(HADOOP_USER_NAME,root);//conf.set(fs.defaultFS,hdfs://hadoop.edu360.cn:9000);//fileSystem=FileSystem.get(conf);fileSystem=FileSystem.get(newURI(hdfs://hadoop.edu360.cn:9000),conf,root);}@TestpublicvoidtestUpload()throwsException{//跟HDFS建立连接//打开本地文件系统的一个文件作为输入流InputStreamin=newFileInputStream(d://pom.xml);//使用hdfs的fileSystem打开一个输出流FSDataOutputStreamout=fileSystem.create(newPath(/pom123.xml));//in-outIOUtils.copyBytes(in,out,1024,true);//关闭fileSystem连接fileSystem.close();}@TestpublicvoidtestDel()throwsIllegalArgumentException,IOException{booleanflag=fileSystem.delete(newPath(/a),true);System.out.println(flag);fileSystem.close();}@Test=48publicvoidtestMkdir()throwsIllegalArgumentException,IOException{fileSystem.mkdirs(newPath(/a/b));//关闭fileSystem连接fileSystem.close();}六、HDFS的架构(需要重点理解的概念:文件切块,副本存放,元数据)1.HDFS的重要组件NameNodeDa
本文标题:HDFS Shell的使用
链接地址:https://www.777doc.com/doc-5083903 .html