版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hadoop深入浅出案例驱动实战中程在线(北京)科技有限公司内部教程注意保密Hive的安装和和配置、、原理、、开发课程目标标Hadoop安装、配配置与管管理HDFS原理及开开发,HDFS文件管理理Map--Reduce原理及开开发Hbase的安装和和配置、、原理、、开发2课程安排排day1Step3云计算Hadoop安装、配置大数据Hadoop介绍HDFS介绍与实战MapReduce介绍与实实战Hbase介绍与实实战Hive介绍与实实战疑难解答答day2day33提前准备备提前准备备自我介绍绍1、工作作年限;;2、所在在部门;;3、是否否精通Linux;4、是否否精通Java;5、是否否安装过过Hadoop;学习Hadoop的目目的Hadoop是是IT行行业一个个新的热热点,是是云计算算大数据据处理的的一个具具体实现现。Hadoop本本身具有有很高的的技术含含量,是是IT工工程师学学习的首首选。Hadoop商商业价值值日益增增长,是是商业企企业大数数据处理理的首选选。大数据时时代来临临一分钟内内,互联联网发生生了什么么?YouTube增加72小时视频频Google进行200万次搜索索Spotify增加14首新音乐乐新增域名名70个iTunes下载音乐乐1.5万首新增网站站571个每分钟发发邮件2.04亿封LinkedIn职位搜索索1.1万次亚马逊销销售8.3万美元Snapchat分享照片片10.4万张Twitter发“Tweets””27..8万则Flickr照片浏览览2000万次Skype通话140万分钟Facebook增加350GB数据、增增180个“赞””、每秒秒增加新新帖子4.1万8古代,人人们用牛牛来拉重重物,当当一头牛牛拉不动动一根圆圆木时,,他们不不曾想过过培育更更大更壮壮的牛。。同样,,我们也也不需要要尝试开开发高级级计算机机,而应应尝试着着结合使使用更多多计算机机系统。。---格蕾斯斯.霍珀珀大数据云计算大数据互联网营营销10你准备好好了吗??千载难逢逢的机会会IT界的的又一桶桶金11开始云计计算之旅旅2020-02-11什么是云云计算??2020-02-11什么是云云计算??搜索网络购物物QQ微博微信……不识庐山山真面目目,只缘缘身在此此山中云计算历历史2020-02-11网格计算算云计算云计算和和网格计计算在Google中的搜索索趋势15云计算发源于搜搜索引擎擎平台,,是互联联网企业业在创业业阶段基基于追求求低成本本、高性性能、以以及资源源灵活分分配与应应用快速速布署的的考虑而而开发出出一种IT系统实现现技术。。云计算利用大规规模低成成本运算算单元通通过IP网络连接接,以提提供各种种计算服服务的IT技术。2/11/202016云计算定义云计算就就是通过过网络把把信息技技术当作作服务来来使用核心理念最典型代表:Google搜索引擎典型代表云计算是是网格计计算、分分布式计计算、并并行计算算、效用用计算、、网络存存储、虚虚拟化、、负载均均衡、网网络技术术等一些些传统计计算方法法的融合合体。核心理念念:通过过不断提提高“云云”的处处理能力力而减少少用户终终端的处处理负担担,使用用户终端端简化成成一个单单纯的输输入输出出设备。。17云计算特特征按需自助服务广泛的网络接入Title服务可计量资源池快速弹性2/11/2020云计算分分类私有云公有云混合云InfrastructureasaService以服务的的形式提提供虚拟拟硬件资资源,如如虚拟主主机/存储/网络等资资源。用户无需需购买服服务器、、网络设设备、存存储设备备,只需需通过互互联网租租赁即可可搭建自自己的应应用系统统典型应用用:AmazonWebService((AWS)PlatformasaService提供应用用服务引引擎,如如互联网网应用编编程接口口/运行平台台等。用户基于于该应用用服务引引擎,可可以构建建该类应应用。典型应用用:GoogleAppEngine,F,,MicrosoftAzure服务平台台SoftwareasaService用户通过过Internet((如浏览器器)来使用软软件。用用户不必必购买软软件,只只需按需需租用软软件典型应用用:GoogleDoc,S,OracleCRMOnDemand,OfficeLiveWorkspace面向外部部用户需需求,通通过开放放网络提提供云计计算服务务IDC,GoogleApp,Saleforce在线CRM大型企业业按照云云计算的的架构搭搭建平台台,面向向企业内内部需求求提供云云计算服服务企业内部部数据中中心等兼顾以上上两种情情况的云云计算服服务AmazonWebServer等既为企企业内部部又为外外部用户户提供云云计算服服务按提供的的服务类类型按云服务务的对象象IAASPaaSSaaSIaaS分布存储储分布计算算云计算核核心技术术云计算产产生的前前提节约成本本广泛的网网络接入入虚拟化技技术的成成熟计算能力力提升大数据的的出现竞争2020-02-11节约成本本22广泛的网网络接入入2020-02-11虚拟化技技术的成成熟2020-02-1124虚拟化技技术的成成熟2020-02-1125虚拟化技技术的成成熟2020-02-1126计算能力力提升2020-02-1127大数据的的出现2020-02-1128云计算产产生原动动力2020-02-1129云计算发发展现状状2020-02-11云参考架架构---AWS2020-02-11云参考架架构---Google2020-02-1132BusinesssupportVirtualizationManagement(OpenStack、HMC、SVC//TPC、TSM)PhysicalresourcelayerCloudplatformusersCloudmanagementplatformUsermanagementBillingmanagement……ServicerequestmanagementRBACMonitoringandreportingOSSWorkflowmanagementConfigurationreal--timedataCallCenterCRMBankinterfaceMinicomputer(3computer)PCServer(10computer)Storage(2computer)LoadbalancingSecurity,disasterrecovery,,backup,virtualizationMinicomputer(3computer)PCServer(10computer)Storage(1computer)云参考架架构33云计算的的价值云部署35以分钟时时间部署署复杂企企业应用用36以分钟时时间部署署复杂企企业应用用37以分钟时时间部署署复杂企企业应用用38谁需要云云计算2020-02-1139Hadoop集集群搭建建40三种运行行模式安装简单单,几乎乎不用作作任何配配置,但但仅限于于调试用用途在单节点点上同时时启动namenode、datanode、jobtracker、tasktracker、secondarynamenode等5个进程,,模拟分分布式运运行的各各个节点点。正常的Hadoop集群,由由多个各各司其职职的节点点构成。。单机模式式伪分布模模式完全分布布式模式式安装和配配置步骤骤参考《Hadoop-1..0.0集群安安装.pdf》》42VirtualBox安装虚虚拟机设置虚拟拟网卡为为host-only模式共享主机机网卡配置虚拟拟机VirtualBoxHost-OnlyEthernetAdapter网网卡IP为192.168..0.1虚拟机NetworkAdapterBridged(桥接接模式))Bridged(桥接接模式)):默认认使用VMnet0,不提供供DHCP服务,需需要手动动配置IP、网网关、子子网掩码码等虚拟机NetworkAdapterNAT((网络地地址转换换模式))NAT((网络地地址转换换模式)):默认认使用VMnet8,提供DHCP服务45虚拟机NetworkAdapterHost-only((主机模模式)Host-only((主机模模式)::默认使使用VMnet1,提供DHCP服务当要组成成一个与与物理网网络相隔隔离的虚虚拟网络络时,无无疑非常常适合使使用Host--only模式式。46安装Linux操作系系统安装的过过程中选选择OpenSSH支支持47LinuxShellvimkdirtarchmodchowncpmvSSH安安装安装SSHyuminstallssh启动SSHservicesshdstart设置开机机运行chkconfigsshdonSSH无无密码登登录hduser@@master:~$$ssh-keygen--trsa-P"""hduser@@master:~$$cat$$HOME/..ssh/id_rsa.pub>>>$$HOME//.ssh/authorized_keyshduser@@master:~$$sshmaster..hadoophduser@@master:~$$ssh-copy-id-i$HOME/.ssh//id__rsa.pubhduser@@slave1.hadoophduser@@master:~$$ssh-copy-id-i$HOME/.ssh//id__rsa.pubhduser@@slave2.hadoopJava安装#mkdir//usr/local/java#cd//usr/local/java#chmodu+xjdk-6u30-linux-i586..bin#./jdk--6u30-linux-i586.bin#vi//etc/profile添加加环境变变量exportJAVA_HOME=/usr//java/jdk1.6..0_30/exportCLASSPATH=$CLASSPATH::$JAVA__HOME/lib::$JAVA__HOME/jre//libexportHADOOP_HOME==/usr/local/hadoopexportPATH=$$PATH:$$JAVA_HOME/bin:$$HADOOP_HOME//bin执行#source//etc/profile,使使环境变变量立即即生效51禁用IPV6在所有机机器上操操作#vi//etc/modprobe.d/anaconda.conf添加如下下行installipv6//bin/true重新启动动系统生生效CloneMaster虚虚拟机选择重新新初始化化网卡选选项完全Clone启动新的的虚拟机机修改hostname修改网卡卡,让网网卡生效效,能ping通MasterCloneMaster配配置网卡卡1)必必须确认认克隆((clone))的CentOS6的各个个网卡的的MAC是否有有重复或或与其它它虚拟主主机重复复,最好好利用其其网卡工工具刷新新一下,,生成新新的MAC。使使用vi命令,,打开//etc/sysconfig/network-scripts//下的ifcfg-eth**(*代代表0~~n个网网卡序号号),把把这个新新的MAC修改改进去。。2)修改改/etc//udev/rules.d/70-persistent-net.rules文文件,删删除原来来的eth0那那一段,,把后增增加的eth1改为eth0。如果果有多块块网卡以以此类推推;如果果只有一一行,则则把“eth1”改为为eth0即可可。3)使使用start_udev命令令重新检检测硬件件;4)用用servicenetworkrestart命令令重启下下网络。。54HDFS重要配配置项<!---core--site.xml--->><configuration><property>><name>hadoop..tmp.dir<//name><value>>/app/hadoop//tmp</value><description>>Abaseforothertemporarydirectories..</description></property>55HDFS重要配配置项<!---core--site.xml--->><property>><name><</name>><value>>hdfs:///master.hadoop::9000<//value>><description>></description></property></configuration>>HDFS重要配配置项<!---mapred-site.xml---><configuration><property>><name>mapred..job.tracker<</name>><value>>master.hadoop:9001</value><description>>ThehostandportthattheMapReducejobtrackerrunsat.If""local",thenjobsarerunin--processasasinglemapandreducetask..</description></property></configuration>>HDFS重要配配置项<!---hdfs--site.xml--->><configuration><property>><name>dfs..replication<</name>><value>>3<//value>><description>></description></property></configuration>>修改配置置文件$vi$$HADOOP_HOME/conf//masters修改localhost为master..hadoop$vi$$HADOOP_HOME/conf//slaves修改localhost为master..hadoop添加slave1.hadoopslave2..hadoop59创建hadoop.tmp..dir目录#mkdir-p/app//hadoop/tmp#chownhduser:hadoop//app/hadoop//tmp#....andifyouwanttotightenupsecurity,chmodfrom755to750....#chmod750//app/hadoop/tmp部署slave节点将master.hadoop上安安装配置置完成的的hadoop文件夹夹复制到到slave1.hadoop和slave2..hadoop:hduser@@master:hadoop$$scp--r//usr/local/hadoophduser@@slave1.hadoop://usr/local/hduser@@master:hadoop$$scp--r//usr/local/hadoophduser@@slave2.hadoop://usr/local/格式化HDFS文件系系统在master.hadoop上使使用hduser操作作hduser@@master:hadoop$$bin/hadoopnamenode--format启动Hadoop使用hduser用户户,在master..hadoop上bin/start-all..sh启启动hduser@@master:hadoop$$bin/start-all..sh用jps命令看看到如下下输出,,则安装装成功DataNodeJpsNameNodeJobTrackerTaskTrackerSecondaryNameNodeWeb查查看HDFS信信息查看集群群状态http:///00:50030http:///00:50060大数据大数据时时代来临临一分钟内内,互联联网发生生了什么么?YouTube增加72小时视频频Google进行200万次搜索索Spotify增加14首新音乐乐新增域名名70个iTunes下载音乐乐1.5万首新增网站站571个每分钟发发邮件2.04亿封LinkedIn职位搜索索1.1万次亚马逊销销售8.3万美元Snapchat分享照片片10.4万张Twitter发“Tweets””27..8万则Flickr照片浏览览2000万次Skype通话140万分钟Facebook增加350GB数据、增增180个“赞””、每秒秒增加新新帖子4.1万大数据2020-02-11大数据&&数数据结构构2020-02-1168大数据2020-02-11大数据存存储2020-02-1170大数据的的4V2020-02-11数据量时时效效性多多变变性价价值性71Hadoop72大数据的的服务器器2020-02-11大数据分分析2020-02-1109年4月59秒排序500GB(在1400个节点上上)173分钟内排排序100TB数据(在3400个节点上上)74大数据分分析2020-02-111.可视化分分析2.数据挖掘掘算法3.预测性分分析能力力4.语义引擎擎5.数据质量量和数据据管理75Hadoop的的思想之之源:Google下一步Googlewhat?Google搜索引擎擎GmailGoogleearthGoogle翻译Google+76Google低低成本之之道1234不使用超超级计算算机,不不使用专业业存储。。大量使用普通通的pc服务器,,提供有冗冗余的集集群服务务器多个数据中中心运营商向Google倒付费77Google面面临的难难题大量网页页如何存储储?搜索算法法Rank计算问题题2/11/202078Google关关键技术术和思想想1GFS2Map-Reduce3Bigtable79Google三三大论文文TheGoogleFileSystems.pdfMapReduceSimpliedDataProcessingonLargeClusters.pdfBigtableADistributedStorageSystemforStructuredData..pdfTheChubbylockservice.pdfLogicalTimeAWaytoCaptureCausality..pdfLog--StructuredFileSystem.pdf80Hadoop从从何而来来Hadoop的的源起———Lucene对于大数数量的场场景,Lucene仍面对与与Google同样的困困难。Lucene的目的是是为软件件开发人人员提供供一个简简单易用用的工具具包,以以方便的的在目标标系统中中实现全全文检索索的功能能,或者者是以此此为基础础建立起起完整的的全文检检索引擎擎。DougCutting开创的开开源软件件,用java书写代码码,实现现与Google类似的全全文搜索索功能,,提供了了全文检检索引擎擎的架构构,包括括完整的的查询引引擎和索索引引擎擎。.LuceneHadoop发发展历史史LuceneNutchHadoopHadoop群群雄逐鹿鹿亚马逊百度云Apache,,Cloudera,MapR,HotonWorks,IntelIBMHPDell浪潮云创存储储云服务解决方案案一体机发行版本Hadoop目前Hadoop达到到的高度度实现云计计算的事事实标准准开源软软件包含数十十个具有有强大生生命力的的子项目目已经能在在数千节节点上运运行,处处理数据据量和排排序时间间不断打打破世界界纪录Hadoop定定义Hadoop一一个分分布式系系统基础础架构,,由Apache基金金会开发发。用户户可以在在不了解解分布式式底层细细节的情情况下,,开发分分布式程程序。充充分利用用集群的的威力高高速运算算和存储储。Hadoop由由HDFS、、MapReduce、HBase、Hive和和ZooKeeper等成成员组成成。HDFS和MapReduce是是两个个最基础础最重要要的成员员。Hadoop子子项目家家族PigHadoop客户端使用类似似于SQL的面向数数据流的的语言PigLatinPigLatin可以完成成排序,,过滤,,求和,,聚组,,关联等等操作,,可以支支持自定定义函数数Pig自动把PigLatin映射为Map--Reduce作业上传传到集群群运行,,减少用用户编写写Java程序的苦苦恼三种运行行方式::Gruntshell,脚本方方式,嵌嵌入式HBaseGoogleBigtable的开源实实现列式数据据库可集群化化可以使用用shell、web、api等多种方方式访问问适合高读读写(insert)的场景景HQL查询语言言NoSQL的典型代代表产品品Hive数据仓库库工具。。可以把把Hadoop下的原始始结构化化数据变变成Hive中的表支持一种种与SQL几乎完全全相同的的语言HiveQL。除了不不支持更更新、索索引和事事务,几几乎SQL的其它特特征都能能支持可以看成成是从SQL到Map--Reduce的映射器器提供shell、JDBC/ODBC、Thrift、Web等接口ZookeeperGoogleChubby的开源实实现用于协调调分布式式系统上上的各种种服务。。例如确确认消息息是否准准确到达达,防止止单点失失效,处处理负载载均衡等等应用场景景:Hbase,实现Namenode自动切换换工作原理理:领导导者,跟跟随者以以及选举举过程Sqoop用于在Hadoop和关系型型数据库库之间交交换数据据通过JDBC接口连入入关系型型数据库库Avro数据序列列化工具具,由Hadoop的创始人人DougCutting主持开发发用于支支持大批批量数据据交换的的应用。。支持二二进制序序列化方方式,可可以便捷捷,快速速地处理理大量数数据动态语语言友好好,Avro提供的机机制使动动态语言言可以方方便地处处理Avro数据。Thrift接口Chukwa架构在Hadoop之上的数数据采集集与分析析框架主要进行行日志采采集和分分析通过安装装在收集集节点的的“代理理”采集集最原始始的日志志数据代理将数数据发给给收集器器收集器定定时将数数据写入入Hadoop集群指定定时时启动的的Map--Reduce作业队数数据进行行加工处处理和分分析Hadoop基础管理理中心((HICC)最终展展示数据据CassandraNoSQL,分布式式的Key--Value型数据库库,由Facebook贡献与Hbase类似,也也是借鉴鉴GoogleBigtable的思想体体系只有顺序序写,没没有随机机写的设设计,满满足高负负荷情形形的性能能需求Hadoop特特点可扩展经济AB高效D可靠C可架设于任何pc机上分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备不论是存储的可扩展性还是计算的可扩展行,都是Hadoop的根本分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性基础架构构Hadoop与与Google比较后端系统统:Google数据分析析平台Google集群管理理系统存储+计计算(HDFS+MapReduce)数据仓库库(Hive)内存数据库(Hbase))批处理(Pig)BSP模型(Hama)分布式锁锁(Zoomkeeper)子系统位位置Hadoop应应用案例例国内应用用情况案例1::淘宝每日新增增数据20T累积数据据14P2000+服务器的的云计算算平台每天处理理100,,000+作业任务务,包括100++新增作业业任务每天处理理1P+数据,包括0.5%%新增数据据数据规模模双十一191亿亿背后的开开源技术术?支付宝核核心数据据库集群群处理了了41亿个事务务执行285亿次SQL访问1931亿次内存存数据块块13亿个物理理读生成15TB日志双十一淘宝数据据平台———产品品架构数据应用用开发平平台——数据工场场底层平台台数据开发发平台数据应用用报表需求求(淘数据)即席查询询(adhoc))数据分析析数据挖掘掘数据产品品DataIntegrationDBsyncTTHiveHadoopMapReduceHadoopHDFSDatax报表需求求(淘数据)Hbase即席查询询(adhoc))数据分析析数据挖掘掘数据产品品实时计算算
案例2::暴风影影音每天处理理日志1.2T,20亿行。。存储设计计容量200TB对外提供供产品品分析,,广告分分析,用用户分析析服务务。每天处理理任务上上千个jobs应用领域域搜索社交游戏视频电信医疗交通公安航空电力金融HDFS介绍HDFS定义HDFS是GoogleGFS的开开源版本本,一个个高度容容错的分分布式文文件系统统,它能能够提供供高吞吐吐量的数数据访问问,适合合存储海海量(PB级级)大文文件(通通常超过过64M)。HDFS设计基基础与目目标硬件错误误是常态态,需要要冗余。。流式数据据访问。。即数据据批量读读取而非非随机读读写,Hadoop擅擅长做数数据分析析而不是是数据处处理。大规模数数据集简单一致致性模型型。程序采用用“数据据就近””原则分分配节点点执行。。HDFS不适合合场景1低延迟数据访问HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代价的,对于低延迟访问,可以用Hbase(hadoop的子项目)。2大量的小文件3多用户写入任意修改HDFS架构在Hadoop中,一一个文件件被划分分成大小小固定的的多个文文件块,,分布的的存储在在集群中中的节点点中。111HDFS架构同一个文件块在不同的的节点中中有多个个副本111HDFS架构我们需要要一个集集中的地地方保存存文件的的分块信信息/home/hdfs/a.txt..part1,,3,((dn1,dn2,dn3))/home/hdfs/a.txt..part2,,3,((dn2,dn3,dn4))/home/hdfs/a.txt..part3,,3,((dn6,dn11,,dn28)…HDFS架构HDFS架构BlockNameNodeDataNodeHA策略一个文件件分块,,默认64M用于存储储Blocks保存整个个文件系系统的目目录信息息,文件件信息以以及文件件相应的的分块信信息NameNode一旦宕机机,整个个文件系系统将无无法工作作。如果果NameNode中的数据据丢失,,整个文文件系统统也就丢丢失了。。115HDFS体系结结构NameNodeDataNode事务日志志映像文件件SecondaryNameNode116Namenode管理文件件系统的的命名空空间记录每个个文件数数据块在在各个Datanode上的的位置和和副本信信息协调客户户端对文文件的访访问记录命名名空间内内的改动动或空间间本身属属性的改改动Namenode使用用事务日日志记录录HDFS元数数据的变变化。使使用映像像文件存存储文件件系统的的命名空空间,包包括文件件映射,,文件属属性等Datanode负责所在在物理节节点的存存储管理理一次写入入,多次次读取((不修改改)文件由数数据块组组成,典典型的块块大小是是64MB数据块尽尽量散布布道各个个节点读取数据据流程HDFS文件操操作命令行方式API方式HDFS基本操操作hadoopdfs–ls//hadoopdfs–mkidr//testhadoopdfs–get//filenamehadoopdfs–putsrcfile//desfile列出HDFS文文件hduser@@master:~$$hadoopdfs--ls/注意:hadoop没没有当前前目录的的概念,,也没有有cd命命令。。上传文件件到HDFShduser@@master:~$$hadoopdfs-put/home/hduser//test.txt//app/hadoop//tmp/hduser@@master:~$$hadoopdfs--ls/app//hadoop/tmp/将HDFS的文文件复制制到本地地hduser@@master:~$$hadoopdfs--get//app/hadoop/tmp//test.txt//home//hduser/testdfs..txthduser@@master:~$$ll/home/hduser/删除HDFS下下的文档档hduser@@master:~$$hadoopdfs--ls/app//hadoop/tmp/hduser@@master:~$$hadoopdfs--rmr//app/hadoop/tmp//test.txthduser@@master:~$$hadoopdfs--ls/app//hadoop/tmp/查看文件件内容hduser@@master:~$$hadoopdfs--ls.hduser@@master:~$$hadoopdfs--cat../test..txt查看HDFS基基本统计计信息hduser@@master:~$$hadoopdfsadmin--report进入和退退出安全全模式hduser@@master:~$$hadoopdfsadmin--safemodeenterhduser@@master:~$$hadoopdfsadmin--safemodeleave更多命令令请参考考《file__system_shell.pdf》节点添加加在新节点点安装好好hadoop把namenode的的有关配配置文件件复制到到该节点点修改masters和和slaves文件,,增加该该节点设置ssh免密密码进出出该节点点单独启动动该节点点上的datanode和tasktracker(hadoop--daemon.shstartdatanode/tasktracker)运行start-balancer.sh进行数数据负载载均衡启动某些些特定后后台进程程hduser@@master:~$$start-all.sh负载均衡衡当节点出出现故障障,或新新增加节节点时,,数据块块分布可可能不均均匀,负负载均衡衡可以重重新平衡衡各个datanode上数数据块的的分布。。hduser@@master:~$$start-balancer.shHDFSAPIJava调用HDFS演示hadoopjar/home/hduser/upload..jar//app/hadoop/tmp//test.txt((本地文件件)/app//hadoop/tmp/outputhadoopdfs-ls//app/hadoop/tmp//hadoopdfs-cat//app/hadoop//tmp/outputMap--ReduceMapReduce算算法思想想MapReduce主主要反反映了映映射和规规约两个个概念,,分别完完成映射射操作和和规约操操作。MapReduce逻逻辑部署署MapReduce逻逻辑部署署Hadoop主主要由由HDFS(HadoopDistributedFileSystem))和MapReduce引引擎两部部分组成成。最底部是是HDFS,它它存储Hadoop集集群中中所有存存储节点点上的文文件。HDFS的上上一层是是MapReduce引擎擎,该引引擎由JobTrackers和和TaskTrackers组成。。MapReduce运运行机制制GoogleMapReduce原理2020-02-11(1) 输入入文件分分成M块,每块块大概16M~64MB(可以通通过参数数决定)),接着着在集群群的机器器上执行行分派处处理程序序
(2)M个Map任务和R个Reduce任务需要要分派,,Master选择空闲闲Worker来分配这这些Map或Reduce任务(3)Worker读取并处处理相关关输入块块,Map函数产生生的中间间结果<key,,value>对暂时缓缓冲到内内存(4) 中间间结果定定时写到到本地硬硬盘,分分区函数数将其分分成R个区。中中间结果果在本地地硬盘的的位置信信息将被被发送回回Master,然后Master负责把这这些位置置信息传传送给ReduceWorkerGoogleMapReduce原理2020-02-11(5) 当Master通知执行行Reduce的Worker关于中间间<key,,value>对的位置置时,它它调用远远程过程程,从MapWorker的本地硬硬盘上读读取缓冲冲的中间间数据。。当ReduceWorker读到所有有的中间间数据,,它就使使用中间间key进行排序序,这样样可使相相同key的值都在在一起(6)ReduceWorker根据每一一个唯一一中间key来遍历所所有的排排序后的的中间数数据,并并且把key和相关的的中间结结果值集集合传递递给用户户定义的的Reduce函数。Reduce函数的结结果写到到一个最最终的输输出文件件
(7) 当所所有的Map任务和Reduce任务都完完成的时时候,Master激活用户户程序。。此时MapReduce返回用户户程序的的调用点点HadoopMapReduce实现机制制2020-02-11HadoopMapReduce实现机制制2020-02-111、向jobtracker请求一个个新的作作业ID(通过Jobtracker的getNewJobId())2、检查作作业的输输出目录录。比如如,如果果没有指指定输出出目录或或者它已已经存在在,作业业就不会会被提交交,并有有错误返返回给MapReduce程序。3、计算作作业的输输入分片片。如果果分片无无法计算算,比如如因为输输入路径径不存在在,作业业就不会会被提交交,并有有错误返返回给MapReduce程序。HadoopMapReduce实现机制制2020-02-114、将运行行作业所所需要的的资源((包括作作业的JAR文件、配配置文件件和计算算所得的的输入分分片)复复制到一一个以作作业ID号命名的的目录中中jobtracker的文件系系统。作作业JAR的副本较较多(由由mapred..submit.replication属性控制制,默认认为10),因此此,在tasktracker运行作业业任务时时,集群群能为它它们提供供许多副副本进行行访问。。(步骤骤3)5、告诉jobtracker作业准备备执行((通过调调用JobTracker的submitJob()方法)((步骤4)HadoopMapReduce实现机制制2020-02-116、Jobtracker接受到对对其submitJob()方法法调用后后,会把把此调用用放入一一个内部部的队列列中,交交由作业业调度器器进行调调度,并并对其进进行初始始化。初初始化包包括创建建一个代代表该正正在运行行的作业业的对象象,它封封装任务务和记录录信息,,以便跟跟踪任务务的状态态和进程程(步骤骤5)7、要创建建运行任任务列表表,作业业调度器器首先从从共享文文件系统统中获取取JobClient已经计算算好的输输入分片片信息((步骤6)然后为为每个分分片创建建一个map任务。创创建的reduce任务的数数量由JobConf的mapred..reduce.tasks属性决定定,它是是用setNumReduceTasks()方法法来设定定的,然然后调度度器便创创建这么么多reduce任务来运运行。任任务在此此时指定定ID号。HadoopMapReduce实现机制制2020-02-118、TaskTraker运行一个个简单的的循环来来定期发发送心跳跳(heartbeat)给Jobtracker。心跳方方法告知知jobtracker,tasktracker是否存活活,同时时也充当当两者之之间的消消息通道道。作为为心跳的的一部分分,tasktracker会指明它它是否已已经准备备运行新新的任务务,如果果是,jobtracker会为它分分配一个个任务,,并使用用心跳的的返回值值与tasktracker进行通信信(步骤骤7)HadoopMapReduce实现机制制2020-02-119、现在,,tasktracker已经被分分配了任任务,下下一步是是运行任任务。第第一步,,通过从从共享文文件系统统把作业业JAR文件复制制到tasktracker所在的文文件系统统,从而而实现作作业的JAR文件本地地化。同同时,tasktracker将应用程程序所需需要的全全部文件件从分布布式缓存存复制到到本地磁磁盘。第第二步,,tasktracker为任务新新建一个个本地工工作目录录,并把把JAR文件中的的内容解解压到这这个文件件夹下。。第三步步,tasktracker新建一个个TaskRunner实例来运运行任务务。TaskRunner启动一个个新的Java虚拟机((步骤9)来运行行每个任任务(步步骤10),以便便用户定定义的map和reduce函数的任任何软件件问题都都不会影影响tasktracker(比如导导致崩溃溃或者挂挂起等))。但在在不同的的任务之之间重用用JVM还是可能能的。10、子进程程通过中中央接口口与父进进程进行行通信。。它每隔隔几秒便便告知父父进程它它的进度度,直到到任务完完成。MapReduce应应用程程序组成成1一个Mapper函数2一个Reducer函数3一个main函数。MapReduceMapReduceMapReduce是是一种编编程模型型,用于于大规模模数据集集(大于于1TB)的并并行运算算通俗的说说就是将将一个大大任务分分成多个个小任务务并行完完成,然然后合并并小任务务的结果果,得到到最终结结果。Map--reduce的思想想就是““分而治治之”MapperMapper负负责“分分”,即即把复杂杂的任务务分解为为若干个个“简单单的任务务”执行行.Reducer对map阶段的的结果进进行汇总总Reducer的数目目由mapred-site.xml配置置文件里里的项目目mapred.reduce.tasks决定定。缺省省值为1,用户户可以覆覆盖之Shuffler在mapper和reducer中中间的一一个步骤骤(可以以没有))可以把mapper的的输出按按照某种种key值重新新切分和和组合成成n份,,把key值符符合某种种范围的的输出送送到特定定的reducer那那里去处处理可以简化化reducer过程程命令操作作hadoopjar/usr//local//hadoop/hadoop-examples-1.0..4.jarwordcount/app//hadoop/tmp/test.txt//app/hadoop/tmp//outputWordCount的的运算过过程假设输入入文件的的内容如如下:HowareyouHelloword,areyouokThisisatest文件被分分成3个个splitSplit1HowareyouSplit2Helloword,areyouokSplit3ThisisatestMap的的过程Split1Howareyou(How,,1))(are,,1))(you,1)Split2Helloword,areyouok(Hello,,1))(word,,,1)(are,,1))(you,1)((ok,,1))Split3Thisisatest(This,1)((is,,1))(a,,1))(test,,1))Reduce的的过程(How,1)((are,1)(you,,1))(Hello,,1))(word,,,1)(are,,1))(you,1)((ok,,1))(This,1)((is,,1))(a,,1))(test,,1))(How,{{1}))(are,,{1,1})(you,{1,1})(Hello,,{1})((word,,,{1})((are,{{1}))(ok,{{1}))(This,{{1}})(is,{{1}})(a,{{1}))(test,,{1})调度机制制缺省为先先入先出出作业队队列调度度支持公平平调度器器支持容量量调度器器任务执行行优化推测式执执行:即即如果jobtracker发现有有拖后腿腿的任务务,会再再启动一一个相同同的备份份任务,,然后哪哪个先执执行完就就会kill去去另外一一个。因因此在监监控网页页上经常常能看到到正常执执行完的的作业有有被kill掉掉的任务务推测式执执行缺省省打开,,但如果果是代码码问题,,并不能能解决问问题,而而且会使使集群更更慢,通通过在mapred--site.xml配配置文件件中设置置mapred.map.tasks.speculative.execution和和mapred.reduce.tasks.speculative.execution可可为map任务务或reduce任务务开启或或关闭推推测式执执行重用JVM,可可以省去去启动新新的JVM消耗耗的时间间,在mapred--site.xml配配置文件件中设置置mapred.job.reuse.jvm..num.tasks设置单单个JVM上运运行的最最大任务务数(1,>1或-1表示没没有限制制)忽略模式式,任务务在读取取数据失失败2次次后,会会把数据据位置告告诉jobtracker,,后者重重新启动动该任务务并且在在遇到所所记录的的坏数据据时直接接跳过((缺省关关闭,用用SkipBadRecord方法法打开))错误处理理机制::硬件故故障硬件故障障是指jobtracker故障或或tasktracker故故障jobtracker是单点点,若发发生故障障目前hadoop还还无法处处理,唯唯有选择择最牢靠靠的硬件件作为jobtrackerJobtracker通过心心跳(周周期1分分钟)信信号了解解tasktracker是是否发生生故障或或负载过过于严重重Jobtracker将从任任务节点点列表中中移除发发生故障障的tasktracker如果故障障节点在在执行map任任务并且且尚未完完成,jobtracker会要求求其它节节点重新新执行此此map任务如果故障障节点在在执行reduce任任务并且且尚未完完成,jobtracker会要求求其它节节点继续续执行尚尚未完成成的reduce任务务错误处理理机制::任务失失败由于代码码缺陷或或进程崩崩溃引起起任务失失败Jvm自自动退出出,向tasktracker父进进程发送送方错误误信息,,错误信信息也会会写入到到日志Tasktracker监听听程序会会发现进进程退出出,或进进程很久久没有更更新信息息送回,,将任务务标记为为失败标记失败败任务后后,任务务计数器器减去1以便接接受新任任务,并并通过心心跳信号号告诉jobtracker任务失失败的信信息Jobtrack获悉悉任务失失败后,,将把该该任务重重新放入入调度队队列,重重新分配配出去再再执行如果一个个任务失失败超过过4次((可以设设置),,将不会会再被执执行,同同时作业业也宣布布失败Hadoop命命令大全全HadoopAPI大全HBaseHbase的特特点高可靠性性高性能可伸缩面向列Hbase介绍绍HBase是一一个分布布式的、、面向列列的开源源数据库库就像Bigtable利用了了Google文件系系统(FileSystem)所所提供的的分布式式数据存存储一样样,HBase在Hadoop之上上提供了了类似于于Bigtable的的能力。。HBase不同同于一般般的关系系数据库库,它是是一个适适合于非非结构化化数据存存储的数数据库..另一个个不同的的是HBase基于列列的而不不是基于于行的模模式Bigtable思想想学生表的的例子S(s##,sn,sd,sa)存放为关关系的学学生表以bigtable方方式存放放学生表表Bigtable:无无所不不包的大大表Hbase逻辑辑模型以表的形形式存放放数据表由行与与列组成成,每个个列属于于某个列列族,由由行和列列确定的的存储单单元称为为元素每个元素素保存了了同一份份数据的的多个版版本,由由时间戳戳来标识识区分Bigtable:无无所不不包的大大表Hbase行键键行键是数数据行在在表里的的唯一标标识,并并作为检检索记录录的主键键访问表里里的行只只有三种种方式通过单个个行键访访问给定行键键的范围围访问全表扫描描行键可以以是最大大长度不不超过64KB的任意意字符串串,并按按照字典典序存储储对于经常常要一起起读取的的行,要要对行键键值精心心设计,,以便它它们能放放在一起起存储Hbase列族族与列列表示为为<列族族>:<<限定符符>Hbase在磁磁盘上按按照列族族存储数数据,这这种列式式数据库库的设计计非常适适合于数数据分析析的情形形列族里的的元素最最好具有有相同的的读写方方式(例例如等长长的字符符串),,以提高高性能列族名尽尽量短列族在创创建表的的时候声声明,一一个列族族可以包包含多个个列,列列中的数数据都是是以二进进制形式式存在,,没有数数据类型型。Hbase时间间戳对应每次次数据操操作的时时间,可可由系统统自动生生成,也也可以由由用户显显式的赋赋值Hbase支持持两种数数据版本本回收方方式:1每个个数据单单元,只只存储指指定个数数的最新新版本2保保存指定定时间长长度的版版本(例例如7天天)常见的客客户端时时间查询询:“某某个时刻刻起的最最新数据据”或““给我全全部版本本的数据据”元素由行行键,,列族::限定符符,时间间戳唯一一决定元素以字字节码形形式存放放,没有有类型之之分HbasevsOracle索引不同同造成行行为的差差异Hbase适合合大量插插入同时时又有读读的情况况Hbase的瓶瓶颈是硬硬盘传输输速度,,Oracle的瓶颈颈是硬盘盘寻道时时间Hbase很适适合寻找找按照时时间排序序topn的的场景传统数据据库的行行式存储储数据存放放在数据据文件内内数据文件件的基本本组成单单位:块块/页块内结构构:块头头、数据据区Hbase物理理模型HMaster为Regionserver分配配region负责regionserver的的负载均均衡发现失效效的regionserver并并重新分分配其上上的regionHDFS上的垃垃圾文件件回收处理schema更新新请求HRegionServerHRegionserver维护护HMaster分配配给它的的HRegion,处处理对这这些HRegion的的IO请请求。HRegionserver负责责切分在在运行过过程中变变得过大大的HRegion可可以看到到,client访问问Hbase上上数据的的过程并并不需要要HMaster参与与(寻址址访问zookeeper和和HRegionserver,,数据读读写访问问HRegioneserver),HMaster仅仅维维护者table和HRegion的元数数据信息息,负载载很低。。行式存储储的问题题读某个列列必须读读入整行行行不等等长,修修改数据据可能导导致行迁迁移行数据据较多时时可能导导致行链链Hbase逻辑辑模型Hbase中数据存存储方式式按RowKey的字典顺序TableRegionRegionRegionRegionRegionServersRegionServerRegionServerRegionServerRegionServerTable&&Region当Table随着记录录数不断断增加而而变大后后,会逐逐渐分裂裂成多份份splits,成为regions,一个region由[startkey,endkey)表示,不不同的region会被Master分配给相相应的RegionServer进行管理理180字典顺序序特点:拥有相同同“前缀缀”的数数据,会会存储在在相邻区区域
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年石灰市场发展现状调查及供需格局分析预测报告
- 2024-2030年眼镜专用设备行业市场深度分析及发展前景与投资机会研究报告
- 2024-2030年瘙痒治疗行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年男士洗护用品行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年电热毯产业规划专项研究报告
- 2024-2030年电梯产业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年生猪行业市场发展分析及发展趋势与投资前景研究报告
- 2024-2030年瓦楞纸产品入市调查研究报告
- 2024-2030年玻璃毡热塑性(GMT)树脂行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年环保服务产业政府战略管理与区域发展战略研究咨询报告
- 2024年新人教版数学七年级上册教学课件 4.2 第2课时 去括号
- 教育集团教师培养方案
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- 一例登革热合并凝血功能障碍患者的个案护理20190-7
- 南京师范大学苏州实验学校(南师苏校)小升初数学试题文本空白卷附详细答案
- 六年级英语Unit1-How--can--I--get-there教材分析
- 起重吊装作业PPT课件
- 新旧生活对比图片.PPT
- EJA技术交流会资料
- 输变电工程基础工程施工工艺(附实景图)
- 江苏如东LNG接收站使用协议
评论
0/150
提交评论