Android中常用单位dp,px,sp之间的相互转换

  • Post category:other

以下是详细讲解“fedora20安装hadoop-2.5.1的完整攻略”:

Fedora20安装Hadoop-2.5.1

Hadoop是一个开源的分布式计算平台,用于处理大规模数据集。本文将介绍在Fedora20上安装Hadoop-2.5.1的完整攻略,并提供两个示例说明。

安装Java

在安装Hadoop之前,我们需要先安装Java。以下是在Fedora20上安装Java的步骤:

  1. 打开终端,输入以下命令安装OpenJDK:

sudo yum install java-1.7.0-openjdk-devel

  1. 输入以下命令检查Java是否安装成功:

java -version

如果输出Java版本信息,则说明Java安装成功。

下载Hadoop

在安装Hadoop之前,我们需要先下载Hadoop。以下是在Fedora20上下载Hadoop-2.5.1的步骤:

  1. 打开浏览器,访问以下网址:

https://archive.apache.org/dist/hadoop/common/hadoop-2.5.1/hadoop-2.5.1.tar.gz

  1. 点击“下载”按钮,下载Hadoop-2.5.1。

安装Hadoop

以下是在Fedora20上安装Hadoop-2.5.1的步骤:

  1. 打开终端,进入Hadoop-2.5.1.tar.gz所在的目录。

  2. 输入以下命令解压Hadoop-2.5.1.tar.gz:

tar -zxvf hadoop-2.5.1.tar.gz

  1. 输入以下命令将Hadoop-2.5.1移动到/usr/local目录下:

sudo mv hadoop-2.5.1 /usr/local

  1. 输入以下命令编辑/etc/profile文件:

sudo gedit /etc/profile

  1. 在文件末尾添加以下内容:

export HADOOP_HOME=/usr/local/hadoop-2.5.1
export PATH=$PATH:$HADOOP_HOME/bin

  1. 输入以下命令使修改生效:

source /etc/profile

  1. 输入以下命令检查Hadoop是否安装成功:

hadoop version

如果输出Hadoop版本信息,则说明Hadoop安装成功。

示例1:运行Hadoop自带的WordCount程序

以下是示例代码,运行Hadoop自带的WordCount程序:

  1. 输入以下命令创建输入文件:

echo "Hello World Bye World" > input.txt

  1. 输入以下命令将input.txt上传到Hadoop的输入目录:

hadoop fs -put input.txt /input

  1. 输入以下命令运行Hadoop自带的WordCount程序:

hadoop jar /usr/local/hadoop-2.5.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar wordcount /input /output

  1. 输入以下命令查看输出结果:

hadoop fs -cat /output/part-r-00000

输出结果为:

Bye 1
Hello 1
World 2

在该示例中,我们使用了Hadoop自带的WordCount程序,统计了输入文件中每个单词出现的次数。

示例2:运行自定义的MapReduce程序

以下是示例代码,运行自定义的MapReduce程序:

  1. 输入以下命令创建输入文件:

echo "Hello World Bye World" > input.txt

  1. 输入以下命令将input.txt上传到Hadoop的输入目录:

hadoop fs -put input.txt /input

  1. 编写自定义的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{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}

   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);
   }

}
“`

  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

  1. 输入以下命令打包WordCount.class:

jar cvf wordcount.jar WordCount*.class

  1. 输入以下命令运行自定义的MapReduce程序:

hadoop jar wordcount.jar WordCount /input /output

  1. 输入以下命令查看输出结果:

hadoop fs -cat /output/part-r-00000

输出结果为:

Bye 1
Hello 1
World 2

在该示例中,我们编写了自定义的MapReduce程序,统计了输入文件中每个单词出现的次数。

总结

本文介绍了在Fedora20上安装Hadoop-2.5.1的完整攻略,并提供了两个示例说明。通过本文的介绍,读者可以更好地理解Hadoop的安装和使用,并在开发中更加灵活地使用Hadoop。