Hadoop基本原理与入门实践.ppt
《Hadoop基本原理与入门实践.ppt》由会员分享,可在线阅读,更多相关《Hadoop基本原理与入门实践.ppt(119页珍藏版)》请在三一办公上搜索。
1、Hadoop基本原理与入门实践,网络文化与数字传播中心北京市重点实验室,讲述内容,干货奉上第1章 Hadoop 的起源第2章 hadoop 环境配置第3章 Hadoop 实战(wordcount与倒排索引)更多内容第4章 Hadoop 细节,什么是大数据,一个交易系统中的大数据是什么看看现在公司核心业务是什么;并由此产生了多少数据,又有多少数据是公司要处理的。但是一个传统平台并没有这么高的成本效益来处理大数据;企业需要一个很好的平台能够搜集所有有效的数据:有效地处理大量数据,与系统进行交互和通信 这就是Hadoop。那么小型数据平台和大型数据平台又有什么区别?首先水平扩展性,这是一个很有挑战性
2、的问题;必须能够方便的使用并且能够非常灵活在一些不同的应用中使用,也能在虚拟的云计算中使用的平台。这就是企业所期待的平台 大数据平台。,hadoop的起源,Hadoop 开始时时nutch的一个子项目,而nutch又是Apache Lucene的子项目。这三个项目都是由Doung Cutting创立,每个项目都是上一个项目的演进。Lucene是搜索引擎开发工具包,提供了一个纯Java的高性能全文检索,他可以方便嵌入实际应用中实现全文搜索、索引功能。Nutch项目始于2002年,是以Lucene为基础的实现的搜索引擎应用。Lucene为nutch提供了文本搜索和索引API,Nutch不光有搜索功
3、能,还有数据抓取功能。很快,Doug Cutting和Mike(Hadoop和Nutch的另一位创始人)就意识到,他们的架构无法扩展支持数以十亿的网页。这时候,Google的研究人员在2003 ACM会议上发表描述了谷歌的分布式文件系统,即GFS的论文,即时为他们提供了帮助,解决了网络抓取和索引过程中产生大量文件存储的需求,于是,他们开始写GFS的一个开源实现,即Nutch的分布式文件系统,NDFS。2004年,2004年,google发表论文介绍了他们的MapReduce系统。2005年,Nutch开发人员在Nutch上实现了第一个MapReduce系统,并在年中实现了算法完全移植。这样,N
4、utch的NDFS和MapReduce实现不只是适用于搜索领域。2006年2月,开发人员将NDFS和MapReduce移出了Nutch形成了Lucene的一个子项目,称为Hadoop。与此同时,创始人Doung加入了yahoo,yahoo将Hadoop发展成一个能够处理Web数据的系统。2008年2月,Yahoo!宣布其搜索引擎使用的索引是在一个拥有1万个内核的Hadoop集群上构建的。2008年1月,Hadoop称为Apache的顶级项目。至今,除了Yahoo!外,还有 Facebook等其他公司使用Hadoop架构。2008年4月,Hadoop打破世界纪录,成为最快的TB级别排序系统。通过
5、一个910个节点的集群,Hadoop在209秒内完成对1TB的数据的排序。2008年11月,Google的报告中声称,它的MapReduce对1TB排序只用了68秒。2009年5月,Yahoo!的团队排序用了62秒。,什么是hadoop?它能干什么?,诞生背景:谷歌面对的数据和计算难题,1.大量的网页怎么存储?2.搜索算法,什么是hadoop?,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File Sys
6、tem),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。,Hadoop 体系结构,HDFS(Hadoop Distributed File System)
7、和Mapreduce是hadoop的两大核心HDFS(文件系统)实现分布式存储的底层支持Mapreduce(编程模型)实现分布式并行任务处理的程序支持,Hadoop 子项目家族,Hadoop HDFS,HDFS:采用Master/Slave结构模型,MasterNameNode JobTracker,DataNodeTaskTracker,DataNodeTaskTracker,DataNodeTaskTracker,DataNodeTaskTracker,Secondary NameNode,HDFS术语,HDFS主要组件的功能,NameNode DataNode存储元数据 存储文件内容元数
8、据保存在内存中 文件内容保存在磁盘,Hadoop MapReduce 也采用了 Master/Slave(M/S)架构,MapReduce术语,MapReduce,第二章 hadoop环境配置,孩儿们操练起来!,实验环境,1.PC:linux环境:vmware虚拟机下unbuntu 14.042 或windows环境:windows+Cygwin 2.java环境:java version 1.7.0_754.SSH:windows下可以使用SecureCRT或putty等ssh client程序,作用是用来远程连接linux服务器,linux下可以直接使用ssh命令,下载Hadoop,Had
9、oop目录结构,为什么要配环境变量,1.告诉计算机Hadoop来了:例如输命令调用Hadoop时告诉计算机hadoop的位置,配置PATH路径。2.告诉Hadoop计算机的信息:将Hadoop部署到计算机上,并用hadoop完成一项工作时需要计算机的一些资源,例如登陆HDFS时需要用到计算机端口。3.Hadoop工作时需要按需求配置一些参数,例如告诉Hadoop做分布式运算时有多少个节点。,演出开始 Hadoop三种运行模式,单机模式:只有一个JVM进程,没有分布式,不使用HDFS,伪分布式模式:只有一台机器,每个Hadoop守护进程都是一个独立的JVM进程,通常用于调试。,完全分布式模式:运
10、行于多台机器上,真实环境。,Hadoop三种运行模式,1.单机模式:安装简单,几乎不用作任何配置,但仅限于调试用途2.伪分布模式:在单节点上同时启动namenode、datanode、jobtracker、tasktracker、secondary namenode等5个进程,模拟分布式运行的各个节点3.完全分布式模式:正常的Hadoop集群,由多个各司其职的节点构成,Hadoop配置有关文件,Hadoop伪分布环境搭建步骤:1.配置系统环境变量:/etc/profile 2.配置hadoop环境变量:修改hadoop目录以下文件 hadoop-env.sh、mapred-site.xml、c
11、ore-site.xml hdfs-site.xml、yarn-site.xml 3.SSH免密码登陆,Hadoop伪分布环境搭建1.配置 etc/profile添加:export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin;$PATH:$HADOOP_HOME/bin2.配置 hadoop-env.sh添加:,3.修改hadoop-2.6.0文件权限为用户权限:默认没有mapred-site.xml文件,复制mapred-site.xml.template一份,并
12、把名字改为mapred-site.xml4.配置下面4个重要文件:mapred-site.xmlcore-site.xmlhdfs-site.xmlyarn-site.xml,mapred-site.xml mapred.job.tracker Master.hadoop:9001 Host 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:/Maste
13、r.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/data,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看是否创建好.
14、ssh目录3.创建.ssh目录:mkdir/home/flamingo/.ssh4.将公钥加入到用于认证的公钥文件中:进入.ssh目录:cd.sshcp id_rsa.pub authorized_keys5.免密码登陆:ssh localhost配置完成!,登陆HDFS格式化NameNode:bin/hadoop namenode-format启动HDFS:start-dfs.sh,start-yarn.sh 或者直接 sbin/start-all.sh查看web页面信息:localhost:50070,Eclipse下搭建Hadoop2.6.0开发环境,1.安装eclipse2.下载had
15、oop对应版本的eclipse插件。3.把插件放到eclipse/plugins目录下4.重启eclipse,打开WindowsPreferences后,在窗口左侧会有Hadoop Map/Reduce选项,点击此选项,在窗口右侧设置Hadoop安装路径。5.配置Map/Reduce Locations。在Window-Show View中打开Map/Reduce Locations.在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-New Hadoop Location。在弹出的对话框中你需要配置Location name,如Hado
16、op,还有Map/Reduce Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。,第三章 Hadoop 实战(wordcount),先来说说mapreduce编程模型,从 MapReduce 自 身 的 命 名 特 点 可 以 看 出,MapReduce由 两 个 阶 段 组 成:Map 和Reduce。用户只需编写 map()和 reduce()两个函数,即可完成简单的分布式程序的设计。map()函数以 key/value 对作为输入,产生另外一系列 key/value 对作为中间输出写入本
17、地磁盘。MapReduce 框架会自动将这些中间数据按照 key 值进行聚集,且 key 值相同(用户可设定聚集策略,默认情况下是对 key 值进行哈希取模)的数据被统一交给 reduce()函数处理。reduce()函数以 key 及对应的 value 列表作为输入,经合并 key 相同的 value值后,产生另外一系列 key/value 对作为最终输出写入 HDFS。,MapReduce核心功能,Mapreduce版“Hello World”WordCount功能:统计输入文件中的每个单词出现的次数在mapreduce中,可以这样编写(伪代码):,HDFS的上传和下载,通过ecplips
18、e通过命令行bin/hadoop fs-put/本地路径/hdfs路径bin/hadoop fs-get/hdfs路径/本地路径,Mapreduce能处理哪些问题?,MapReduce 能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立,彼此之间不会有牵制,待并行处理完这些子问题后,任务便被解决。谷歌在论文中提到了 MapReduce 的一些典型应用包括分布式 grep、URL 访问频率统计、Web 连接图反转、倒排索引构建、分布式排序等,稍微复杂一些如K-means聚类、朴素贝叶斯分类问题,都可以用mapreduce的模型建立分布式运算来解决。,Mapreduce
19、不能处理哪些问题?,不能划分为多个任务的问题,如:1.Fibonacci 数值计算:Fibonacci 数值计算时,下一个结果需要依赖于前面的计算结果,也就是说,无法将该问题划分成若干个互不相干的子问题,因而不能用 MapReduce 解决。2.层次聚类法。层次聚类法是应用最广泛的聚类算法之一。其主要思想是,开始时,将每个对象归为一类,然后不断迭代,直到所有对象合并成一个大类(或者达到某个终止条件);在每轮迭代时,需计算两两对象间的距离,并合并距离最近的两个对象为一类。该算法需要计算两两对象间的距离,也就是说每个对象和其他对象均有关联,因而该问题不能被分解成若干个子问题,进而不能用 MapRe
20、duce 解决。,倒排索引,1.现有一批电话清单,记录了用户A拨打给用户B的记录2.需要做一个倒排索引,记录拨打给B用户所有A的用户,23123321312 120 52352535344 10086,10086 丨丨52352535344 1326420398 丨 120 23123321312丨丨,输出格式:,算法思路,源文件,分割原始数据以被叫作为key以主叫作为value,拥有相同被叫的主叫号码们把主叫号码汇总输出倒排索引,输出到HDFS,10086 52352535344,23123321312 120,10086 1326420398 120 23123321312,10086 丨
21、丨52352535344 1326420398 丨 120 23123321312丨丨,第四章 关于hadoop的更多细节,Hadoop名字的起源,Hadoop这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者 Doug Cutting如下解释Hadoop这一名称的来历:这个名字是我的孩子给一头吃饱了的棕黄色大象取的。我的命名标准是简 短,容易发音和拼写,没有太多的含义,并且不会被用于别处。小孩子是这方面的高手。Googol就是小孩子起的名字。,Hadoop 子项目家族,Hadoop 子项目家族,Hadoop家族成员介绍Hadoop Common Hadoop体系最底层的一个模块,为Ha
22、doop各子项目提供各种工具,如:配置文件和日志操作等。Avro Avro是doug cutting主持的RPC项目,有点类似Google的protobuf和Facebook的thrift。avro用来做以后hadoop的RPC,使hadoop的RPC模块通信速度更快、数据结构更紧凑。(RPC:Remote Procedure Call Protocol远程过程调用协议)Chukwa Chukwa是基于Hadoop的大集群监控系统,由yahoo贡献。HBase 基于Hadoop Distributed File System,是一个开源的,基于列存储模型的分布式数据库。,Hive hive类似
23、CloudBase,也是基于hadoop分布式计算平台上的提供data warehouse的sql功能的一套软件。使得存储在hadoop里面的海量数据的汇总,即席查询简单化。hive提供了一套QL的查询语言,以sql为基础,使用起来很方便。(数据库是面向事务的设计,数据仓库是面向主题设计的。)Tip:还记得数据仓库和数据库的区别吗?传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市
24、场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。,Pig Pig是SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的Map和Reduce中,并且用户可以定义自己的功能。Yahoo网格运算部门开发的又一个克隆Google的项目Sawzall。ZooKeeper Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接
25、口和性能高效、功能稳定的系统提供给用户。,现实应用中的Hadoop,现在互联网、世界500强、中小创新企业都在某些地方、某些程度上或者在适应平台上都会用到Hadoop,而且会跨越多个不同纵向的层面。现在通过ETL(Extract Transform and Load)可以从其他的新闻中搜集数据进行处理,把它放在系统上。挖掘数据,这是一个非常普遍的用途。其关注点是,探究数据;用观测数据找到未来的形式,丰富数据的使用。这点经常用于Web应用程序,也是雅虎经常用到的特性。现在Hadoop在4.2多万个电脑上使用了。,Hadoop平台的特点,特点可扩展性;其次,可控制性;第三是可靠性。Hadoop在整
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 基本原理 入门 实践
链接地址:https://www.31ppt.com/p-5432850.html