柠檬学院:Hadoop及Mapreduce入门_第1页
柠檬学院:Hadoop及Mapreduce入门_第2页
柠檬学院:Hadoop及Mapreduce入门_第3页
柠檬学院:Hadoop及Mapreduce入门_第4页
柠檬学院:Hadoop及Mapreduce入门_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hadoop及Mapreduce入门柠檬学院大数据培训在线教育OutlinesHadoopOverviewHDFSMap-reduceProgrammingParadigmHadoopMap-reduceJobSchedulerResourcesHadoop,Why?数据太多了,需要能存储、快速分析Pb级数据集的平台单机的存储、IO、CPU有限,需要可扩展的集群单点故障问题 –单点故障是正常现象,但需要处理这种异常 –节点有增有减需要好用的、可靠的基础平台来解决,最好是开源的HadoopHistoryDec2004–GoogleGFSpaperpublishedJuly2005–NutchusesMapReduceFeb2006–BecomesLucenesubprojectApr2007–Yahoo!on1000-nodeclusterApr2008–FastestQuickSorton1TBJan2008–AnApacheTopLevelProjectJul2008–A4000nodetestclusterHadoop-relatedprojectsNutch:网页搜索软件,不只是爬虫Avro:数据序列化系统Chukwa:用于管理大规模分布式集群的数据收集系统ZooKeeper:用于分布式应用的高性能协同服务Hbase:类似于BigTable的,key-value数据库系统PIG:并行计算的一种高级语言Hive:数据仓库Mahout:分布式机器学习和数据挖掘的LibHama:基于BSP的超大规模科学计算框架WhoUsesHadoopAmazonAdobeAdknowledge:

behavioraltargeting,clickstreamanalyticsAlibabaBaidu:搜索日志分析;每周处理3000TB数据BixoLabs:webminingDatagraph:处理RDF数据,存储、索引EBay

:532nodes,搜索优化和研究ETHZurichSystemsGroup:教学《MassivelyParallelDataAnalysiswithMapReduce》Facebook

:1100nodes,12PB;300nodes,3PBFOX:3个Cluster用于日志分析、数据挖掘、机器学习Freestylers:构建基于图片的推荐系统GoogleGruter.Corp:索引、Link分析、数据挖掘Hulu:HbasehostingIBMKrugle

:源代码搜索Last.fm:图表计算、A/B测试,userprofile分析,cookie级的报表处理LinebergerComprehensiveCancerCenter:癌症相关的研究,使用SeqWareLinkedIn:这人你可能认识TheNewYorkTimesPARC:分析Wikipedia里的冲突Powerset/MicrosoftPressflip:个性化搜索,训练SVM模型Yahoo!:4000nodes(2*4cpuboxesw4*1TBdisk&16GBRAM)Moreon/hadoop/PoweredBy

GoalsofHDFS大数据集存储 –10Knodes,100millionfiles,10PB

应付硬件故障 –用文件多副本应付故障问题 –故障自动检测和恢复更适合批量处理 –搬移计算比搬移数据更廉价 –数据一次写入,多次读取 –更注重数据读取的高吞吐量,而不是低延时适应复杂的硬件及软件平台TheFileSystem一个集群只有一个Namespace跟Unix的文件系统Namespace很相似,不过不支持Hardlink、Softlink文件分块存储一般一块大小为64M,可配置每块会被复制在多个DataNode上支持回收站当一个文件被删除时会先放入用户下的回收站回收站会被定期清除恢复的方式是将文件从回收站移出NameNodeMetadataMeta-data存在内存中 –整个Meta-data放入主内存 –Nodemandpagingofmeta-dataMeta-data记录了 –文件列表信息 –每个文件的块列表 –每个块对应的DataNode –文件属性,如创建时间、创建者、几份副本等TransactionLog(EditLog) –记录了文件系统的每个变化,如创建文件、删除文件、修改文件的副本数等 –EditLog会被合并为FsImage并存入磁盘Meta-data磁盘故障 –NameNode可以维护多份数据DataNodeABlockServer –将数据存储本机文件系统(e.g.ext3) –存储数据块的Meta-data(e.g.CRC,ID)汇报 –启动时向NameNode注册本地存储的文件块 –定期向NameNode报告本机存活(心跳)数据输送 –接收来自客户端的写数据 –向客户端发送数据 –将数据传输到指定的DataNodesBlockReplicaPlacement机架感知NameNode能感知机架,选择较优的方式假设有3份或以上,目前的策略是一份放在本地节点上第二份放在另外一个机架的节点上第三份放在跟第二份同机架的不同节点上其他的随机放置客户端从最近的块读取DataCorrectness用CRC32来做数据校验 –UseCRC32文件写入 –由客户端负责计算CRC –checksum存放在DataNode文件读取 –客户端从DataNode读取数据和checksum –由客户端校验,如果不通过,则客户端尝试从其他的副本读取数据FSShellFShadoopfs-mkdir/foodirhadoopfs-rmr/foodirhadoopfs-cat/foodir/myfile.txthadoopfs-tail/foodir/myfile.txtChmod,chown,put,mv,cp,du,dus更多命令请运行hadoopfs–help获取DFSAdminSafemode,upgradeProgress,refreshNodes,…fsck文件系统检查Balancer集群均衡WebUIMap-reduceProgrammingParadigmMap-reduceProgrammingParadigmMap-reduce是一种适合分布式计算的编程范式input|map|shuffle|reduce|output最简单的实现方式cat*|grep‘java’|sort|uniq-c|cat>file实现这种编程范式的有GoogleHadoopOracleTeradata……HadoopMap/Reduce(input)<k1,v1>->

map

-><k2,v2>->

combine*

-><k2,v2>->reduce

-><k3,v3>(output)combine过程可能没有,也可能有多次Mapperpublic

classMapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>{

/***Calledonceatthestartofthetask.*/

protected

voidsetup(Contextcontext)throwsIOException,InterruptedException{}

protected

voidmap(KEYINkey,VALUEINvalue,Contextcontext)throwsIOException,InterruptedException{context.write((KEYOUT)key,(VALUEOUT)value);}

/***Calledonceattheendofthetask.*/

protected

voidcleanup(Contextcontext)throwsIOException,InterruptedException{}}Reducerpublic

classReducer<KEYIN,VALUEIN,KEYOUT,VALUEOUT>{

/***Calledonceatthestartofthetask.*/

protected

voidsetup(Contextcontext)throwsIOException,InterruptedException{}

protected

voidreduce(KEYINkey,Iterable<VALUEIN>values,Contextcontext)throwsIOException,InterruptedException{

for(VALUEINvalue:values){context.write((KEYOUT)key,(VALUEOUT)value);

}

}

/***Calledonceattheendofthetask.*/

protected

voidcleanup(Contextcontext)throwsIOException,InterruptedException{}}JobSetup

public

static

voidmain(String[]args)throwsException{String[]otherArgs=newGenericOptionsParser(conf,args).getRemainingArgs();

if(otherArgs.length!=2){System.err.println("Usage:wordcount<in><out>");System.exit(2);

}Jobjob=newJob(newConfiguration(),"wordcount");job.setJarByClass(WordCount.class);

//设置输入job.setInputFormatClass(TextInputFormat.class);FileInputFormat.addInputPath(job,newPath(otherArgs[0]));

//Mapjob.setMapperClass(TokenizerMapper.class);

//Combinejob.setCombinerClass(IntSumReducer.class);

//Reducejob.setReducerClass(IntSumReducer.class);

job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);

//设置输出FileOutputFormat.setOutputPath(job,newPath(otherArgs[1]));

//提交Job并执行System.exit(job.waitForCompletion(true)?0:1);

}InjectPointsInputjob.setInputFormatClass()SplitRecordReaderMapjob.setMapperClass()Combine*job.setCombinerClass()Shufflingjob.setPartitionerClass()Sortjob.setSortComparatorClass()Groupingjob.setGroupingComparatorClass()Reducejob.setReducerClass()Outputjob.setOutputFormatClass()JobTracker&TaskTrackerJob&Task一个Job会被分成多个Task执行一个Task对应一个Map或者ReduceJobTracker运行在Master上,管理和跟踪每个Job收集Task的信息状态,并汇总重新调度失败的任务TaskTracker向JobTracker汇报状态(心跳)运行在每个计算节点上,管理和跟踪每个Task收集task的信息,并提供给JobTrackerFIFO先到先得,排队执行FairSchedule

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论