Hadoop平台搭建和测试

上传人:小**** 文档编号:243039675 上传时间:2024-09-14 格式:PPT 页数:26 大小:773KB
返回 下载 相关 举报
Hadoop平台搭建和测试_第1页
第1页 / 共26页
Hadoop平台搭建和测试_第2页
第2页 / 共26页
Hadoop平台搭建和测试_第3页
第3页 / 共26页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,Hadoop,平台的搭建,什么是,Hadoop,Hadoop,是一个能够对大量数据进行,分布式处理,的,软件,框架。,Hadoop,是高效的,因为它以并行的方式工作,通过,并行处理,加快处理速度。,Hadoop,的构成,Hadoop,是项目的总称。主要是由,HDFS,和,MapReduce,组成。,HDFS,是,Google File System,(,GFS,)的开源实现。,MapReduce,是,Google,MapReduce,的开源实现。,HDFS,HDFS,把,节点,分成两类:,NameNode,和,DataNode,。,NameNode,是唯一的,程序与之通信,然后从,DataNode,上存取文件。这些操作是透明的,与普通的文件系统,API,没有区别。,Hadoop,也跟其他,云计算,项目有共同点和目标:实现海量数据的计算。而进行海量计算需要一个稳定的,安全的数据容器,才有了,Hadoop,分布式文件系统,(,HDFS,,,Hadoop,Distributed File System,),MapReduce,最简单的,MapReduce,应用程序,至少包含,3,个部分:一个,Map,函数、一个,Reduce,函数和一个,main,函数。,main,函数将,作业控制,和文件输入,/,输出结合起来。在这点上,,Hadoop,提供了大量的接口和,抽象类,,从而为,Hadoop,应用程序开发,人员提供许多工具,可用于调试和性能度量等。 。,MapReduce,MapReduce,Hadoop,上,一个代表客户机在单个主系统上启动的,MapReduce,应用程序,称为,JobTracker,。类似于,NameNode,,它是,Hadoop,集群中惟一负责控制,MapReduce,应用程序,的系统。在,应用程序,提交之后,将提供包含在,HDFS,中的输入和输出目录。,JobTracker,使用文件块信息(物理量和位置)确定如何创建其他,TaskTracker,从属任务。,MapReduce,应用程序,被复制到每个出现输入文件块的节点。将为特定节点上的每个文件块创建一个惟一的从属任务。每个,TaskTracker,将状态和完成信息报告给,JobTracker,。,HDFS,和,MapReduce,实现是完全分离的,并不是没有,HDFS,就不能,MapReduce,运算,Hadoop,的安装,确保在你集群中的每个节点上都安装了所有,必需,软件:,sun-JDK,,,ssh,,,Hadoop,Java1.6.0,,必须安装。,ssh,必须安装并且保证,sshd,一直运行,以便用,Hadoop,脚本管理远端,Hadoop,守护进程。,安装,JDK,1.,从,sun,主页下载,JDK for Linux,版本。这里下载的是,jdk-6u6-linux-i586.bin,。,2.,用,root,用户登录,ubuntu,。切换到所需的安装目录。类型:,cd,例如,要在,/,usr,/java/,目录中 安装软件,请键入:,cd,/,usr,/java/,,,把,jdk-6u6-linux-i586.bin,文件拷贝这个目录里面,设置权限为可执行类型:,chmod,a+x,jre-6u6-linux-i586.bin,3.,启动安装过程。键入:,./,jre-6u-linux-i586.bin,。,接下来会提示二进制的许可协议,键入,yes,回车即可。安装过程如果遇到一些问题,都同样键入,yes,就可以。,4.,一路下来,最后看到,Done,字样,就完成了,Java,环境的安装。安装的位置就是当前目录,/,usr,/java,,当然你可以选择在别的位置。可以用,ls,命令查看一下是否正常 。,5.,修改,/etc/profile,文件,用命令,(,sudo,gedit,/etc/profile),,在末尾加上下面几行:,JAVA_HOME=/,usr/java/jdk1.6.0_25,PATH=$PATH:$JAVA_HOME/bin,CLASSPATH=.:$JAVA_HOME/lib,export JAVA_HOME,export PATH,export CLASSPATH,具体可以参看这里:,JDK,环境变量的设置:, -version,安装,ssh,1),确认已经连上互联网,输入命令,sudo,apt-get install,ssh,2),配置,ssh,无密码登陆,ssh-keygen,-t,rsa,3,)进入,/home/,username/,文件夹下,cd,.,ssh,/,4,)输入,cp,id_rsa.pub,authorized_keys,5,)验证是否无密码成功:,ssh,localhost,Hadoop,的配置,1.,下载,hadoop,(,Hadoop-1.1.1.tar.gz,),然后将其解压,2.,进入,hadoop,文件夹下的,conf,文件夹进行配置,Hadoop,的配置,MapReduce,程序可以以以下三种模式运行:,Local(Standalone,) Mode,:,只有一个,Java,虚拟机在跑,完全没有分布式的成分。且不使用,HDFS,文件系统,而是使用本机的,Linux,文件系统。,Pseudo-distributed Mode,:,在同一台机器上启动独立数个,JVM,进程,每一个,hadoop,daemon,运行在一个单独的,JVM,进程中,进行,“,伪分布式,”,操作。,Fully-distributed Mode,:,真正的可以运行于多台机器上的分布式模式。,其中,,Standalone mode,使用,local,filesystem,以及,local,MapReducer,job runner,,,Distributed mode,使用,HDFS,以及,MapReduce,daemons,Hadoop,的配置,conf/core-,site.xml,:,为,Hadoop,设定默认的文件系统,fs.default.name,VALUE,Standalone mode:,VALUE=,file:/,Pseudo-distributed mode:,VALUE=,hdfs:/localhost:9000,Fully-Distributed mode,:,VALUE=,hdfs:/namenode,HDFS daemon,将使用该配置属性来决定用作,NameNode,的主机及端口号。,Hadoop,的配置,conf/hdfs-site.xml,dfs.replication,VALUE,Standalone mode:,VALUE=,N/A (,数据无副本该属性无效,),Pseudo-distributed mode:,VALUE=,1 (,只有,1,个,DataNode,),Fully-Distributed mode,:,VALUE=,任意值,(,默认为,3),Hadoop,的配置,conf/mapred-site.xml,mapred.job.tracker,VALUE,Standalone mode:,VALUE=,local,Pseudo-distributed mode:,VALUE=,localhost:9001,Fully-Distributed mode,:,VALUE=,jobtracker:9001,HDFS client,使用这个属性来决定,NameNode,的位置,这样,HDFS client,就可以连接到该,NameNode,.,Hadoop,的配置,此外,还要把,conf/hadoop-env.xml,文件中的,JAVA_HOME,设为,JDK,所在的路径,因为,Hadoop,、,MapReduce,编译和运行时需要用到,JVM.,另外,请将当前用户的身份切换到,root,或者将,hadoop,目录及其全部的子目录和文件的属主和群组改为当前用户,用命令,sudo,chown,R,usr:usr,hadoop,Hadoop,的配置,格式化文件系统,控制台进入,hadoop,文件夹后:,Bin/,hadoop,namenode,-format,启动,Hadoop,:,Bin/start-,all.sh,验证是否启动:,http:/localhost:50030,(,mapreduce,),http:/localhost:50070,(HDFS),MapReduce,任务执行过程回顾,WordCount,数据流概览,一个,Python,的,WordCount,例子,mapper.py,文件,1.,#!/,usr,/bin/python,2.,import sys,#,处理标准输入中的每一行,3.,for line in,sys.stdin,:,4.,for word in,line.split,():,#,从一行中提取出每一个单词并输出,5.,sys.stdout.write(%st%dn, % (word, 1),一个,Python,的,WordCount,例子,reducer.py,文件,1.,#!/,usr,/bin/python,2.,import sys,3.,dict,= ,#,创建一个字典数据结构,#,每一行输入的格式为,4.,for line in,sys.stdin,:,5.,(word, count) =,line.split,(),#,将一行输入中的,word,与,count,提取出来,6.,count =,int(count,),7.,dictword, =,dict.get(word, 0) + count,#,为每一个单词计数,8.,for key in,dict.keys,():,9.,sys.stdout.write(“%st%dn,” % (key,dictkey,),#,输出每一个,(word, count),测试该,Mapper,与,Reducer,是否正确,编写测试数据文件,text.dat,Hello,Hadoop,Hello,MapReduce,Hello Java and Python,键入命令,cat,text.dat,| ./,mapper.py,| ./,reducer.py,输出结果,and1,Java1,Python1,MapReduce,1,Hadoop,1,Hello3,Java,代码简要分析,Job,job,= new,Job(conf, word count);,原型:,Job(Configuration,conf, String,jobName,),;,job.setJarByClass(WordCount.class,);,Set the Jar by finding where a given class came from,job.setMapperClass(TokenizerMapper.class,);,Set the,Mapper,for the job,job.setCombinerClass(IntSumReducer.class,);,Set the combiner class for the job,Java,代码简要分析,job.setReducerClass(IntSumReducer.class,);,Set theReducerfor the job.,job.setOutputKeyClass(Text.class,);,Set the key class for the job output data.,job.setOutputValueClass(IntWritable.class,);,Set the value class for job outputs.,FileInputFormat.addInputPath(job, new Path(otherArgs0);,原型:,staticvoid,addInputPath(JobConf,conf,Path,path,);,Add aPathto the list of inputs for the map-reduce job.,Java,代码简要分析,FileOutputFormat.setOutputPath(job, new Path(otherArgs1);,原型:,staticvoid,setOutputPath,(,JobConf,conf,Path,outputDir,),Set the,Path,of the output directory for the map-reduce job.,System.exit(job.waitForCompletion(true,) ? 0 : 1);,Submit the job to the cluster and wait for it to finish.,Hadoop,内置数据类型,BooleanWritable,:,标准布尔型数值,ByteWritable,:,单字节数值,DoubleWritable,:,双字节数值,FloatWritable,:,浮点数,IntWritable,:,整型数,LongWritable,:,长整型数,Text:,使用,UTF8,格式存储的文本,NullWritable,:,当,中的,key,或,value,为空时使用,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!