大数据存储与处理第四讲

上传人:dja****22 文档编号:243001940 上传时间:2024-09-13 格式:PPT 页数:57 大小:295.50KB
返回 下载 相关 举报
大数据存储与处理第四讲_第1页
第1页 / 共57页
大数据存储与处理第四讲_第2页
第2页 / 共57页
大数据存储与处理第四讲_第3页
第3页 / 共57页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,HDFS 实战,1,Hadoop,运行模式,Hadoop,伪分布式安装,HDFS,命令行工具,HDFS,安全模式,启动、停止,HDFS,服务,如何查看,HDFS,日志,如何查看,HDFS Web,控制台,HDFS,参数配置,2,单机,在一个,Java,进程内模拟,Hadoop,的各个角色,伪分布式,由各个,Java,进程来模拟,Hadoop,的各个角色,集群环境,Hadoop,运行模式,3,Hadoop shell,$HADOOP_HOME_BASE/bin/hadoop fs ,FS shell,使用,URIs,地址,Schema:/autority/path,例如,hdfs:/namenodehost,:,port,/,folder1,/,folder2,如果不指定,schema,,则使用配置文件中的默认地址,fs.default.name,可以,使用,hadoop fs help,查看所有命令,HDFS命令行工具,4,用途,显示一个或多个文件内容到控制台,使用方法,hadoop fs -cat URI URI .,例子,:,hadoop fs -cat hdfs:/host1:port1/file1 hdfs:/host2:port2/file2,hadoop fs -cat /user/hadoop/file4,cat,5,用途,将,本地一个或多个,文件导入,HDFS,以上两个命令唯一的不同时,copyFromLocal,的源只能是本地文件,而,put,可以读取,stdin,的数据,使用方法,hadoop fs -put/copyFromLocal URI,例子,:,hadoop fs -put local /user/hadoop/hadoop,hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir,hadoop fs -put local,hadoop fs -put - hdfs:/host:port/hadoop/hadoop,put/copyFromLocal,6,用途,将,HDFS,中的,一个或多个,文件导出到本地文件系统,使用方法,hadoop fs -get/copyToLocal -ignorecrc -crc URI ,例子,:,hadoop fs -get /user/hadoop/hadoop,hadoop fs -get hdfs:/host:port/user/hadoop/,get/copyToLocal,7,用途,列出文件夹目录信息,lsr,递归显示文件子目录,使用方法,hadoop fs -ls/lsr URI,例子,:,ls/lsr,hadoopmaster$ hadoop fs -ls /user/hadoop,drwxr-xr-x - hadoop supergroup 0 2012-05-14 17:24 /user/hadoop/a,hadoopmaster$ hadoop fs -lsr /user/hadoop,drwxr-xr-x - hadoop supergroup 0 2012-05-14 17:24 /user/hadoop/a,-rw-r-r- 2 hadoop supergroup 47 2012-05-14 17:24 /user/hadoop/a/oct.sh,-rw-r-r- 2 hadoop supergroup 6 2012-05-14 17:24 /user/hadoop/a/x.sh,8,用法,hadoop fsck GENERIC_OPTIONS -move | -delete | -openforwrite -files -blocks -locations | -racks,检查,dfs,的文件的健康状况,只能运行在,master,上,fsck,hadoopmaster$ hadoop fsck /user/hadoop,FSCK started by hadoop from /172.16.206.77 for path /user/hadoop at Fri Jun 15 17:11:50 CST 2012,.,/user/hadoop/a/oct.sh: Under replicated blk_-3537883739360629007_1303. Target Replicas is 2 but found 1 replica(s).,.,/user/hadoop/a/x.sh: Under replicated blk_86643771_1304. Target Replicas is 2 but found 1 replica(s).,9,fsck,Status: HEALTHY,Total size: 57697 B,Total dirs: 5,Total files: 6,Total blocks (validated): 5 (avg. block size 11539 B),Minimally replicated blocks: 5 (100.0 %),Over-replicated blocks: 0 (0.0 %),Under-replicated blocks: 5 (100.0 %),Mis-replicated blocks: 0 (0.0 %),Default replication factor: 2,Average block replication: 1.0,Corrupt blocks: 0,Missing replicas: 2 (100.0 %),Number of data-nodes: 1,Number of racks: 1,FSCK ended at Fri Jun 15 17:11:50 CST 2012 in 3 milliseconds,10,用法,hadoop dfsadmin command,hadoop dfsadmin -help,可以列出所有的可用命令,主要的有一下几个,-safemode,安全模式操作,-report,报告集群,DFS,的运行情况,可以使用,hadoop dfsadmin -help,查看所有命令的用法,dfsadmin,11,指文件系统所处的一种只读的安全模式,HDFS,启动时会在,safemode,状态,相关命令:,HDFS,的,Safe Mode,$ hadoop dfsadmin -safemode get #,安全模式当前状态信息,$ hadoop dfsadmin -safemode enter #,进入安全模式,$ hadoop dfsadmin -safemode leave #,解除安全模式,$ hadoop dfsadmin -safemode wait #,挂起,直到安全模式结束,12,NameNode,$HADOOP_HOME_BASE/bin/hadoop-daemon.sh start namenode,Secondary NameNode,$HADOOP_HOME_BASE/bin/hadoop-daemon.sh start secondarynamenode,DataNode,同时启动:,$HADOOP_HOME_BASE/bin/hadoop-daemons.sh start datanode,单台启动:,$HADOOP_HOME_BASE/bin/hadoop-daemon.sh start datanode,NameNode,、,Secondary NameNode,、,DataNode,$HADOOP_HOME_BASE/bin/start-dfs.sh,HDFS,服务启动,13,NameNode,$HADOOP_HOME_BASE/bin/hadoop-daemon.sh stop namenode,Secondary NameNode,$HADOOP_HOME_BASE/bin/hadoop-daemon.sh stop secondarynamenode,DataNode,同时关闭,:,$HADOOP_HOME_BASE/bin/hadoop-daemons.sh stop datanode,单台关闭,:,$HADOOP_HOME_BASE/bin/hadoop-daemon.sh stop datanode,NameNode,、,Secondary NameNode,、,DataNode,$HADOOP_HOME_BASE/bin/stop-dfs.sh,HDFS,服务关闭,14,NameNode,位置:,$HADOOP_HOME_BASE/logs/hadoop-$USER-namenode-$HOSTNAME.log,命令:,tail -fn 100 $HADOOP_HOME_BASE/logs/hadoop-$USER-namenode-$HOSTNAME.log,DataNode,位置:,$HADOOP_HOME_BASE/logs/hadoop-$USER-datanode-$HOSTNAME.log,命令:,tail -fn 100 $HADOOP_HOME_BASE/logs/hadoop-$USER-datanode-$HOSTNAME.log,设置,Log,文件,的大小和数量,修改,core-site.xml,中的参数,hadoop.log,hadoop.log,如何查看,HDFS,日志,15,查看不同组件的日志级别,hadoop daemonlog -getlevel host:port packageName,设置组件的日志级别,hadoop daemonlog setlevle host:port packageName level,“,level,”,DEBUG, INFO, ERROR, FATAL,端口为前台页面的端口,缺省为,50070,组件名称,(packageName),org.apache.hadoop.hdfs.server.namenode.NameNode,org.apache.hadoop.hdfs.server.datanode.DataNode,org.apache.hadoop.hdfs,org.apache.hadoop,如何设置日志级别,16,访问:,http:/:,如何查看HDFS,Web,控制台,17,dfs.name.dir,NameNode,元数据存放位置,默认值:使用,core-site.xml,中的,hadoop.tmp.dir/dfs/name,dfs.block.size,对于新文件切分的大小,单位,byte,。,默认是,64M,建议是,128M,。,每一个节点都要指定,包括客户端。,默认值:,67108864,dfs.data.dir,DataNode,在本地磁盘存放,block,的位置,可以是以逗号分隔的目录列表,,DataNode,循环向磁盘中写入数据,每个,DataNode,可单独指定与其它,DataNode,不一样,默认值:,$hadoop.tmp.dir/dfs/data,HDFS hdfs-site.xml,参数配置,18,dfs.namenode.handler.count,NameNode,用来处理来自,DataNode,的,RPC,请求的线程数量,建议设置为,DataNode,数量的,10%,,一般在,10200,个之间,如设置太小,,DataNode,在传输数据的时候日志中会报告“,connecton refused,信息,在,NameNode,上设定,默认值:,10,dfs.datanode.handler.count,DataNode,用来连接,NameNode,的,RPC,请求的线程数量,取决于系统的繁忙程度,设置太小会导致性能下降甚至报错,在,DataNode,上设定,默认值:,3,dfs.datanode.max.xcievers,DataNode,可以同时处理的数据传输连接数,默认值:,256,建议值:,4096,HDFS hdfs-site.xml,参数配置,19,dfs.permissions,如果是,true,则检查权限,否则不检查(每一个人都可以存取文件),于,NameNode,上设定,默认值:,true,dfs.datanode.du.reserved,在每个卷上面,HDFS,不能使用的空间大小,在每个,DataNode,上面设定,默认值:,0,建议为,10737418240,,即,10G,。需要结合,MapReduce,场景设置。,dfs.datanode.failed.volumes.tolerated,DataNode,可以容忍损块的磁盘数量,超过这个数量,DataNode,将会离线,所有在这个节点上面的,block,将会被重新复制,默认是,0,,但是在有多块磁盘的时候一般会增大这个值,dfs.replication,在文件被写入的时候,每一块将要被复制多少份,默认是,3,份。建议,3,份,在客户端上设定,通常也需要在,DataNode,上设定,HDFS hdfs-site.xml,参数配置,20,fs.default.name,文件系统的名字。通常是,NameNode,的,hostname,与,port,需要在每一个需要访问集群的机器上指定,包括集群中的节点,例如:,hdfs:/:9000/,fs.checkpoint.dir,以逗号分隔的文件夹列表,,SecondNameNode,用来存储,checkpoint image,文件,如果多于一个文件夹,那么都会被写入数据,需要在,SecondNameNode,上设定,默认值:,$hadoop.tmp.dir/dfs/namesecondary,hadoop.tmp.dir,HDFS,与本地磁盘的临时文件,默认是,/tmp/hadoop-$user.name.,需要在所有的节点中设定,HDFS,core,-site.xml,参数配置,21,fs.trash.interval,当一个文件被删掉后,它会被放到用户目录的,.Trash,目录下,而不是立即删掉,经过此参数设置的分钟数之后,再删掉数据,默认是,0,,禁用此功能,建议,1440,(一天),io.,设定在读写数据时的缓存大小,应该为硬件分页大小的,2,倍,默认是,4096,,建议为,65536,(,64K,),HDFS,core,-site.xml,参数配置,22,HDFS-java api,使用,23,HDFS,开发基本步骤,HDFS Java API,详解,Configuration,Path,Stream,、,IOUtils,HDFS Java API,使用场景示例,24,实例化,Configuration,实例化,根据配置文件选择使用本地或分布式文件系统,文件或目录操作,Stream,HDFS,开发,基本,步骤,25,包,org.apache.hadoop.conf,构造方法,public Configuration(),调用构造方法,Configuration(true),public Configuration (boolean loadDefaults),true:,先加载缺省配置文件,再加载用户指定文件,(addResource),c,ore-default.xml,core-site.xml,以及通过,addDefaultResource,添加的文件名,false:,不加载缺省配置文件,需要通过,addResource,手动添加,后加载的配置会覆盖先加载的配置,除了被指定为,final,的,public Configuration (Configuration other),复制,other,参数信息,Configuration,26,static void addDefaultResource(String name),添加默认配置文件,配置文件加载的顺序是根据添加的顺序,参数是文件名,文件是在,classpath,中,void addResource(InputStream in),void addResource (Path file),本地文件,void addResource(String name),classpath,中的文件,void addResource (URL url),Configuration,加载配置文件方法,27,先加载缺省配置文件,再加载用户定义的配置文件,对于每一个文件只加载一次:第一个在,classpath,出现的,classpath,的目录顺序,$HADOOP_CONF_DIR,$JAVA_HOME/lib/tools.jar,如果,$HADOOP_HOME,目录下有,build,目录,则添加,build,下各子目录,$HADOOP_HOME/hadoop-core-*.jar,$HADOOP_HOME/lib/*.jar,用户在,hadoop-env.sh,中定义的,$HADOOP_CLASS_PATH,当前作为,hadoop jar ,参数提交的,JAR,包,配置文件加载顺序,28,void set(String name, String value),void setBoolean(String name,b,oolean value),void setInt(String name,String value),void setLong(String name, long value),void setFloat(String name, float value),void setIfUnset(String name, String value),void setBooleanIfUnset(String name, boolean value),String get(String name),boolean getBoolean(String name, boolean defaultValue),Configuration,设置,/,获取参数方法,29,包,org.apache.hadoop.fs,构造方法,p,ublic Path (String pathString),public Path (URI aUri),public Path (Path parent, Path child),public,P,ath (String parent, String child),参数,parent,指定父目录,参数,child,指定父目录下的文件或子目录,p,ublic Path(String scheme, String authority, String path),scheme,:协议类型,譬如,hdfs,、,file,、,s3,authority,:认证信息,譬如,user:pwdhost:port,path,:文件或目录名,如参数不符合,RFC2396,,则抛出异常,Path,30,int depth(),返回路径的深度,String getName(),返回路径上最后的资源名称,Path getParent(),返回父目录,如果已是根目录则返回,null,Path suffix(String suffix),参数,suffix,给,Path,增加后缀,返回加完后缀的,Path,实例,get (Configuration conf),返回该,Path,所属的文件系统实例,Path,常用,方法,31,包,org.apache.hadoop.fs,构造方法,protected (),是一个抽象类,不能通过,new,来创建,通过静态,get,(,Configuration conf),方法获得子类的实例,fs.$scheme.impl,org.apache.hadoop.hdfs.Distributed,主要子类,Local,本地文件系统,Distributed,分布式文件系统,32,boolean createNew f),不会覆盖已有文件,创建成功返回,true,失败返回,false,FSDataOutputStream create(Path f),覆盖已有文件,创建文件并返回输出流,FSDataOutputStream create(Path f,boolean overwrite),创建文件并返回输出流,FSDataOutputStream create(Path f,boolean overwrite,int buffer),FSDataOutputStream create(Path f,boolean overwrite,int buffer,short replication,long blockSize),创建文件,33,FS,DataInputStream open(Path f),FSDataInputStream open(Path f, int bufferSize),返回输入流,如果文件不存在会抛出异常,不指定,bufferSize,时,会从,Configuration,中读取,io.,,默认为,4096,字节,打开文件,34,F,SDataOutputStream append(Path f),F,SDataOutputStream append(Path f, int bufferSize),块不足,64M,时,会补足到,64M,块达到,64M,之前,该块不可见,,ls,看不到该块新增的大小,也无法读取,不能同时多个,writer,追加同一个文件,文件追加,35,void copyFromLocalFile (Path src,Path dst),目标文件存在,直接覆盖,void copyFromLocalFile (boolean delsrc, Path src,Path dst),根据参数,delsrc,如果是,true,拷贝完成之后直接删除源文件,void copyFromLocalFile (boolean,d,elsrc, boolean overwrite,Path src,Path dst),void copyFromLocalFile (boolean,d,elsrc, boolean overwrite,Path srcs,Path dst),参数,srcs,指定多个本地文件或文件夹,参数,dst,指定,HDFS,文件夹,void moveFromLocalFile (Path src,Path dst),void moveFromLocalFile (Path srcs,Path dst),从本地拷贝文件到,HDFS,36,void copyToLocalFile (Path src,Path dst),void copyToLocalFile (boolean delsrc, Path src,Path dst),void moveToLocalFile (Path src,Path dst),没有多文件拷贝函数,会覆盖已存在的本地文件,dst,从,HDFS,拷贝文件到本地,37,boolean mkdirs (Path f),b,oolean mkdirs (Path f, FsPermission permission),static boolean mkdirs ( fs, Path,d,ir, FsPermission permission),支持多级目录同时创建,(,类似,mkdir -p),默认权限是,755,成功返回,true,目录权限的含义,r + x,:,获取文件列表,w :,创建,(,删除,),文件,/,子目录,创建目录,38,boolean delete (Path f,boolean recursive),删除文件或目录,如果,f,是目录,则参数,recursive,指定是否要递归删除,r,ecursive,是,false,并且,f,不为空,会抛出异常,删除成功返回,true,f,不存在时,会返回,false,boolean deleteOnExit (f),当关闭时,才会删除,如,f,是目录,则递归删除子目录和文件,boolean rename (Path src, Path dst),删除及重命名,39, listStatus (Path f), listStatus (Path dirs), listStatus (Path f, PathFilter filter), listStatus (,P,ath ,d,ir, PathFilter filter),列出文件或目录的信息,参数,d,ir,指定要查询的多个目录,参数,filter,指定需要过滤规则,PathFilter,是一个接口,需要实现,boolean accept(Path path),方法,返回,false,,在,返回结果中会过滤掉,只返回列出指定目录下的文件或目录信息,信息包括,:,绝对路径,文件大小,(,单位,:,字节,),文件访问时间,块大小、复制份数,文件所属用户、组、访问权限,获取文件或目录信息,40,void setOwner (Path p, String username, String groupname),设置文件或目录所属用户及组,参数,p,指定文件或目录,参数,username,,设置此文件或目录的所属用户,只返回列出指定目录下的文件或目录信息,void setPermission (Path p,F,sPermission permission),设置文件或目录权限,参数,p,指定文件或目录,参数,permission,指定权限,权限同,linux,权限雷同,void setReplication (Path f, short replication),设置文件复制份数,参数,f,指定文件,参数,replication,指定复制份数,设置,文件或目录属性,41,void setTimes (Path f, long mtime, long atime),设置文件的修改及访问时间,参数,f,指定文件,参数,mtime,,修改时间,参数,atime,,访问时间,设置,文件或目录,属性,42,包,org.apache.hadoop.fs,继承,java.io.DataInputStream,构造方法,public FSDataInputStream(InputStream in),输入流对象实例化,in,参数,输入流的来源,一般输入流对象,通过方法获得,HDFS,输入流,43,包,org.apache.hadoop.fs,继承,java.io.DataOutputStream,构造方法,public FSDataOutputStream(OutputStream out, stats),public FSDataOutputStream(OutputStream out, stats, long startPosition),输出流对象实例化,out,参数,输出流,stats,参数是对输出流的相关的计数,如,bytes read, bytes written,stats,是对象,startPosition,参数,开始写入位置,一般输出流对象,通过方法,HDFS,输出流,44,包,org.apache.hadoop.fs,构造方法,public IOUtils(),I/O,帮助类,,提供的都是静态方法,不需要实例化,IOUtils,构造方法,45,public static void copyBytes (InputStream in , outputStream out, Configuration conf),public static void copyBytes (InputStream in , outputStream out, Configuration conf, boolean close),从输入流拷贝到输出流,参数,in,输入流实例,参数,out,输出流实例,参数,conf,,通过,io.,获取缓存大小,没有设置,io.,缓存默认为,4096bytes,参数,close,指定是否需要拷贝完成后,由此方法关闭输入输出流,IOUtils,拷贝流方法,46,public static void copyBytes (InputStream in , outputStream out, int buffSize),public static void copyBytes (InputStream in , outputStream out, int buffSize, boolean close),public static void copyBytes (InputStream in , outputStream out, int length, int buffSize, boolean close),从输入流拷贝制定字节大小到输出流,参数,in,输入流实例,参数,out,输出流实例,参数,length,指定要拷贝的字节大小,参数,buffSize,指定输入输出缓冲,参数,close,指定是否需要拷贝完成后,由此方法关闭输入输出流,IOUtils,拷贝流方法,47,HDFS,依赖,Jar,包来源,集群中已部署的,Hadoop,路径下,$HADOOP_HOME_BASE/hadoop-core-1.0.0.jar,$HADOOP_HOME_BASE/lib/*.jar,Java Doc,位置,集群中已部署,Hadoop,路径下,$HADOOP_HOME_BASE/docs/api/index.html,HDFS 依赖的jar包及Java Doc位置,48,创建,HDFS,文件,(createNewFile),Configuration config = new Configuration(),;,hdfs = (config);,Path path = new Path();,boolean isCreated = hdfs.,createNewFile,(path);,49,从本地拷贝文件到,HDFS(copyFromLocalFile),Configuration config = new Configuration();,hdfs = (config);,Path srcPath = new Path(,srcFile);,Path dstPath = new Path(dstFile);,hdfs.,copyFromLocalFile,(srcPath,dstPath,),50,从,HDFS,读取文件,(open),Configuration config = new Configuration();,hdfs = (config);,Path,path,= new Path(dstFile);,FSDataInputStream inputStream = hdfs.,open,(path);,Text line =,new Text(),LineReader liReader =,new LineReader(inputStream,);,while (liReader.readLine(line) 0) ,System.,out.println(line);,inputStream.close();,51,追加方式写入,HDFS,文件,(append),Configuration config = new Configuration();,hdfs = (config);,Path,path,= new Path(dstFile);,FSDataOutputStream out = hdfs.,append,(path);,/,在文件尾部,追加数据,out.close();,52,列出目录下的所有文件,(listStatus),Configuration config = new Configuration();,hdfs = (config);,Path dir = new Path(dirName);, = hdfs.,listStatus,(new Pathdir);,53,HDFS,命令,HDFS中的文件权限:,读权限(r)、写权限(w),执行权限(x)(控制对目录下的文件和子目录的访问),HDFS的命令行格式:hadoop,fs,cmd,cmd:具体的指令内容,:一系列可变的参数,命令,cat,chmod,chown,copyFromLocal,copyToLocal,cp,get,ls,mkdir,moveFromLocal,mv,put,rm,tail,说明,显示非压缩文件的内容,改变文件或目录的访问权限,变更文件或目录的所有者,从本地复制文件到HDFS文件系统中,从HDFS复制文件到本地,复制文件或目录,从HDFS复制文件到本地,列出文件和子目录,创建目录,将文件或目录从本地移动到HDFS,将文件或目录源路径移动到目的路径,将文件或目录从本地移动复制HDFS,删除文件或空目录,显示文件的最后1KB数据,示例,-cat,hdfs:/
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!