fedora20安装hadoop-2.5.1
下面是“Fedora20安装Hadoop-2.5.1”的完整攻略,包括安装Java、安装Hadoop、配置Hadoop等方面,以及两个示例说明。
安装Java
在安装Hadoop之前,需要先安装Java。可以按照以下步骤进行安装:
- 下载Java安装包,可以从官网(https://www.oracle.com/java/technologies/javase-downloads.html)下载。
- 解压下载的文件,并进入解压后的目录。
- 将Java添加到系统环境变量中,可以在/etc/profile文件中添加以下内容:
export JAVA_HOME=/path/to/javaexport PATH=$JAVA_HOME/bin:$PATH其中,/path/to/java是Java的安装路径。
- 使环境变量生效,可以执行以下命令:
source /etc/profile安装Hadoop
安装Java后,可以按照以下步骤安装Hadoop:
- 下载Hadoop安装包,可以从官网(https://hadoop.apache.org/releases.html)下载。
- 解压下载的文件,并进入解压后的目录。
- 配置Hadoop,可以在/etc/hadoop/hadoop-env.sh文件中添加以下内容:
export JAVA_HOME=/path/to/java其中,/path/to/java是Java的安装路径。
- 配置Hadoop的核心文件,可以在/etc/hadoop/core-site.xml文件中添加以下内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property></configuration>其中,localhost是Hadoop的主机名,9000是Hadoop的端口号。
- 配置Hadoop的HDFS文件系统,可以在/etc/hadoop/hdfs-site.xml文件中添加以下内容:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/path/to/hadoop/data/nameNode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/path/to/hadoop/data/dataNode</value> </property></configuration>其中,/path/to/hadoop/data/nameNode是Hadoop的NameNode数据目录,/path/to/hadoop/data/dataNode是Hadoop的DataNode数据目录。
- 启动Hadoop,可以执行以下命令:
sbin/start-dfs.sh示例说明
下面是两个示例,分别演示了如何使用Hadoop进行文件操作和MapReduce操作。
示例1:文件操作
假设要在Hadoop中创建一个名为test的文件夹,并将本地文件test.txt上传到该文件夹中。可以按照以下步骤进行:
- 创建文件夹:
hadoop fs -mkdir /test- 上传文件:
hadoop fs -put test.txt /test示例2:MapReduce操作
假设要使用Hadoop进行WordCount操作,统计一个文本文件中每个单词出现的次数。可以按照以下步骤进行:
- 创建一个名为input的文件夹,并将文本文件放入该文件夹中。
hadoop fs -mkdir /inputhadoop fs -put input.txt /input- 编写MapReduce程序,例如:
public class WordCount { public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); context.write(word, one); } } } public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } 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(Map.class); job.setCombinerClass(Reduce.class); job.setReducerClass(Reduce.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); }}- 编译MapReduce程序:
hadoop com.sun.tools.javac.Main WordCount.javajar cf wc.jar WordCount*.class- 运行MapReduce程序:
hadoop jar wc.jar WordCount /input /output其中,/input是输入文件夹,/output是输出文件夹。
结论
本文为您提供了“Fedora20安装Hadoop-2.5.1”的完整攻略,包括安装Java、安装Hadoop、配置Hadoop等方面,以及两个示例说明。在实际应用中,可以根据具体需求使用Hadoop进行文件操作和MapReduce操作,从而实现各种功能。