Hadoop2.7.1环境搭建(基于linux)
来源:互联网 发布:测绘cad制图软件 编辑:程序博客网 时间:2024/04/28 03:00
一、配置java环境
1.下载jdk1.8.0_65,并解压(tar-zxvf文件目录)解压到当前目录
2.修改linux环境变量(ubuntu下面普通用户不允许修改/etc/profile文件):
用sudovi /etc/profile进入vim界面
3.按i键进入插入模式
4.配置java_home:
JAVA_HOME=/enviroment/jdk1.8.0_65
exportJAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
exportPATH
CLASSPATH=.:$JAVA_HOME/lib
5.按”:”键,接着wq退出
至此,java环境配置完毕
6.测试java环境:
打开终端,输入java-version、java、javac、echo$JAVA_HOME
如果都没有问题的话,证明java环境以及搭建好了
二、搭建hadoop环境
1.下载官网2.7.1release版本的hadoop
2.用解压命令(tar-zxvf文件目录)解压到当前目录
3.修改hadoop目录下的etc/hadoop中的hadoop-env.sh文件,找到java_home,整行修改为
exportJAVA_HOME=/enviroment/jdk1.8.0_65(jdk所在目录)
4.修改linux目录/ect/profile文件
在末尾加入
exportHADOOP_INSTALL=/enviroment/hadoop-2.7.1(hadoop目录)
exportPATH=$PATH:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin
至此,基础环境已经配好
输入hadoopversion验证,如果可以看到hadoop版本,证明环境已经配置好。
三、配置hadoop
hadoop有三种运行方式:
(1)本地模式:所有程序都在同一个jvm上运行。测试与调试mapreduce方便
(2)伪分布模式:守护进程在本地运行,模拟小规模集群
(3)全分布式模式:守护进程运行在一个集群上面
四、开发环境搭建
1.下载hadoop-eclipse-plugin-2.7.1.jar一定注意要对应版本(linux下跟windows下是不一样的。而且同系统也
需要根据具体使用hadoop的版本来选择相应的插件)
2.将下载好的插件放置到eclipse的plugins目录下面,重启eclipse
3.接着在window--→preference中找到hadoopmap/redurce
点击 brower,选择hadoop的目录
4.在projectexploer中如果可以看到DFSLOCATIONSI就证明里成功不远了
5.windows——>showview -→others,选择map/redurcelocation,出现如图下方所示的方框,点击蓝色的那只
小象以添加hadooplocation
6.配置hadooplocation
locationname:名字任意取
map/reducemaster:host跟port均要跟hadoop的/etc/hadoop中的core-site.xml对应
DFSMASTER
同理,也要跟hdfs-site.xml对应。
配置完这几项,就可以写个简单的mapper来测试一下
7.编写测试用的mapper
packagetestMR;
importjava.io.IOException;
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.LongWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Mapper;
publicclassTestMapperextendsMapper<LongWritable, Text, Text, IntWritable> {
privatestaticfinalintMISSING= 999;
publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException, InterruptedException {
Stringline=value.toString();
Stringyear=line.toString();
intair=0;
if(line.charAt(87)=='+'){
air= Integer.parseInt(line.substring(88,92));
}else{
air= Integer.parseInt(line.substring(87,92));
}
Stringquality=line.substring(92,93);
if(air!=MISSING&&quality.matches("[01459]")){
context.write(newText(year),newIntWritable(air));
}
}
}
8.编写测试用的reduce
packagetestMR;
importjava.io.IOException;
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Reducer;
publicclassTestRedurceextendsReducer<Text, IntWritable, Text, IntWritable> {
publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext)throwsIOException, InterruptedException {
//process values
intmaxValue= Integer.MIN_VALUE;
for(IntWritableval:values){
maxValue= Math.max(maxValue,val.get());
}
context.write(key,newIntWritable(maxValue));
}
}
!!!!!!!!!!!!!注意事项开始!!!!!!!!!!!!!!
1.mapper、redurce很多书上由于hadoop的版本的问题,导致如果按照书上一样编写的话程序会出错。上面两个
是经过修改的可以在2.7.1的环境下运行的
!!!!!!!!!!!!!注意事项结束!!!!!!!!!!!!!!
9.编写用于测试是否可以运行的类
packagetestMR;
importjava.io.IOException;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
importorg.apache.hadoop.mapreduce.Job;
importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;
importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
publicclassTestJob {
publicstaticvoidmain(String[]args)throwsIllegalArgumentException, IOException, ClassNotFoundException,InterruptedException {
if(args.length!= 2){
System.err.print("Usage:MaxTemperature<input path> <output path>");
System.exit(-1);
}
Jobjob=newJob();
job.setJarByClass(TestJob.class);
/**
*此处参数可以在eclipse中设定,主要是输入目录跟输出目录
*/
FileInputFormat.addInputPath(job,newPath(args[0]));
FileOutputFormat.setOutputPath(job,newPath(args[1]));
job.setMapperClass(TestMapper.class);
job.setReducerClass(TestRedurce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
System.exit(job.waitForCompletion(true)?0:1);
}
}
10.配置注释中所说的参数
(1)右键点击项目
(2)runAs→run gonfiguration 进入如图所示界面
(3)选择argument,在programargument中添加:
hdfs://localhost:9000/1901(输入的文件/文件夹等)
hdfs://localhost:9000/123/output(输出的目录)
点击apply,完成配置
11.加入log4j.properties
该文件在hadoop目录中的/etc/hadoop中,直接拷贝到项目的src目录中。
12.运行
右键TestJob—>Run As hadoop,在控制台可以看到如下信息
FileSystem Counters
FILE:Number of bytes read=1881718
FILE:Number of bytes written=3363488
FILE:Number of read operations=0
FILE:Number of large read operations=0
FILE:Number of write operations=0
HDFS:Number of bytes read=1776380
HDFS:Number of bytes written=912605
HDFS:Number of read operations=13
HDFS:Number of large read operations=0
HDFS:Number of write operations=4
Map-ReduceFramework
Mapinput records=6565
Mapoutput records=6565
Mapoutput bytes=921004
Mapoutput materialized bytes=940694
Inputsplit bytes=91
Combineinput records=0
Combineoutput records=0
Reduceinput groups=6565
Reduceshuffle bytes=940694
Reduceinput records=6565
Reduceoutput records=6565
SpilledRecords=13130
ShuffledMaps =1
FailedShuffles=0
MergedMap outputs=1
GCtime elapsed (ms)=6
Totalcommitted heap usage (bytes)=528482304
ShuffleErrors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
FileInput Format Counters
BytesRead=888190
FileOutput Format Counters
BytesWritten=912605
并可以在DFS中看到输出的结果
- Hadoop2.7.1环境搭建(基于linux)
- 基于hadoop2.7.3搭建多机环境(YARN+HA)
- Hadoop2.7.1 集群环境搭建(虚拟机)
- HBase 集群环境搭建-基于Hadoop2.2.0
- 基于hadoop2.7.3搭建单机hadoop环境
- 基于centos的Hadoop2.x环境搭建
- Linux下Hadoop2.7.1集群环境的搭建(超详细版)
- Linux下Hadoop2.7.1集群环境的搭建(超详细版)
- 用Eclipse搭建Hadoop2.7.1开发环境
- Hadoop2环境搭建(单机伪分布)
- hadoop2.2环境搭建
- hadoop2.4环境搭建
- Hadoop2.4.1环境搭建
- 搭建Hadoop2.5.2环境
- Hadoop2环境搭建
- hadoop2.2环境搭建
- 基于linux centos6.5 hadoop2.x伪分布式搭建
- HDP2.0.6+hadoop2.2.0+eclipse(windows和linux下)调试环境搭建
- MarkDown的基本使用
- 动态数码管显示
- cat--创建多维数组
- 字符数组与字符串
- AutoCompleteTextView控件的使用
- Hadoop2.7.1环境搭建(基于linux)
- hilb--生成Hilbert(希尔伯特)矩阵
- Just a Hook hdu1698 [线段树区间更新]
- linux mount
- invhilb--生成逆希尔伯特矩阵
- github结合TortoiseGit使用sshkey,无需输入账号和密码
- 双端队列 の deque
- HDU 1033 Edge 模拟
- 关于java中的多态理解