以下是详细讲解“fedora20安装hadoop-2.5.1的完整攻略”:
Fedora20安装Hadoop-2.5.1
Hadoop是一个开源的分布式计算平台,用于处理大规模数据集。本文将介绍在Fedora20上安装Hadoop-2.5.1的完整攻略,并提供两个示例说明。
安装Java
在安装Hadoop之前,我们需要先安装Java。以下是在Fedora20上安装Java的步骤:
- 打开终端,输入以下命令安装OpenJDK:
sudo yum install java-1.7.0-openjdk-devel
- 输入以下命令检查Java是否安装成功:
java -version
如果输出Java版本信息,则说明Java安装成功。
下载Hadoop
在安装Hadoop之前,我们需要先下载Hadoop。以下是在Fedora20上下载Hadoop-2.5.1的步骤:
- 打开浏览器,访问以下网址:
https://archive.apache.org/dist/hadoop/common/hadoop-2.5.1/hadoop-2.5.1.tar.gz
- 点击“下载”按钮,下载Hadoop-2.5.1。
安装Hadoop
以下是在Fedora20上安装Hadoop-2.5.1的步骤:
-
打开终端,进入Hadoop-2.5.1.tar.gz所在的目录。
-
输入以下命令解压Hadoop-2.5.1.tar.gz:
tar -zxvf hadoop-2.5.1.tar.gz
- 输入以下命令将Hadoop-2.5.1移动到/usr/local目录下:
sudo mv hadoop-2.5.1 /usr/local
- 输入以下命令编辑/etc/profile文件:
sudo gedit /etc/profile
- 在文件末尾添加以下内容:
export HADOOP_HOME=/usr/local/hadoop-2.5.1
export PATH=$PATH:$HADOOP_HOME/bin
- 输入以下命令使修改生效:
source /etc/profile
- 输入以下命令检查Hadoop是否安装成功:
hadoop version
如果输出Hadoop版本信息,则说明Hadoop安装成功。
示例1:运行Hadoop自带的WordCount程序
以下是示例代码,运行Hadoop自带的WordCount程序:
- 输入以下命令创建输入文件:
echo "Hello World Bye World" > input.txt
- 输入以下命令将input.txt上传到Hadoop的输入目录:
hadoop fs -put input.txt /input
- 输入以下命令运行Hadoop自带的WordCount程序:
hadoop jar /usr/local/hadoop-2.5.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /input /output
- 输入以下命令查看输出结果:
hadoop fs -cat /output/part-r-00000
输出结果为:
Bye 1
Hello 1
World 2
在该示例中,我们使用了Hadoop自带的WordCount程序,统计了输入文件中每个单词出现的次数。
示例2:运行自定义的MapReduce程序
以下是示例代码,运行自定义的MapReduce程序:
- 输入以下命令创建输入文件:
echo "Hello World Bye World" > input.txt
- 输入以下命令将input.txt上传到Hadoop的输入目录:
hadoop fs -put input.txt /input
- 编写自定义的MapReduce程序,代码如下:
“`java
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class WordCount {
public static class TokenizerMapper extends Mapper
public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
“`
- 输入以下命令编译WordCount.java:
javac -classpath /usr/local/hadoop-2.5.1/share/hadoop/common/hadoop-common-2.5.1.jar:/usr/local/hadoop-2.5.1/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.5.1.jar WordCount.java
- 输入以下命令打包WordCount.class:
jar cvf wordcount.jar WordCount*.class
- 输入以下命令运行自定义的MapReduce程序:
hadoop jar wordcount.jar WordCount /input /output
- 输入以下命令查看输出结果:
hadoop fs -cat /output/part-r-00000
输出结果为:
Bye 1
Hello 1
World 2
在该示例中,我们编写了自定义的MapReduce程序,统计了输入文件中每个单词出现的次数。
总结
本文介绍了在Fedora20上安装Hadoop-2.5.1的完整攻略,并提供了两个示例说明。通过本文的介绍,读者可以更好地理解Hadoop的安装和使用,并在开发中更加灵活地使用Hadoop。