收藏 分销(赏)

Hadoop大数据开发基础整本书教学教程电子教案(.pptx

上传人:人****来 文档编号:10251483 上传时间:2025-04-30 格式:PPTX 页数:243 大小:7.37MB
下载 相关 举报
Hadoop大数据开发基础整本书教学教程电子教案(.pptx_第1页
第1页 / 共243页
Hadoop大数据开发基础整本书教学教程电子教案(.pptx_第2页
第2页 / 共243页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样,单击此处编辑母版标题样式,单击此处编辑母版文本样,单击此处编辑母版标题样式,单击此处编辑母版文本样,大数据,-Hadoop,基础,30-4月-25,大数据-Hadoop基础,30-4月-25,1,安装,Java,目录,安装配置虚拟机,2,搭建,Hadoop,完全分布式集群,3,JDK,是,Java,语言的软件开发工具包,主要用移动设备、嵌入式设备上的,Java,应用程序。,JDK,是整个,Java,开发的核心,它包含了,Java,的运行环境,,Java,工具和,Java,基础的类库。,Hadoop,开发是基于,Java,语言开发的,所以需要在,Windows,下安装,JDK,。,Windows下安装Java,Windows下安装Java,双击,更改,jdk,安装目录;,更改,jre,安装目录;,配置环境变量,安装步骤:,右键单击“计算机”,属性,高级系统设置,系统属性,环境变量,Windows下安装Java配置环境变量,新建,JAVA_HOME,变量,变量值填写,JDK,安装路径,Windows下安装Java配置环境变量,新建,CLASSPATH,变量,变量值输入“,.;%JAVA_HOME%jrelibrt.jar;.;,”,Windows下安装Java配置环境变量,找到,Path,变量,在变量值最后输入“,;%JAVA_HOME%bin;,”,(,注意在最前面有个“,;,”号,),Windows下安装Java配置环境变量,测试环境变量是否配置成功,单击电脑开始,所有程序,附件,命令提示符,Windows下安装Java配置环境变量,Windows下安装Java,动手实践!,上传,JDK,安装包到,/opt,目录下,在Linux下安装Java,进入,/opt,目录,执行命令“,rpm ivh jdk-7u80-linux-x64.rpm,”安装,JDK,在Linux下安装Java,Linux下安装Java,动手实践!,大数据-Hadoop基础,30-4月-25,1,安装,Java,目录,安装配置虚拟机,2,搭建,Hadoop,完全分布式集群,3,Hadoop安装与配置,新建虚拟机,4,台,分别命名,master,、,slave1,、,slave2,、,slave3,;,每台虚拟机设置固定,IP,;,每台虚拟机安装必要软件;,准备工作:,Hadoop安装与配置,准备工作:,master:1.5G 2G,内存、,20G,硬盘、,NAT,、,12,核,;,slave1slave3:1G,内存、,20G,硬盘、,NAT,、,1,核,Hadoop安装与配置,新建虚拟机,master,,配置固定,IP,,关闭防火墙,安装必要软件;,克隆,master,到,salve1,、,slave2,、,slave3,;,修改,slave1slave3,的,IP,,改为固定,IP,;,具体做法,:,Hadoop安装与配置,master,192.168.128.130,NameNode/JobHistoryServer,ResourceManager/,SecodaryNameNode,slave1,slave2,slave3,192.168.128.131,DataNode/,NodeManager,192.168.128.132,DataNode/,NodeManager,192.168.128.133,DataNode/,NodeManager,Hadoop安装与配置,上传、解压缩;,修改配置文件;,配置,ssh,无密码登录;,配置,ntp,,统一时间;,安装文件拷贝到子节点;,格式化,并启动集群,Hadoop安装与配置,core-site.xml,相关配置解读;,hdfs-site.xml,相关配置解读;,mapred-site.xml,相关配置解读;,yarn-site.xml,相关配置文件解读;,Hadoop安装与配置,动手实践!,Hadoop安装目录解读,执行命令,配置文件,日志文件,启动,命令,软件,jar,包,Hadoop启动,启动集群,rootmaster hadoop-2.6.0#sbin/start-dfs.sh,rootmaster hadoop-2.6.0#jps,1296 NameNode,1498 SecondaryNameNode,rootmaster hadoop-2.6.0#sbin/start-yarn.sh,rootmaster hadoop-2.6.0#jps,1722 ResourceManager,。,rootmaster hadoop-2.6.0#sbin/mr-jobhistory-daemon.sh start historyserver,rootmaster hadoop-2.6.0#jps,2175 JobHistoryServer,。,HDFS,YARN,JobHistoryServer,Hadoop关闭,关闭,集群,rootmaster,hadoop-2.6.0#sbin/stop-yarn.sh,rootmaster hadoop-2.6.0#sbin/stop-dfs.sh,rootmaster hadoop-2.6.0#sbin/mr-jobhistory-daemon.sh stop historyserver,HDFS,YARN,JobHistoryServer,Hadoop 监控任务监控,192.168.128.130:8088/cluster,功能导航,集群信息,具体任务信息,Hadoop 监控任务监控,Hadoop 监控任务监控,Hadoop 监控任务监控,Hadoop监控文件监控,,192.168.128.130:50070/dfshealth.html#tab-overview,功能导航,Hadoop监控文件监控,Hadoop监控文件监控,Hadoop监控文件监控,Hadoop监控文件监控,Hadoop监控文件监控,192.168.128.130:50070/dfshealth.jsp,Hadoop集群问题,1.,集群节点相关服务没有启动?,检查对应机器防火墙状态;,检查对应机器的时间是否与主节点同步;,Hadoop集群问题,2.,集群状态不一致,,clusterID,不一致?,删除,dfs.namenode.name/data.dir,配置的目录;,重新执行,hadoop,格式化;,1,HDFS,基础操作,目录,学习查看,Hadoop,集群,2,运行当,MapReduce,任务,3,管理多个,MapReduce,任务,4,查看Hadoop集群信息,存储系统信息,在,WEB,浏览器的地址栏输入“,master:50070/,”,查看Hadoop集群信息,数据节点信息,查看Hadoop集群信息,存储系统信息,hdfs dfsadmin-report-live-dead-decommissioning,在集群服务器的终端,输入相关的查询命令“,hdfs dfsadmin-report”,就可以获得。,hdfs dfsadmin-report,命令的基本格式如下。,各个子选项的用法说明如下。,-report,:输出文件系统的基本信息及相关数据统计。,-report-live,:输出文件系统中在线节点的基本信息及相关数据统计。,-report-dead,:输出文件系统中失效节点的基本信息及相关数据统计。,-report-decommissioning,:输出文件系统中停用节点的基本信息及相关数据,统计。,通过命令查询集群信息:,Hadoop命令HDFS常用shell命令,查看集群数据节点:,#hdfs dfsadmin-report,Configured Capacity:58426654720(54.41 GB),Present Capacity:51292434432(47.77 GB),DFS Remaining:51291844608(47.77 GB),DFS Used:589824(576 KB),DFS Used%:0.00%,Under replicated blocks:5,Blocks with corrupt replicas:0,Missing blocks:0,-,Live datanodes(2):,Name:192.168.0.101:50010(),Hostname:,Decommission Status:Normal,Configured Capacity:29213327360(27.21 GB),DFS Used:294912(288 KB),Non DFS Used:3872731136(3.61 GB),DFS Remaining:25340301312(23.60 GB),DFS Used%:0.00%,DFS Remaining%:86.74%,Configured Cache Capacity:0(0 B),Cache Used:0(0 B),Cache Remaining:0(0 B),Cache Used%:100.00%,Cache Remaining%:0.00%,Xceivers:1,Last contact:Tue Jul 21 14:18:39 CST 2015,Name:192.168.0.102:50010(),Hostname:,Decommission Status:Normal,Configured Capacity:29213327360(27.21 GB),DFS Used:294912(288 KB),Non DFS Used:3261489152(3.04 GB),DFS Remaining:25951543296(24.17 GB),DFS Used%:0.00%,DFS Remaining%:88.83%,Configured Cache Capacity:0(0 B),Cache Used:0(0 B),Cache Remaining:0(0 B),Cache Used%:100.00%,Cache Remaining%:0.00%,Xceivers:1,Last contact:Tue Jul 21 14:18:38 CST 2015,查看Hadoop集群信息,计算资源信息,在浏览器的地址栏输入“,master:8088/cluster/nodes,”,1,HDFS,基础操作,目录,学习查看,Hadoop,集群,2,运行当,MapReduce,任务,3,管理多个,MapReduce,任务,4,Hadoop命令,hadoop,Hadoop命令,hdfs,Hadoop命令,hadoop fs/hdfs dfs,Hadoop命令,hadoop fs/hdfs dfs,HDFS文件系统,HDFS文件系统,在浏览器输入,master:50070/nn_browsedfscontent.jsp,HDFS基本操作,创建新目录,hdfs dfs-mkdir-p,-p:,不加只能逐级创建目录,加了可以多级创建目录,HDFS基本操作,上传文件,命令,解释,hdfs dfs-copyFromLocal-f-p-l .,将文件从本地文件系统拷贝到,HDFS,文件系统,主要参数,为本地文件路径,,为拷贝的目标路径。,hdfs dfs-moveFromLocal .,将文件从本地文件系统移动到,HDFS,文件系统,主要参数,为本地文件路径,,为移动的目标路径。,hdfs dfs-put-f-p-l .,将文件从本地文件系统上传到,HDFS,文件系统,主要参数,为本地文件路径,,为上传的目标路径。,HDFS基本操作,下载文件,命令,解释,hdfs dfs-copyToLocal-p-ignoreCrc-crc.,将文件从,HDFS,文件系统拷贝到本地文件系统,主要参数,为,HDFS,文件系统路径,,为本地文件系统路径。,hdfs dfs-get-p-ignoreCrc-crc.,获取,HDFS,文件系统上指定路径的文件到本地文件系统,主要参数,为,HDFS,文件系统路径,,为本地文件系统路径。,HDFS基本操作,查看文件,命令,解释,hdfs dfs-cat-ignoreCrc .,查看,HDFS,文件内容,主要参数,指示文件路径。,hdfs dfs-tail-f,输出,HDFS,文件最后,1024,字节,主要参数,指定文件。,HDFS基本操作,删除文件或目录,命令,解释,hdfs dfs-rm-f-r|-R-skipTrash .,删除,HDFS,上的文件,主要参数,-r,用于递归删除,,指定删除文件的路径。,hdfs dfs-rmdir-ignore-fail-on-non-empty .,如果删除的是一个目录,则可以用该方法,主要参数,指定目录路径。,1,HDFS,基础操作,目录,学习查看,Hadoop,集群,2,运行当,MapReduce,任务,3,管理多个,MapReduce,任务,4,运行单个MapReduce任务,示例程序包,hadoop-mapreduce-examples-2.6.4.jar,运行单个Mapreduce任务,模块名称,内容,multifilewc,统计多个文件中单词的数量。,pi,应用,quasi-Monte Carlo,算法来估算圆周率,的值。,randomtextwriter,在每个数据节点随机生成,1,个,10GB,的文本文件。,wordcount,对输入文件中的单词进行频数统计。,wordmean,计算输入文件中单词的平均长度。,wordmedian,计算输入文件中单词长度的中位数。,wordstandarddeviation,计算输入文件中单词长度的标准差。,示例程序包,hadoop-mapreduce-examples-2.6.4.jar,运行单个Mapreduce任务,hadoop jar,用法:,实例:,执行,Jar,文件,运行单个Mapreduce任务,实例:,运行单个Mapreduce任务,实例:,1,HDFS,基础操作,目录,学习查看,Hadoop,集群,2,运行当,MapReduce,任务,3,管理多个,MapReduce,任务,4,管理多个Mapreduce任务,查询,MapReduce,任务,在浏览器输入:“,master:8088/cluster/nodes,”,管理多个Mapreduce任务,查询,MapReduce,任务,提交一个任务后:,它的状态值为“,RUNNNING,”,表示这个任务正执行中。,管理多个Mapreduce任务,查询,MapReduce,任务,查看任务信息,管理多个Mapreduce任务,同时提交多个任务,作业,0001,的状态“,RUNNING,”,表示它正在执行中。而作业,0002,的状态是“,ACCEPTED,”,表示它已被资源管理器,YARN,接受,目前在等待被分配计算资源,只有当计算资源满足后,才会开始执行。,管理多个Mapreduce任务,同时提交多个任务,在提交两个作业后,集群上的计算资源使用情况,管理多个Mapreduce任务,中断任务,人为中断第,1,个作业:点击任务,1,的,ID,进入任务,1,,点击图中,Kill Application,即可中断该任务。,管理多个Mapreduce任务,中断任务,中断后任务状态,Hadoop大数据开发基础,30-4月-25,1,MapReduce,原理与编程,目录,下载和安装,Eclipse,2,实践操作,3,下载和安装Eclipse,在官网下载,Eclipse,安装包“,Eclipse IDE for Java EE Developers,”,下载和安装Eclipse,2.,将,Eclipse,安装包解压到本地的安装目录,3.,将插件,hadoop-eclipse-plugin-2.6.0jar,拷贝到,Eclipse,安装目录下的,dropins,目录,4.,双击解压文件下,Eclipse,文件夹中的图标,打开,Eclipse,配置MapReduce环境,增加,Map/Reduce,功能区,配置MapReduce环境,增加,Hadoop,集群的连接,配置MapReduce环境,增加,Hadoop,集群的连接,配置MapReduce环境,增加,Hadoop,集群的连接,新建MapReduce工程,导入,MapReduce,运行依赖的相关,Jar,包,新建MapReduce工程,下载和安装,Eclipse,1,2,MapReduce,原理与编程,3,实践操作,目录,Hadoop MapReduce 单词计数源码,Hadoop MapReduce 单词计数源码,Hadoop MapReduce 单词计数源码,MapReduce 原理,MapReduce,,在名称上就表现出了它的核心原理,它是由两个阶段组成的。,Map,,表示“映射”,在,map,阶段进行的一系列数据处理任务被称为,Mapper,模块。,Reduce,,表示“归约”,同样,在,reduce,阶段进行的一系列数据处理任务也被称为,Reducer,模块。,MapReduce,通常也被简称为,MR,MapReduce 原理,(,1,),Mapper,:映射器。,(,2,),Mapper,助理,InputFormat,:输入文件读取器。,(,3,),Shuffle,:运输队。,(,4,),Shuffle,助理,Sorter,:排序器。,(,5,),Reducer,:归约器。,(,6,),Reducer,助理,OutputFormat,:输出结果写入器。,MapReduce 原理,数据分片,。假设原始文件中,8000,万行记录被系统分配给,100,个,Mapper,来处理,那么每个,Mapper,处理,80,万行数据。相当于,MapReduce,通过数据分片的方式,把数据分发给多个单元来进行处理,这就是分布式计算的第一步。,数据映射,。在数据分片完成后,由,Mapper,助理,InputFormat,从文件的输入目录中读取这些记录,然后由,Mapper,负责对记录进行解析,并重新组织成新的格式。然后,Mapper,把自己的处理结果输出,等待,Shuffle,运输队取走结果。,数据混洗,。由,Shuffle,运输队把获取的结果按照相同的键,(Key),进行汇集,再把结果送到,Shuffle,助理,Sorter,,由,Sorter,负责对这些结果排好序,然后提交给,Reducer,。,数据归约,。,Reducer,收到传输过来的结果后,接着进行汇总与映射工作,得到最终计算结果。最后由,Reducer,助理,OutputFormat,把结果输出到指定位置。,MapReduce 实现词频统计的执行流程,词频统计的输入输出,输入,输出,Hello World Our World,Hello BigData Real BigData,Hello Hadoop Great Hadoop,Hadoop MapReduce,BigData 2,Great1,Hadoop3,Hello3,MapReduce1,Our1,Real1,World2,Hadoop MapReduce 单词计数源码,MapReduce 实现词频统计的执行流程,map,任务的处理过程,MapReduce 实现词频统计的执行流程,reduce,任务的处理过程,Hadoop MapReduce 单词计数源码分析Driver,单词计数源码分析Driver流程,FileInputFormat,Mapper,Combiner,Reducer,Partitioner,FileOutputFormat,单词计数源码分析Driver键值对类型,Hadoop MapReduce 单词计数源码分析Mapper,Hadoop MapReduce 单词计数源码分析Reducer,下载和安装,Eclipse,1,2,MapReduce,原理与编程,3,实践操作,目录,Hadoop MapReduce获取成绩表中最高分,打开,eclipse,,新建,MapReduce,工程;,参考上面单词计数代码编写程序;,使用,eclipse,的,Export-JAR file,工具打包成,jar,包,并运行;,查看输出结构:终端输出信息、,Job,任务监控、,HDFS,输出信息;,Hadoop MapReduce获取成绩表中最高分,Mapper,类,Hadoop MapReduce获取成绩表中最高分,Reducer,类,Hadoop MapReduce获取成绩表中最高分,Driver,类,Hadoop大数据开发基础,30-4月-25,1,Hadoop Java API,目录,MapReduce,输入输出格式,2,自定义键值对,3,Combiner,、,Partitioner,、计数器,4,Eclipse,提交,MapReduce,任务,5,Hadoop MapReduce 输入格式,Hadoop MapReduce 输入格式,Hadoop MapReduce 输入格式(常用),输入格式,描述,键类型,值类型,TextInputFormat,默认格式,读取文件的行,行的字节偏移量(,LongWriable,),行的内容(,Text,),SequenceFileInputFormat,Hadoop,定义的高性能二进制格式,用户自定义,KeyValueInputFormat,把行解析为键值对,第一个,tab,字符前的所有字符(,Text,),行剩下的内容(,Text,),紧凑:高效使用存储空间。,快速:读取数据的额外开销小。,可扩展:可透明地读取老格式的数据。,互操作:可以使用不同的语言读,/,写永久存储的数据。,Hadoop MapReduce Hadoop序列化特点,1.,设置,MapReduce,的输入格式是在驱动类中通过,Job,对象的,setInputFormatClass(),方法来设定,2.,输入格式是,TextInputFormat,的时候驱动类可以不设置输入格式,Hadoop MapReduce 设置输入格式,job.setInputFormatClass(SequenceFileAsTextInputFormat.,class);,Hadoop MapReduce 输出格式,Hadoop MapReduce 输出格式,Hadoop MapReduce 输出格式(常用),输出格式,描述,TextOutputFormat,默认的输出格式,以,key t value,的方式输出行,SequenceFileOutputFormat,输出二进制文件,适合于读取为子,MapReduce,作业的输入,job.setOutputFormatClass(SequenceFileOutputFormat.class);,1,Hadoop Java API,目录,MapReduce,输入输出格式,2,自定义键值对,3,Combiner,、,Partitioner,、计数器,4,Eclipse,提交,MapReduce,任务,5,Hadoop文件系统,Path,:文件路径定义,FileSystem,:文件系统定义,FileSystem,是一个通用的文件系统,API,,使用它的第一步需要先获取它的一个实例,获取,FileSystem,实例的静态方法。,Hadoop Java API,1,、,public static FileSystem get(Configuration conf)throws IOException,2,、,public static FileSystem get(URI uri,Configuration conf)throws IOException,3,、,public static FileSystem get(URI uri,Configuration conf,String user)throws IOException,Hadoop文件系统 文件操作实例,Configuration conf=new Configuration();,conf.set(“fs.defaultFS”,”hdfs:/master:8020”),FileSystem fs=FileSystem.,get(conf);,fs.delete(new Path(“knn/test.csv”),true);,Hadoop Java APIFileSystem类的方法,hadoop.apache.org/docs/current/api/,修饰符和类型,方法,abstract FileStatus,listStatus(Path f),FileStatus,listStatus(Path files),FileStatus,listStatus(Path files,PathFilter filter),FileStatus,listStatus(Path f,PathFilter filter),Hadoop Java API管理文件夹,列举文件夹及文件的方法,列举指定目录下的所有文件夹,Hadoop Java API管理文件夹,列举指定目录下的所有文件,Hadoop Java API管理文件夹,修饰符和类型,方法,static boolean,mkdirs(FileSystem fs,Path dir,FsPermission permission),boolean,mkdirs(Path f),abstract boolean,mkdirs(Path f,FsPermission permission),Hadoop Java API创建目录,相关参数说明如下:,fs,:文件系统对象。,dir,:要创建的目录名称。,permission,:为该目录设置的权限,。,Hadoop Java API创建目录,修饰符和类型,方法,boolean,delete(Path f),abstract boolean,delete(Path f,boolean recursive),Hadoop Java API删除文件,相关参数说明如下:,f,:删除文件的路径。,recursive,:如果路径是一个目录并且不为空,,recursive,设置为,true,,则该目录将被删除,否则会引发异常。在是文件的情况下,,recursive,可以设置为,true,或,false,。,Hadoop Java API删除文件,修饰符和类型,方法,void,copyFromLocalFile(boolean delSrc,boolean overwrite,Path srcs,Path dst),void,copyFromLocalFile(boolean delSrc,boolean overwrite,Path src,Path dst),void,copyFromLocalFile(boolean delSrc,Path src,Path dst),void,copyFromLocalFile(Path src,Path dst),Hadoop Java API上传或下载文件,修饰符和类型,方法,void,copyToLocalFile(boolean delSrc,Path src,Path dst),void,copyToLocalFile(boolean delSrc,Path src,Path dst,boolean useRawLocalFileSystem),void,copyToLocalFile(Path src,Path dst),Hadoop Java API上传或下载文件,Hadoop Java API上传或下载文件,修饰符和类型,方法,FSDataInputStream,open(Path f),abstractFSDataInputStream,open(Path f,int bufferSize),Hadoop Java API读写数据,相关参数说明如下:,f,:打开的文件。,bufferSize,:要使用的缓冲区的大小,。,Hadoop Java API读写数据,Hadoop Java API读写数据,1,Hadoop Java API,目录,MapReduce,输入输出格式,2,自定义键值对,3,Combiner,、,Partitioner,、计数器,4,Eclipse,提交,MapReduce,任务,5,Hadoop MapReduce Hadoop内置数据类型,Hadoop MapReduce,Hadoop内置数据类型,类,型,解,释,BooleanWritable,标准布尔型数值,相当于,Java,数据类型里面的,boolean,,当,的,key,或者,value,为布尔型时使用,ByteWritable,单字节数值,相当于,Java,数据类型里面的,byte,,当,中,key,或者,value,为单字节类型时使用,DoubleWritable,双精度浮点型,相当于,Java,数据类型里面的,double,,当,中的,key,或者,value,为双字节类型时使用,FloatWritable,单精度浮点型,相当于,Java,数据类型里面的,float,,当,中的,key,或者,value,为浮点类型时使用,IntWritable,整型数,相当于,Java,数据类型里面的,int,,当,中的,key,或者,value,为整形类型时使用,LongWritable,长整型数,相当于,Java,数据类型里面的,long,,当,中的,key,或者,value,为长整型时使用,Text,使用,UTF-8,格式存储的文本,在,Java,数据类型中主要针对,String,类型,NullWritable,空值,当,中的,key,或,value,为空时使用,Hadoop MapReduce 键值对类型,自定义值类型必须实现,Writable,接口,自定义键类型必须实现,WritableComparable,接口,实现,writeFields(DataOutput out),与,readFields(DataInput in),方法,自定义键值类型还需实现,compareTo(T o),方法,Hadoop MapReduce自定义键值类型,Hadoop MapReduce,自定义键值类型,自定义值类型必须实现,Writable,接口,接口,Writable,是一个简单高效的基于基本,I/O,的序列化接口对象,其包含两个方法,write(DataOutput out),与,readFields(DataInput in),,其功能分别是将数据写入指定的流中和从指定的流中读取数据。,返回类型,方法和描述,void,readFields(DataInput in),,从,in,中反序列化该对象的字段,void,write(DataOuput out),,将该对象的字段序列化到,out,中,Hadoop MapReduce 键值对类型(实例),Hadoop MapReduce,自定义键值类型,自定义键类型必须实现,WritableComparable,接口,,WritableComparable,接口自身又实现了,Writable,接口,所以,Hadoop,中的键也可以作为值使用,但是实现,Writable,接口的值不能作为键使用。,WritableComparable,接口中不仅有,readFields(DataInput in),方法和,write(DataOuput out),方法,还提供了一个,compareTo(T o),方法,该方法提供了三种返回类型,返回类型,解释,负整数,表示小于被比较对象,0,表示等于被比较对象,正整数,表示大于被计较对象,Hadoop MapReduce 键值对类型(实例),1,Hadoop Java API,目录,MapReduce,输入输出格式,2,自定义键值对,3,Combiner,、,Partitioner,、计数器,4,Eclipse,提交,MapReduce,任务,5,Hadoop MapReduce Combiner组件,如单词统计问题,若有,1,亿个单词,就会传输,1,亿个键值对,合理的使用,Combiner,可以减少键值对的网络传输,提示效率,。,Combiner,发生在,map,端,通常与,reduce,有相同的实现,Combiner,一般适用于求和,求最大值或最小值,不适用与求平均值,声明,Combiner,类的时候必须继承,Reducer,Hadoop MapReduce Combiner组件,Hadoop MapReduce Combiner,Mapper-out,Reducer-in,Combiner,Key,Value,0,This is my,10,What is that,21,And What if,Key,Value,This,1,Is,1,My,1,What,1,Is,1,That,1,Key,Value,This,1,Is,2,My,1,What,1,And,1,That,1,Hadoop MapReduce Combiner,Key,Value,0,This is my,10,What is that,21,And What if,Key,Value,This,1,Is,1,My,1,What,1,Key,Value,This,1,Is,2,My,1,What,1,Key,Value,0,I love Hadoop,10,If I,Key,Value,I,1,love,1,Hadoop,1,If,1,i,1,Key,Value,I,2,Hadoop,1,If,1,i,1,Key,Value,This,1,Hadoop,1,If,2,I,2,input0,input0,map0,map1,combine0,combine1,reduce0,统计,用户每天登录该网站次数,public class LogCountCombiner extends Reducer,Override,protected void reduce(MemberLogTime key,Iterable value,Reducer.Context context),throws IOException,InterruptedException,int sum=0;,for(IntWritable val:value),sum+=val.get();,context.write(key,new IntWritable(sum);,Hadoop MapReduce分区器(Partitioner),分区器决定键值对发送的,reducer,地址,Hadoop MapReduce分区器(Partitioner),1.Mapper,输出键值对,2.,每个键值对被发送到,Partitioner,中,3.Partitioner,的,getPartition,方法返回,0N-1,对应,reducer,的,id,Hadoop MapReduce 分区器(Partitioner),Hadoop MapReduce分区器(Partitioner),计数器,属性名,MapReduce,任务计数器,org.apache.hadoop.mapreduce.TaskCounter,文件系统计数器,org.apache.hadoop.mapreduce.FileSystemCounter,输入文件计数器,org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter,输出文件计数器,org.apache.hadoop.mapreduce.lib.input.FileOutputFormatCounter,作业计数器,org.apache.hadoop.mapreduce.JobCounter,Hadoop Map
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服