hadoop简单应用实例
一、Hadoop简介
Hadoop是一个开源的分布式计算框架,它可以处理大规模数据集并运行在廉价的硬件上。Hadoop采用了分布式文件系统(HDFS)和MapReduce计算模型,以实现高效的数据存储和处理。
二、Hadoop环境搭建
1. 下载Hadoop安装包
在Apache Hadoop下载最新版本的Hadoop安装包,解压缩到指定目录。
2. 配置环境变量
将Hadoop的bin目录加入系统环境变量中。
3. 配置l文件
在conf目录下创建l文件,并配置如下内容:
<configuration>
  <property>
    <name&plication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/hdfs/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/hdfs/datanode</value>
hadoop分布式集搭建  </property>
</configuration>
4. 配置l文件
在conf目录下创建l文件,并配置如下内容:
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>
5. 启动Hadoop集
使用start-all.sh脚本启动Hadoop集。
三、Hadoop简单应用实例
1. WordCount示例
WordCount是Hadoop中最简单的示例程序,它可以统计文本文件中每个单词出现的次数。
(1)创建输入文件
在HDFS上创建输入文件,并将以下内容写入文件:
hello world
hello hadoop
hadoop is good
(2)编写MapReduce程序
创建WordCount.java文件,编写MapReduce程序。
import java.io.IOException;
import java.util.StringTokenizer;
import org.f.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<Object, Text, Text, IntWritable>{
    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 String());
      while (itr.hasMoreTokens()) {
        word.Token());
        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 += ();
      }
      result.set(sum);
      context.write(key, result);
    }
  }
  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。