首页 hadoop

hadoop

举报
开通vip

hadoop    Hadoop——当今非常非常热门的大数据应用技术,已经被Amazon、FaceBook、百度和阿里巴巴等知名公司广泛应用在自己的核心产品中。作为一种开源的云计算应用技术,它使得众多不具备耗费大量资源研发云计算平台的企业,便利高效的处理自己的大数据,并从中获利。    在这里,我们简单的对这一分布式平台技术进行介绍,然后切入到部署和简单的应用实例,从而使大家有所了解,结合到自己的产品中考虑是否有应用的可能性...

hadoop
    Hadoop——当今非常非常热门的大数据应用技术,已经被Amazon、FaceBook、百度和阿里巴巴等知名公司广泛应用在自己的核心产品中。作为一种开源的云计算应用技术,它使得众多不具备耗费大量资源研发云计算平台的企业,便利高效的处理自己的大数据,并从中获利。    在这里,我们简单的对这一分布式平台技术进行介绍,然后切入到部署和简单的应用实例,从而使大家有所了解,结合到自己的产品中考虑是否有应用的可能性。    事实上,关于ApacheHadoop网络上已经有相当的中文和英文资料,大家可以google出自己感兴趣的点。但是简单说来,hadoop项目主要包括分布式存储平台HDFS、用于处理海量数据分布式计算的MapReduce以及自带的非关系型数据库Hbase等等。这里我们主要关注的是前两者,至于其他的如FaceBook为了更便利使用MapReduce研发的Hive以及最新的YARN,本文暂不做进一步介绍。一.浅谈HDFS和MapReduceHDFS的 结构如图1所示:从中,可以清晰的看出Hadoop分布式平台的架构,一个Hadoop往往包括至少一个Namenode(蓝色的长方形)和多个Datanode(黄色的方形)。前者属于管理者兼职元数据存储中心,后者负责执行Namenode的调度命令且存储数据。其中的client,可以看做是使用这一平台的用户或者应用程序,他们使用这一平台进行读写操作。值得注意的是,Datanode内部的小方块, 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示的是存储在内部的“数据块”,这些数据块是有冗余的。比如配置文件中设置一个“块“大小为64M,备份数目为2,那么一个640M的文件将分成10*3个块,且由Namenode进行调度后分布在各个Datanode中。图中的Rack表示一个机架,在大规模hadoop部署中,这些节点将分布在不同的机架上。而且同样一个数据块和它的备份通常位于不同机架上。由于Hadoop集群往往是由一些廉价的PC所构成,所有这些设计,均是为了满足这一分布式系统的可靠性。在上述设计支持下,一些主机Down,没问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 我们在其他机器上有数据块的备份,一个机架的电源被管理员踢掉,够悲剧吧,也没问题,有机架感知技术支撑(鸡蛋放到一个篮子中的情况除外)。其他更详尽的介绍,请自行查找。接下来该谈一谈MapRedce了,它的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 如图2所示:总体来说,MapReduce是将一份大的任务拆分成多个子任务,通过分布式系统的调度,拆分成Map和Reduce来协同完成的一个过程。就上面的示意图来讲,假设现在处理的是计算一个文本文件中,各单次出现次数的任务。那么,上面的split0-split4就是这个文件被拆分成的各个“数据块“,这些数据快,传给Map的worker后被处理成{Key,value}键值对。如假设split0中包含的是”hadoopisamazingtools,isverygood”那么Map的输出将是{hadoop,1}{is,1}{amazing,1}{tools,1},等。这些结果通常是先存储在当前运行Map任务的节点的内存中,到达一个阀值后,才会被写入磁盘,同时会通知运行Reduce任务的节点来拉取结果。在这个过程中,数据实际上是要经过一些自动的排序和序列化。接着各个Map任务节点的计算结果被拉取到Reduce节点后,会生成计算结构,并最终返回给用户。实际上,现实中一个任务不一定一次Map-Reduce任务就可以解决,有可能经过多轮,才能产生最终结果。 二.Hadoop部署实战由于资源有限,我这里是在Win7的虚拟机里面,安装了两个centos系统,10.65.110.111master(作为Namenode和Datanode)10.65.110.112slave(作为Datanode)关于如何搭建,网上有很多详细教程,我这里只强调几个重要的点:(1)安装JDK,推荐使用yum安装java-1.6.0-openjdk-devel-1.6.0.0,自动安装防止自己装费事儿且容易出错。安装后,环境变量配置,也就是/etc/profile下面添加,安装的路径exportJAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0"exportPATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar这个一定要根据自己实际的路径来。完事儿后,记得要source一下(2)配置无密码登陆,由于Namenode要和datanode通信,这个也是比较重要的,下面这段是网上推荐的一种方式:cd/rootmkdir.sshchmod700.sshcd.ssh创建密码为空的 RSA 密钥对:ssh-keygen-trsa-P""在提示的对称密钥名称中输入 id_rsa将公钥添加至 authorized_keys 中:catid_rsa.pub>>authorized_keyschmod644authorized_keys然后ssh一下本机看是否成功,接着,配置master和slave的互通ssh-copy-id-i~/.ssh/id_rsa.pubroot@slave(注意这里的slave是你要配置互通的namenode的名称,一定要对应才可)其他的配置如/etc/hosts配置和hadoop的conf下配置不再累述。下面是我的虚拟机两个节点集群的,配置结果在win7浏览器上输入http://10.65.110.111:50070,可以登陆到对应的web页面友情提示一下,出现页面Browsethefilesystem选项打不开情况时,需要到C:\Windows\System32\drivers\etc修改hosts文件,如我的机器中hosts就添加了10.65.110.111master 10.65.110.112slave关于Hadoop常用命令,除了上面图中报告状态的hadoopdfsadmin–report外,还有下面这些对其文件系统操作的命令,很多跟linux的都很像,只是在前面加了hadoopdfs的前缀。常用的,是-ls列出文件列表,-mkdir创建文件夹,-put从本机网HDFS存放数据等命令。三,MapReduce用例这里,我并不打算详细讲其自带的JAVAexample,只提一下在编译过程中容易出的一个错误。官方文档中在编译wordcount.jar后,运行MapReduce,采用的是下述命令:Hadoopjar/usr/local/hadoop/wordcount.jarorg.myorg.WordCount/test/input/test/output这里面问题点在于”org.myorg.WordCount”,你应该结合自己的,如在我机器上运行unzip–twordcount.jar结果如下:Archive: wordcount.jar  testing:META-INF/        OK  testing:META-INF/MANIFEST.MF  OK  testing:org/          OK  testing:org/apache/       OK  testing:org/apache/hadoop/   OK  testing:org/apache/hadoop/mapred/ OK  testing:org/apache/hadoop/mapred/WordCount.class OK  testing:org/apache/hadoop/mapred/WordCount$MapClass.class OK  testing:org/apache/hadoop/mapred/WordCount$Reduce.class OKNoerrorsdetectedincompresseddataofwordcount.jar.则,org.myorg.WordCount应替换成org.apache.hadoop.mapred.WordCount,否则就会出现ClassNotFoundException:org.myorg.WordCount的错误。这里要提的是,对JAVA不熟悉的人,并不意外着就不能写MapReduce程序。通过Hadoopstreaming技术,可以很方便的使用C++Python等可执行脚本或文件来实现Map和Reduce,然后让集群来调用并产生最终结果。下面还是以简单的名字统计来阐述。这里输入的是 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 有名字年龄的数据,我们要使用这一分布式技术系统统计出相同类型的数量。[root@masterhadoop]#cattest.txt张三15李四20张三15张三16张三15李四20张三15张三16张三15李四20张三15张三16张三15李四20张三15张三16张三15李四20张三15张三16然后使用c++实现简单的Map程序mapper.cpp[root@masterhadoop]#catmapper.cpp#include<string>#include<iostream>usingnamespacestd;intmain(intargc,intargv){stringname,age;while(cin>>name>>age){cout<<name<<""<<age<<""<<"1"<<endl;}return0;}接着实现Reduce.cpp[root@masterhadoop]#catreducer.cpp#include<iostream>#include<map>#include<string>usingnamespacestd;intmain(intargc,intargv){stringkey,value;intnum;map<string,int>count_stat;map<string,int>::iteratorit_count_stat;while(cin>>key>>value>>num){stringtmp_key=key+""+value;it_count_stat=count_stat.find(tmp_key);if(it_count_stat!=count_stat.end()){(it_count_stat->second)++;}else{count_stat.insert(pair<string,int>(tmp_key,1));}}for(it_count_stat=count_stat.begin();it_count_stat!=count_stat.end();it_count_stat++){cout<<(it_count_stat->first)<<""<<(it_count_stat->second)<<endl;}return0;}分别编译成功后,使用cattest.txt|./mapper|./reducer来检验一下(这个也是使用hadoopstreaming的好处之一)[root@masterhadoop]#cattest.txt|./mapper|./reducer张三1510张三165李四205接下来,将text.txtput到HDFS里,然后运行来验证一下,命令如下:hadoopjar\hadoop-streaming-1.1.2.jar\(封装的使用streaming来实现mapreduce的方法)-Dstream.map.output.field.separator=''\(指定map任务输入文件的数据分隔符,我这里是空格)-Dstream.num.map.output.key.fields=2\(map任务输出记录中key所占的域数目,如我这里2表示”张三15”整体作为一个key)-input/usr/test.txt\(HDFS中的输入文件)-output/usr/output2\(HDFS中的输出文件)-mapper./mapper\(map程序)-reducer./reducer\(reduce程序)-filemapper-filereducer(需要打包提交到作业中的文件)结果如图:总结,上面这些简单的例子,在简洁实现的背后是Hadoop集群高效自动的调度。当我们有少量数据处理时候,可以不理会hadoop,在单个机器进行简单的处理,但当你面对数十GB、TB级别海量数据需要 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ,需要以一种廉价高效可靠的方法来实现时,上面这些是否可以给你一个解决思路呢?我们的扫描设备,在运行过程产生大量的日志,其中包括感兴趣的错误日志,又或者WVSS网络爬虫抓取的大量数据,是否可以利用这一既有且成熟的技术来改进,值得我们深思。
本文档为【hadoop】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_248010
暂无简介~
格式:doc
大小:425KB
软件:Word
页数:8
分类:互联网
上传时间:2013-05-22
浏览量:166