《快速掌握Hadoop:从入门到实战》- 搭建大数据平台首选

目录

Hadoop 分布式计算和存储框架教程

Hadoop 快速入门

Hadoop 实战

Hadoop 视频教程


Hadoop 分布式计算和存储框架教程

Hadoop 是一个开源的分布式计算和存储框架,由 Apache 基金会开发和维护。它为庞大的计算机集群提供了可靠的、可伸缩的应用层计算和存储支持,允许使用简单的编程模型跨计算机群集分布式处理大型数据集,并且支持在单台计算机到几千台计算机上扩展。

Hadoop 快速入门

安装 Hadoop 环境是学习 Hadoop 的第一步。以下是在 Ubuntu 18.04 LTS 上快速安装 Hadoop 的步骤:

  1. 下载 Hadoop 并解压缩:
wget https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
tar -xzvf hadoop-3.3.0.tar.gz

      2.配置环境变量:

/etc/profile 中添加如下环境变量:

export HADOOP_HOME=/path/to/hadoop-3.3.0
export PATH=$HADOOP_HOME/bin:$PATH

执行 source /etc/profile,使修改生效。

     3.启动 Hadoop 集群:

进入 Hadoop 目录,执行以下命令启动 Hadoop 集群:

cd /path/to/hadoop-3.3.0
sbin/start-all.sh

至此,您已成功启动 Hadoop 集群!

 

Hadoop 实战

下面我们通过一个实例来演示在 Hadoop 中如何分析数据。

我们有一个文本文件 sample.txt,内容如下:

Hello World
Welcome to Hadoop world
Hadoop is a powerful framework

我们将使用 Hadoop 统计单词出现次数。

首先,我们需要把文件上传到 Hadoop 的分布式文件系统上:

hadoop fs -put sample.txt /

接着,我们编写一个 Java 程序 WordCount.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<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 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("/sample.txt"));
    FileOutputFormat.setOutputPath(job, new Path("/output"));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

编译程序并将 WordCount.class 上传到 Hadoop 分布式文件系统上:

javac -classpath ${HADOOP_HOME}/share/hadoop/mapreduce/lib/hadoop-mapreduce-client-core-3.3.0.jar -d . WordCount.java
hadoop fs -mkdir /input
hadoop fs -put WordCount.class /input

最后,在 Hadoop 集群上运行程序:

hadoop jar WordCount.jar /input/sample.txt /output

程序会分析输入文件,输出每个单词出现的次数。

Hadoop 视频教程

如果您想深入学习 Hadoop,在这里提供一个​ 100 集 Hadoop 视频教程 ​。希望对您有所帮助!

视频教程获取方式:

https://vk666.lanzoum.com/iwsCQ0slrh3chttps://vk666.lanzoum.com/iwsCQ0slrh3c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.vk

你的鼓励就像月亮,照亮了在黑暗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值