Hadoop的部署方案设计.docx
- 文档编号:5617239
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:11
- 大小:821.75KB
Hadoop的部署方案设计.docx
《Hadoop的部署方案设计.docx》由会员分享,可在线阅读,更多相关《Hadoop的部署方案设计.docx(11页珍藏版)》请在冰豆网上搜索。
Hadoop的部署方案设计
Hadoop的部署方案设计
软件包:
hadoop-2.7.2.tar.gz
hadoop-eclipse-plugin-2.7.2.jar
hadoop-common-2.7.1-bin.zip
eclipse
jdk1.8.45
hadoop-2.7.2(linux和windows各一份)
Linux系统(centos或其它)
Hadoop安装环境
准备环境:
安装Hadoop,安装步骤参见Hadoop安装章节。
安装eclipse。
搭建过程如下:
1.将hadoop-eclipse-plugin-2.7.2.jar拷贝到eclipse/dropins目录下。
2.解压hadoop-2.7.2.tar.gz到E盘下。
3.下载或者编译hadoop-common-2.7.2(由于hadoop-common-2.7.1可以兼容hadoop-common-2.7.2,因此这里使用hadoop-common-2.7.1),如果想编译可参考相关文章。
4.将hadoop-common-2.7.1下的文件全部拷贝到E:
\hadoop-2.7.2\bin下面,hadoop.dll在system32下面也要放一个,否则会报下图的错误:
并配置系统环境变量HADOOP_HOME:
5.启动eclipse,打开windows->Preferences的HadoopMap/Reduce中设置安装目录:
6.打开Windows->OpenPerspective中的Map/Reduce,在此perspective下进行hadoop程序开发。
7.打开Windows->ShowView中的Map/ReduceLocations,如下图右键选择NewHadooplocation…新建hadoop连接。
9.新建工程并添加WordCount类:
10.把log4j.properties和hadoop集群中的core-site.xml加入到classpath中。
我的示例工程是maven组织,因此放到src/main/resources目录。
11.log4j.properties文件内容如下:
log4j.rootLogger=debug,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p-%m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=mapreduce_test.log
log4j.appender.R.MaxFileSize=1MB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p%t%c-%m%n
.codefutures=DEBUG
12.在HDFS上创建目录input
hadoopdfs-mkdirinput
13.拷贝本地README.txt到HDFS的input里
hadoopdfs-copyFromLocal/usr/local/hadoop/README.txtinput
14.hadoop集群中hdfs-site.xml中要添加下面的配置,否则在eclipse中无法向hdfs中上传文件:
15.若碰到CannotconnecttoVMcom.sun.jdi.connect.TransportTimeoutException,则关闭防火墙。
16.书写代码如下:
复制代码
packagecom.hadoop.example;
importjava.io.IOException;
importjava.util.StringTokenizer;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Job;
importorg.apache.hadoop.mapreduce.Mapper;
importorg.apache.hadoop.mapreduce.Reducer;
importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;
importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
importorg.apache.hadoop.util.GenericOptionsParser;
publicclassWordCount{
publicstaticclassTokenizerMapperextends
Mapper
privatefinalstaticIntWritableone=newIntWritable
(1);
privateTextword=newText();
publicvoidmap(Objectkey,Textvalue,Contextcontext)
throwsIOException,InterruptedException{
StringTokenizeritr=newStringTokenizer(value.toString());
System.out.print("--map:
"+value.toString()+"\n");
while(itr.hasMoreTokens()){
word.set(itr.nextToken());
System.out.print("--maptoken:
"+word.toString()+"\n");
context.write(word,one);
System.out.print("--context:
"+word.toString()+","+one.toString()+"\n");
}
}
}
publicstaticclassIntSumReducerextends
Reducer
privateIntWritableresult=newIntWritable();
publicvoidreduce(Textkey,Iterable
Contextcontext)throwsIOException,InterruptedException{
intsum=0;
for(IntWritableval:
values){
sum+=val.get();
}
result.set(sum);
context.write(key,result);
System.out.print("--reduce:
"+key.toString()+","+result.toString()+"\n");
}
}
publicstaticvoidmain(String[]args)throwsException{
System.setProperty("hadoop.home.dir","E:
\\hadoop-2.7.2");
Configurationconf=newConfiguration();
String[]otherArgs=newGenericOptionsParser(conf,args)
.getRemainingArgs();
if(otherArgs.length!
=2){
System.err.println("Usage:
wordcount
System.exit
(2);
}
Jobjob=newJob(conf,"wordcount");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setNumReduceTasks
(2);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job,newPath(otherArgs[0]));
FileOutputFormat.setOutputPath(job,newPath(otherArgs[1]));
System.exit(job.waitForCompletion(true)?
0:
1);
}
}
17.点击WordCount.java,右键,点击RunAs—>RunConfigurations,配置运行参数,即输入和输出文件夹,javaapplication里面如果没有wordcount就先把当前projectrun--->javaapplation一下。
其中的localhost为hadoop集群的域名,也可以直接使用IP,如果使用域名的话需要编辑C:
\Windows\System32\drivers\etc\HOSTS,添加IP与域名的映射关系
18.运行完成后,查看运行结果:
方法1:
hadoopdfs-lsoutput
可以看到有两个输出结果,_SUCCESS和part-r-00000
执行hadoopdfs-catoutput/*
方法2:
展开DFSLocations,如下图所示,双击打开part-r00000查看结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 部署 方案设计