版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资产评估服务合同格式
- 身心和谐保证书
- 软化水供应合同
- 进口发电机购销协议
- 连接大学与中学数学的纽带
- 酒店客房用品供应商合同
- 重型设备运输招标细节
- 钢筋工程分包协议书样本
- 铝合金门窗工程招标细则
- 2024年版高校校长职务聘请协议书2篇
- 2024年国家公务员考试《申论》真题(副省级)及参考答案
- 人美版美术七年级上册第四单元《第2课 校园创美》课件
- Unit6《Is he your grandpa?》-2024-2025学年三年级上册英语单元测试卷(译林版三起 2024新教材)
- 《浦东机场使用手册(V7-R3版)专项培训》题库
- 九年级化学上册(沪教版2024)新教材解读课件
- 大学生心理健康智慧树知到期末考试答案章节答案2024年中北大学
- 《生物质热电联产工程设计规范》
- 离散数学(上)智慧树知到课后章节答案2023年下桂林电子科技大学
- 2022公务员录用体检操作手册(试行)
- 最新VTE指南解读(静脉血栓栓塞症的临床护理指南解读)
- 市政工程监理规划范本(完整版)
评论
0/150
提交评论