Hadoop基本原理与入门实践.ppt
《Hadoop基本原理与入门实践.ppt》由会员分享,可在线阅读,更多相关《Hadoop基本原理与入门实践.ppt(119页珍藏版)》请在咨信网上搜索。
1、Hadoop基本原理与入门实践基本原理与入门实践网络文化与数字传播中心北京市重点实验室讲述内容干货奉上干货奉上第第1 1章章 Hadoop Hadoop 的起源的起源第第2 2章章 hadoop hadoop 环境配置环境配置第第3 3章章 Hadoop Hadoop 实战实战(wordcount(wordcount与倒排索引与倒排索引)更多内容更多内容第第4 4章章 Hadoop Hadoop 细节细节什么是大数据一个交易系统中的大数据是什么看看现在公司核心业务是什么;并由此产生了多少数据,又有多少数据是公司要处理的。但是一个传统平台并没有这么高的成本效益来处理大数据;企业需要一个很好的平台
2、能够搜集所有有效的搜集所有有效的数据数据:有效地处理大量数据,与系统进行交互和通信这就是Hadoop。那么小型数据平台和大型数据平台又有什么区别?首先水平扩展性,这是一个很有挑战性的问题;必须能够方便的使用并且能够非常灵活在一些不同的应用中使用,也能在虚拟的云计算中使用的平台。这就是企业所期待的平台大数据平台。hadoop的起源Hadoop开始时时nutch的一个子项目,而nutch又是ApacheLucene的子项目。这三个项目都是由DoungCutting创立,每个项目都是上一个项目的演进。Lucene是搜索引擎开发工具包,提供了一个纯Java的高性能全文检索,他可以方便嵌入实际应用中实现
3、全文搜索、索引功能。Nutch项目始于2002年,是以Lucene为基础的实现的搜索引擎应用。Lucene为nutch提供了文本搜索和索引API,Nutch不光有搜索功能,还有数据抓取功能。很快,DougCutting和Mike(Hadoop和Nutch的另一位创始人)就意识到,他们的架构无法扩展支持数以十亿的网页。这时候,Google的研究人员在2003ACM会议上发表描述了谷歌的分布式文件系统,即GFS的论文,即时为他们提供了帮助,解决了网络抓取和索引过程中产生大量文件存储的需求,于是,他们开始写GFS的一个开源实现,即Nutch的分布式文件系统,NDFS。2004年2004年,googl
4、e发表论文介绍了他们的MapReduce系统。2005年,Nutch开发人员在Nutch上实现了第一个MapReduce系统,并在年中实现了算法完全移植。这样,Nutch的NDFS和MapReduce实现不只是适用于搜索领域。2006年2月,开发人员将NDFS和MapReduce移出了Nutch形成了Lucene的一个子项目,称为Hadoop。与此同时,创始人Doung加入了yahoo,yahoo将Hadoop发展成一个能够处理Web数据的系统。2008年2月,Yahoo!宣布其搜索引擎使用的索引是在一个拥有1万个内核的Hadoop集群上构建的。2008年1月,Hadoop称为Apache的顶
5、级项目。至今,除了Yahoo!外,还有Facebook等其他公司使用Hadoop架构。2008年4月,Hadoop打破世界纪录,成为最快的TB级别排序系统。通过一个910个节点的集群,Hadoop在209秒内完成对1TB的数据的排序。2008年11月,Google的报告中声称,它的MapReduce对1TB排序只用了68秒。2009年5月,Yahoo!的团队排序用了62秒。什么是hadoop?它能干什么?诞生背景:谷歌面对的数据和计算难题1.大量的网页怎么存储?大量的网页怎么存储?2.搜索算法搜索算法什么是hadoop?Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以
6、在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduc
7、e。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。Hadoop 体系结构体系结构HDFSHDFS(Hadoop Distributed File SystemHadoop Distributed File System)和MapreduceMapreduce是hadoop的两大核心HDFS(文件系统)实现分布式存储的底层支持Mapreduce(编程模型)实现分布式并行任务处理的程序支持Hadoop 子项目家族子项目家族Hadoop HDFSHDFS:采用Master/Slave结构模型MasterNameNodeJobTrackerDataNodeTaskTrac
8、kerDataNodeTaskTrackerDataNodeTaskTrackerDataNodeTaskTrackerSecondaryNameNodeHDFSHDFS 整个文件系统的大脑,它提供整个文件系统的目录信息,各个文件的分块信息,数据块的位置信息,并且管理各个数据服务器。DataNode分布式文件系统中的每一个文件,都被切分成若干个数据块,每一个数据块都被存储在不同的服务器上,此服务器称之为数据服务器。NameNode在HDFS中,namenode的服务提供整个HDFS文件系统的namespace管理,块管理等所有服务,metadata所有的相关服务都是由namenode进程在提供
9、。Block每个文件都会被切分成若干个块(默认64MB)每一块都有连续的一段文件内容,是存储的基本单位。EditlogFSEditLog类是整个日志体系的核心,提供了一大堆方便的日志写入API,以及日志的恢复存储等功能。SecondaryNameNode的主控服务器,在身后默默的拉取着主控服务器的日志,等待主控服务器牺牲后被扶正。HDFS术语HDFS主要组件的功能NameNode DataNode存储元数据 存储文件内容元数据保存在内存中 文件内容保存在磁盘HadoopMapReduce也采用了Master/Slave(M/S)架构MapReduce术语Hadoop 术语说明Job用户的每一个
10、计算请求,称为一个作业。JobTracker用户提交作业的服务器,同时,它还负责各个作业任务的分配,管理所有的任务服务器。Task每一个作业,都需要拆分开了,交由多个服务器来完成,拆分出来的执行单位,就称为任务。TaskTracker任劳任怨的工蜂,负责执行具体的任务。MapReduce第二章hadoop环境配置 孩儿们操练起来!孩儿们操练起来!实验环境1.PC:linux环境:环境:vmware虚拟机下虚拟机下unbuntu 14.042 或或windows环境:环境:windows+Cygwin 2.java环境:环境:java version 1.7.0_753.Apache官网下载官网
11、下载 hadoop 2.6.04.SSH:windows下可以使用下可以使用SecureCRT或或putty等等ssh client程序,作用是用来远程序,作用是用来远程连接程连接linux服务器,服务器,linux下可以直接使用下可以直接使用ssh命令命令下载HadoopHadoop目录结构为什么要配环境变量1.告诉计算机告诉计算机Hadoop来了:来了:例如输命令调用Hadoop时告诉计算机hadoop的位置,配置PATH路径。2.告诉告诉Hadoop计算机的信息计算机的信息:将Hadoop部署到计算机上,并用hadoop完成一项工作时需要计算机的一些资源,例如登陆HDFS时需要用到计算机
12、端口。3.Hadoop工作时需要按需求配置一些参数,例如告诉Hadoop做分布式运算时有多少个节点。演出开始Hadoop三种运行模式单机模式:只有一个JVM进程,没有分布式,不使用HDFS伪分布式模式:只有一台机器,每个Hadoop守护进程都是一个独立的JVM进程,通常用于调试。完全分布式模式:运行于多台机器上,真实环境。Hadoop三种运行模式1.单机模式:安装简单,几乎不用作任何配置,但仅限于单机模式:安装简单,几乎不用作任何配置,但仅限于调试用途调试用途2.伪分布模式:在单节点上同时启动伪分布模式:在单节点上同时启动namenode、datanode、jobtracker、tasktra
13、cker、secondary namenode等等5个进程,模拟分布式运行的各个节点个进程,模拟分布式运行的各个节点3.完全分布式模式:正常的完全分布式模式:正常的Hadoop集群,由多个各司其集群,由多个各司其职的节点构成职的节点构成Hadoop配置有关文件Hadoop伪分布环境搭建伪分布环境搭建步骤:步骤:1.配置系统环境变量:配置系统环境变量:/etc/profile 2.配置配置hadoop环境变量:修改环境变量:修改hadoop目录以下文件目录以下文件 hadoop-env.sh、mapred-site.xml、core-site.xml hdfs-site.xml、yarn-sit
14、e.xml 3.SSH免密码登陆免密码登陆Hadoop伪分布环境搭建伪分布环境搭建1.配置配置 etc/profile添加:添加:export JAVA_HOME=/home/flamingo/jdk1.7.0_75export HADOOP_HOME=/home/flamingo/hadoop-2.6.0export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin;$PATH:$HADOOP_HOME/bin2.配置配置 hadoop-env.sh添加:添加:expo
15、rt JAVA_HOME=/home/flamingo/jdk1.7.0_753.修改修改hadoop-2.6.0文件权限为用户权文件权限为用户权限:限:默认没有默认没有mapred-site.xml文件,复制文件,复制mapred-site.xml.template一份,并把一份,并把名字改为名字改为mapred-site.xml4.配置下面配置下面4个重要文件:个重要文件:mapred-site.xmlcore-site.xmlhdfs-site.xmlyarn-site.xml mapred-site.xml mapred.job.tracker Master.hadoop:9001 H
16、ost or IP and port of JobTracker.core-site.xml hadoop.tmp.dir/home/flamingo/hadoop-2.6.0/tmpAbase for other temporary directories.fs.default.namehdfs:/Master.hadoop:9000 hdfs-site.xml dfs.replication 1 dfs.name.dir /home/flamingo/hadoop-2.6.0/dfs/name dfs.data.dir /home/flamingo/hadoop-2.6.0/dfs/dat
17、a yarn-site.xml:yarn.nodemanager.aux.services mapreduce_shuffle SSH免密码登陆免密码登陆1、安装、安装SSH:sudo apt-get install ssh 生成公钥与私钥:生成公钥与私钥:ssh-keygen-t rsa 2.ls-al/home/flamingo看是否创建好看是否创建好.ssh目录目录3.创建创建.ssh目录目录:mkdir/home/flamingo/.ssh4.将公钥加入到用于认证的公钥文件中将公钥加入到用于认证的公钥文件中:进入进入.ssh目录:目录:cd.sshcp id_rsa.pub autho
18、rized_keys5.免密码登陆:免密码登陆:ssh localhost配置完成!配置完成!登陆登陆HDFS格式化格式化NameNode:bin/hadoop namenode-format启动启动HDFS:start-dfs.sh ,start-yarn.sh 或者直接或者直接 sbin/start-all.sh查看查看web页面信息:页面信息:localhost:50070Eclipse下搭建Hadoop2.6.0开发环境1.安装eclipse2.下载hadoop对应版本的eclipse插件。3.把插件放到eclipse/plugins目录下4.重启eclipse,打开WindowsPr
19、eferences后,在窗口左侧会有HadoopMap/Reduce选项,点击此选项,在窗口右侧设置Hadoop安装路径。5.配置Map/ReduceLocations。在Window-ShowView中打开Map/ReduceLocations.在Map/ReduceLocations中新建一个HadoopLocation。在这个View中,右键-NewHadoopLocation。在弹出的对话框中你需要配置Locationname,如Hadoop,还有Map/ReduceMaster和DFSMaster。这里面的Host、Port分别为你在mapred-site.xml、core-site
20、.xml中配置的地址及端口。第三章Hadoop实战(wordcount)先来说说先来说说mapreduce编程模型编程模型 从从 MapReduce 自自 身身 的的 命命 名名 特特 点点 可可 以以 看看 出,出,MapReduce由由 两两 个个 阶阶 段段 组组 成成:Map 和和Reduce。用用户户只需编写只需编写 map()和和 reduce()两个函数,两个函数,即可完成简单的即可完成简单的分分布式程序的设计。布式程序的设计。map()函数函数以以 key/value 对作为输入,对作为输入,产生另外一系产生另外一系列列 key/value 对作为中间输出写入本地磁盘。对作为中
21、间输出写入本地磁盘。MapReduce 框框架会自动将这些中间数据按照架会自动将这些中间数据按照 key 值进行聚集,值进行聚集,且且 key 值值相同(相同(用户可设定聚集策略,用户可设定聚集策略,默认情况下是对默认情况下是对 key 值进值进行行哈希取模)哈希取模)的数据被统一交给的数据被统一交给 reduce()函数处理。函数处理。reduce()函数函数以以 key 及对应的及对应的 value 列表作为列表作为输入输入,经合并经合并 key 相同的相同的 value值后,值后,产生另外一系列产生另外一系列 key/value 对作为最终对作为最终输出输出写入写入 HDFS。MapRe
22、duce核心功能Mapreduce版“HelloWorld”WordCount功能:统计输入文件中的每个单词出现的次数在mapreduce中,可以这样编写(伪代码):HDFS的上传和下载通过ecplipse通过命令行bin/hadoopfs-put/本地路径/hdfs路径bin/hadoopfs-get/hdfs路径/本地路径Mapreduce能处理哪些问题?MapReduce能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立,彼此之间不会有牵制,待并行处理完这些子问题后,任务便被解决。谷歌在论文中提到了MapReduce的一些典型应用包括分布式grep、URL访问
23、频率统计、Web连接图反转、倒排索引构建、分布式排序等,稍微复杂一些如K-means聚类、朴素贝叶斯分类问题,都可以用mapreduce的模型建立分布式运算来解决。Mapreduce不能处理哪些问题?不能划分为多个任务的问题,如:1.Fibonacci数值计算:Fibonacci数值计算时,下一个结果需要依赖于前面的计算结果,也就是说,无法将该问题划分成若干个互不相干的子问题,因而不能用MapReduce解决。2.层次聚类法。层次聚类法是应用最广泛的聚类算法之一。其主要思想是,开始时,将每个对象归为一类,然后不断迭代,直到所有对象合并成一个大类(或者达到某个终止条件);在每轮迭代时,需计算两两
24、对象间的距离,并合并距离最近的两个对象为一类。该算法需要计算两两对象间的距离,也就是说每个对象和其他对象均有关联,因而该问题不能被分解成若干个子问题,进而不能用MapReduce解决。倒排索引1.现有一批电话清单,记录了用户A拨打给用户B的记录2.需要做一个倒排索引,记录拨打给B用户所有A的用户13264595857100861234252342310086123123121231326420398231233213121205235253534410086142324232121201008613264595857丨12342523423丨52352535344132642039812312
25、312123丨12023123321312丨14232423212丨输出格式:算法思路源文件分割原始数据以被叫作为key以主叫作为value拥有相同被叫的主叫号码们把主叫号码汇总输出倒排索引输出到HDFS100861326459585712342523423523525353441234252342310086123123121231326420398231233213121201008613264595857132642039812312312123120231233213121008613264595857丨12342523423丨52352535344132642039812312312
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 基本原理 入门 实践
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。