版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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开始始云云计计算算之之旅旅2023/1/7什么么是是云云计计算算??2023/1/7什么么是是云云计计算算??搜索索网络络购购物物QQ微博博微信信………不识识庐庐山山真真面面目目,,只只缘缘身身在在此此山山中中云计计算算历历史史2023/1/7网格计算云计算云计算和网网格计算在在Google中的搜索趋趋势15云计算发源于搜索引引擎平台,是是互联网企业业在创业阶段段基于追求低低成本、高性性能、以及资资源灵活分配配与应用快速速布署的考虑虑而开发出一一种IT系统实现技术术。云计算利用大规模低低成本运算单单元通过IP网络连接,以以提供各种计计算服务的IT技术。1/7/202316云计算定义云计算就是通通过网络把信信息技术当作作服务来使用用核心理念最典型代表:Google搜索引擎典型代表云计算是网格格计算、分布布式计算、并并行计算、效效用计算、网网络存储、虚虚拟化、负载载均衡、网络络技术等一些些传统计算方方法的融合体体。核心理念:通通过不断提高高“云”的处处理能力而减减少用户终端端的处理负担担,使用户终终端简化成一一个单纯的输输入输出设备备。17云计算特征按需自助服务广泛的网络接入Title服务可计量资源池快速弹性1/7/2023云计算分类私有云公有云混合云InfrastructureasaService以服务的形式式提供虚拟硬硬件资源,如如虚拟主机/存储/网络络等资源。用户无需购买买服务器、网网络设备、存存储设备,只只需通过互联联网租赁即可可搭建自己的的应用系统典型应用:AmazonWebService(AWS)PlatformasaService提供应用服务务引擎,如互互联网应用编编程接口/运运行平台等。。用户基于该应应用服务引擎擎,可以构建建该类应用。。典型应用:GoogleAppEngine,F,MicrosoftAzure服务务平台SoftwareasaService用户通过Internet(如浏浏览器)来使使用软件。用用户不必购买买软件,只需需按需租用软软件典型应用:GoogleDoc,S,OracleCRMOnDemand,OfficeLiveWorkspace面向外部用户户需求,通过过开放网络提提供云计算服服务IDC,GoogleApp,Saleforce在线CRM大型企业按照照云计算的架架构搭建平台台,面向企业业内部需求提提供云计算服服务企业内部数据据中心等兼顾以上两种种情况的云计计算服务AmazonWebServer等既为企企业内部又为为外部用户提提供云计算服服务按提供的服务务类型按云服务的对对象IAASPaaSSaaSIaaS分布存储分布计算云计算核心技技术云计算算产生生的前前提节约成成本广泛的的网络络接入入虚拟化化技术术的成成熟计算能能力提提升大数据据的出出现竞争2023/1/7节约成成本22广泛的的网络络接入入2023/1/7虚拟化化技术术的成成熟2023/1/724虚拟化化技术术的成成熟2023/1/725虚拟化化技术术的成成熟2023/1/726计算算能能力力提提升升2023/1/727大数数据据的的出出现现2023/1/728云计计算算产产生生原原动动力力2023/1/729云计计算算发发展展现现状状2023/1/7云参参考考架架构构--AWS2023/1/7云参考考架构构--Google2023/1/732BusinesssupportVirtualizationManagement(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谁需要云云计算2023/1/739Hadoop集集群搭建建40三种运行行模式安装简单单,几乎乎不用作作任何配配置,但但仅限于于调试用用途在单节点点上同时时启动nam正常的Hadoop单机模式式伪分布模模式完全分布布式模式式安装和配配置步骤骤参考《Hadoop-1.0.0集群安安装.pdf》》42VirtualBox安装虚虚拟机设置虚拟拟网卡为为host-only模式共享主机机网卡配置虚拟拟机VirtualBoxHost-OnlyEthernetAdapter网网卡IP为虚拟机NetworkAdapterBridged(桥接接模式)Bridged(桥接接模式):默认认使用VMnet0,不提供供DHCP服务,需需要手动动配置IP、网网关、子子网掩码码等虚拟机NetworkAdapterNAT(网络地地址转换换模式)NAT(网络地地址转换换模式):默认认使用VMnet8,提供DHCP服务虚拟拟机机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信息查看集群状状态00:5003000: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万大数据2023/1/7大数据&数数据结构构2023/1/768大数据2023/1/7大数据存存储2023/1/770大数据的的4V2023/1/7数据量时时效效性多多变变性价价值性71Hadoop72大数据据的服服务器器2023/1/7大数据据分析析2023/1/709年4月59秒排序序500GB(在1400个节点点上)173分钟内内排序序100TB数据(在3400个节点点上)74大数据据分析析2023/1/71.可视化分析2.数据挖掘算法法3.预测性分析能能力4.语义引擎5.数据质量和数数据管理75Hadoop的思想之源源:Google下一步Googlewhat?Google搜索引擎GmailGoogleearthGoogle翻译Google+76Google低成本之道道1234不使用超级计计算机,不使使用专业存储储。大量使用普通通的pc服务器,提供供有冗余的集集群服务器器多个数据中心心运营商向Google倒付费77Google面临的难题题大量网页如何存储?搜索算法Rank计算问题1/7/202378Google关关键键技技术术和和思思想想1GFS2Map-Reduce3Bigtable7Google三三大大论论文文TheGoogleFileSystems.pdfMapReduceSimpliedDataProcessingonLargeClusters.pdfBigtableADistributedStorageSystemforStructuredData.pdfTheChubbylockservice.pdfLogicalTimeAWaytoCaptureCausality.pdfLog-StructuredFileSystem.pdf80Hadoop从何而来Hadoop的源起———Lucene对于大数量的的场景,Lucene仍面对与Google同样的困难。。Lucene的目的是为软软件开发人员员提供一个简简单易用的工工具包,以方方便的在目标标系统中实现现全文检索的的功能,或者者是以此为基基础建立起完完整的全文检检索引擎。。DougCutting开创的开源软软件,用java书写代码,实实现与Google类似的全文搜搜索功能,提提供了全文检检索引擎的架架构,包括完完整的查询引引擎和索引引引擎。.LuceneHadoop发展历史LuceneNutchHadoopHadoop群雄逐鹿亚马逊百度云Apache,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原理2023/1/7(1)输输入文文件分分成M块,每每块大大概16M~64MB(可以以通过过参数数决定定),,接着着在集集群的的机器器上执执行分分派处处理程程序(2)M个Map任务和和R个Reduce任务需需要分分派,,Master选择空空闲Worker来分配配这些些Map或Reduce任务(3)Worker读取并并处理理相关关输入入块,,Map函数产产生的的中间间结果果<key,value>对暂时时缓冲冲到内内存(4)中中间结结果定定时写写到本本地硬硬盘,,分区区函数数将其其分成成R个区。。中间间结果果在本本地硬硬盘的的位置置信息息将被被发送送回Master,然后后Master负责把把这些些位置置信息息传送送给ReduceWorkerGoogleMapReduce原理2023/1/7(5)当当Master通知知执执行行Reduce的Worker关于于中中间间<key,value>对的的位位置置时时,,它它调调用用远远程程过过程程,,从从MapWorker的本本地地硬硬盘盘上上读读取取缓缓冲冲的的中中间间数数据据。。当当ReduceWorker读到所有有的中间间数据,,它就使使用中间间key进行排序序,这样样可使相相同key的值都在在一起(6)ReduceWorker根据每一一个唯一一中间key来遍历所所有的排排序后的的中间数数据,并并且把key和相关的的中间结结果值集集合传递递给用户户定义的的Reduce函数。Reduce函数的结结果写到到一个最最终的输输出文件件(7) 当所所有的Map任务和Reduce任务都完完成的时时候,Master激活用户户程序。。此时MapReduce返回用户户程序的的调用点点HadoopMapReduce实现机制制2023/1/7HadoopMapReduce实现机制制2023/1/71、向jobtracker请求一个个新的作作业ID(通过Jobtracker的getNewJobId())2、检查作作业的输输出目录录。比如如,如果果没有指指定输出出目录或或者它已已经存在在,作业业就不会会被提交交,并有有错误返返回给MapReduce程序。3、计算作作业的输输入分片片。如果果分片无无法计算算,比如如因为输输入路径径不存在在,作业业就不会会被提交交,并有有错误返返回给MapReduce程序。HadoopMapReduce实现机制制2023/1/74、将运行行作业所所需要的的资源((包括作作业的JAR文件、配置文文件和计算所所得的输入分分片)复制到到一个以作业业ID号命名的目录录中jobtracker的文件系统。。作业JAR的副本较多((由mapred.submit.replication属性控制,默默认为10),因此,在在tasktracker运行作业任务务时,集群能能为它们提供供许多副本进进行访问。((步骤3)5、告诉jobtracker作业准备执行行(通过调用用JobTracker的submitJob()方法)(步骤骤4)HadoopMapReduce实现机制2023/1/76、Jobtracker接受到对其其submitJob()方法调调用后,会会把此调用用放入一个个内部的队队列中,交交由作业调调度器进行行调度,并并对其进行行初始化。。初始化包包括创建一一个代表该该正在运行行的作业的的对象,它它封装任务务和记录信信息,以便便跟踪任务务的状态和和进程(步步骤5)7、要创建运运行任务列列表,作业业调度器首首先从共享享文件系统统中获取JobClient已经计算好好的输入分分片信息((步骤6)然后为每每个分片创创建一个map任务。创建建的reduce任务的数量量由JobConf的mapred.reduce.tasks属性决定,,它是用setNumReduceTasks()方法来来设定的,,然后调度度器便创建建这么多reduce任务来运行行。任务在在此时指定定ID号。HadoopMapReduce实现机制2023/1/78、TaskTraker运行一个简简单的循环环来定期发发送心跳((heartbeat)给Jobtracker。心跳方法法告知jobtracker,tasktracker是否存活,,同时也充充当两者之之间的消息息通道。作作为心跳的的一部分,,tasktracker会指明它是是否已经准准备运行新新的任务,,如果是,,jobtracker会为它分配配一个任务务,并使用用心跳的返返回值与tasktracker进行通信((步骤7)HadoopMapReduce实现机制2023/1/79、现在,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分配配给相应的的RegionSer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 17980.47-2026农药田间药效试验准则第47部分:除草剂防治根菜类蔬菜田杂草
- 2026年大学第四学年(高级会计)合并报表编制测试题及答案
- 四川雅安天立校2025-2026学年初三5月考前模拟语文试题含解析
- 陕西省榆林市榆阳区2026届初三开学摸底联考数学试题含解析
- 四川省成都市金牛区市级名校2025-2026学年初三英语试题下学期第三次月考试题含解析
- 山东省聊城市东方中学2026届初三5月月考(二统模拟)语文试题含解析
- 山东省青岛市市南区统考市级名校2025-2026学年初三下学期第四次模拟(4月)考试语文试题含解析
- 山东省惠民县联考2026年初三下学期第二次“战疫”线上教学综合测试英语试题含解析
- 2026年政府与企业的合作模式在智能制造中的体现
- 2025 高中文学类阅读理解之童话世界课件
- 移动模架施工安全监理实施细则
- 中兴新云2026年测评-B套题
- 分岗设权内部控制制度
- 2026年全国体育单招考试时事政治(2025.6-2026.1)-2026届中职高考
- 2026年山西经贸职业学院单招职业技能考试题库及答案解析
- 2026年丽水职业技术学院单招职业适应性考试题库带答案详解(基础题)
- 2025年广东中烟工业机电岗位笔试及答案
- 市政工程三级安全教育培训完整
- M30注浆砂浆配合比计算资料
- 《现代汉语语法词类》PPT课件(完整版)
- 云南普通初中学生成长记录-基本素质发展初一-初三备课讲稿
评论
0/150
提交评论