Hadoop基本原理与入门实践PPT文档格式.ppt
《Hadoop基本原理与入门实践PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《Hadoop基本原理与入门实践PPT文档格式.ppt(119页珍藏版)》请在冰豆网上搜索。
这三个项目都是由DoungCutting创立,每个项目都是上一个项目的演进。
Lucene是搜索引擎开发工具包,提供了一个纯Java的高性能全文检索,他可以方便嵌入实际应用中实现全文搜索、索引功能。
Nutch项目始于2002年,是以Lucene为基础的实现的搜索引擎应用。
Lucene为nutch提供了文本搜索和索引API,Nutch不光有搜索功能,还有数据抓取功能。
很快,DougCutting和Mike(Hadoop和Nutch的另一位创始人)就意识到,他们的架构无法扩展支持数以十亿的网页。
这时候,Google的研究人员在2003ACM会议上发表描述了谷歌的分布式文件系统,即GFS的论文,即时为他们提供了帮助,解决了网络抓取和索引过程中产生大量文件存储的需求,于是,他们开始写GFS的一个开源实现,即Nutch的分布式文件系统,NDFS。
2004年,2004年,google发表论文介绍了他们的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的顶级项目。
至今,除了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基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。
充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;
而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。
HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streamingaccess)文件系统中的数据。
Hadoop的框架最核心的设计就是:
HDFS和MapReduce。
HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
Hadoop体系结构,HDFS(HadoopDistributedFileSystem)和Mapreduce是hadoop的两大核心HDFS(文件系统)实现分布式存储的底层支持Mapreduce(编程模型)实现分布式并行任务处理的程序支持,Hadoop子项目家族,HadoopHDFS,HDFS:
采用Master/Slave结构模型,MasterNameNodeJobTracker,DataNodeTaskTracker,DataNodeTaskTracker,DataNodeTaskTracker,DataNodeTaskTracker,SecondaryNameNode,HDFS术语,HDFS主要组件的功能,NameNodeDataNode存储元数据存储文件内容元数据保存在内存中文件内容保存在磁盘,HadoopMapReduce也采用了Master/Slave(M/S)架构,MapReduce术语,MapReduce,第二章hadoop环境配置,孩儿们操练起来!
实验环境,1.PC:
linux环境:
vmware虚拟机下unbuntu14.042或windows环境:
windows+Cygwin2.java环境:
javaversion1.7.0_753.Apache官网下载hadoop2.6.04.SSH:
windows下可以使用SecureCRT或putty等sshclient程序,作用是用来远程连接linux服务器,linux下可以直接使用ssh命令,下载Hadoop,Hadoop目录结构,为什么要配环境变量,1.告诉计算机Hadoop来了:
例如输命令调用Hadoop时告诉计算机hadoop的位置,配置PATH路径。
2.告诉Hadoop计算机的信息:
将Hadoop部署到计算机上,并用hadoop完成一项工作时需要计算机的一些资源,例如登陆HDFS时需要用到计算机端口。
3.Hadoop工作时需要按需求配置一些参数,例如告诉Hadoop做分布式运算时有多少个节点。
演出开始Hadoop三种运行模式,单机模式:
只有一个JVM进程,没有分布式,不使用HDFS,伪分布式模式:
只有一台机器,每个Hadoop守护进程都是一个独立的JVM进程,通常用于调试。
完全分布式模式:
运行于多台机器上,真实环境。
Hadoop三种运行模式,1.单机模式:
安装简单,几乎不用作任何配置,但仅限于调试用途2.伪分布模式:
在单节点上同时启动namenode、datanode、jobtracker、tasktracker、secondarynamenode等5个进程,模拟分布式运行的各个节点3.完全分布式模式:
正常的Hadoop集群,由多个各司其职的节点构成,Hadoop配置有关文件,Hadoop伪分布环境搭建步骤:
1.配置系统环境变量:
/etc/profile2.配置hadoop环境变量:
修改hadoop目录以下文件hadoop-env.sh、mapred-site.xml、core-site.xmlhdfs-site.xml、yarn-site.xml3.SSH免密码登陆,Hadoop伪分布环境搭建1.配置etc/profile添加:
exportJAVA_HOME=/home/flamingo/jdk1.7.0_75exportHADOOP_HOME=/home/flamingo/hadoop-2.6.0exportCLASSPATH=$CLASSPATH:
$JAVA_HOME/lib:
$JAVA_HOME/jre/libexportPATH=$PATH:
$JAVA_HOME/bin;
$PATH:
$HADOOP_HOME/bin2.配置hadoop-env.sh添加:
exportJAVA_HOME=/home/flamingo/jdk1.7.0_75,3.修改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.xmlmapred.job.trackerMaster.hadoop:
9001HostorIPandportofJobTracker.,core-site.xmlhadoop.tmp.dir/home/flamingo/hadoop-2.6.0/tmpAbaseforothertemporarydirectories.fs.default.namehdfs:
/Master.hadoop:
9000,hdfs-site.xmldfs.replication1dfs.name.dir/home/flamingo/hadoop-2.6.0/dfs/namedfs.data.dir/home/flamingo/hadoop-2.6.0/dfs/data,yarn-site.xml:
yarn.nodemanager.aux.servicesmapreduce_shuffle,SSH免密码登陆1、安装SSH:
sudoapt-getinstallssh生成公钥与私钥:
ssh-keygen-trsa2.ls-al/home/flamingo看是否创建好.ssh目录3.创建.ssh目录:
mkdir/home/flamingo/.ssh4.将公钥加入到用于认证的公钥文件中:
进入.ssh目录:
cd.sshcpid_rsa.pubauthorized_keys5.免密码登陆:
sshlocalhost配置完成!
登陆HDFS格式化NameNode:
bin/hadoopnamenode-format启动HDFS:
start-dfs.sh,start-yarn.sh或者直接sbin/start-all.sh查看web页面信息:
localhost:
50070,Eclipse下搭建Hadoop2.6.0开发环境,1.安装eclipse2.下载hadoop对应版本的eclipse插件。
3.把插件放到eclipse/plugins目录下4.重启eclipse,打开WindowsPreferences后,在窗口左侧会有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.xml中配置的地址及端口。
第三章Hadoop实战(wordcount),先来说说mapreduce编程模型,从MapReduce自身的命名特点可以看出,MapReduce由两个阶段组成:
Map和Reduce。
用户只需编写map()和reduce()两个函数,即可完成简单的分布式程序的设计。
map()函数以key/value对作为输入,产生另外一系列key/value对作为中间输出写入本地磁盘。
MapReduce框架会自动将这些中间数据按照key值进行聚集,且ke