首先看一个hadoop自带的example
1.启动 start-dfs.sh
启动start-yarn.sh
2.输入http://hadoop-0000:50070/,查看HDFS
3. 上传一个文件,比如JDK
hadoop fs -put jdk-8u77-linux-x64.tar.gz hdfs://hadoop-0000:9000/
4.查看HDFS
5.下载一个文件
hadoop fs -get hdfs://hadoop-0000:9000/jdk-8u77-linux-x64.tar.gz
6. 创建两个目录
hadoop fs -mkdir /wordcount hadoop fs -mkdir /wordcount/input
7.新建一个文件,输入一些数据,保存
上传
hadoop fs -put wordcount.txt /wordcount/input
8.测试wordcount
hadoop jar hadoop-mapreduce-examples-2.6.4.jar wordcount /wordcount/input /wordcount/output
9.查看输出
hadoop fs -ls /wordcount/output
10.查看结果
hadoop fs -cat /wordcount/output/part-r-00000
接着自己实现一个word count的简单示例
Maven Dependency
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.fool.hadoop</groupId> <artifactId>hadoop</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>hadoop</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <hadoop.version>2.6.4</hadoop.version> </properties> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.8</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>org.fool.hadoop.mapred.WordCountJob</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
WordCountMapper.java
package org.fool.hadoop.mapred; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; import com.google.common.base.Splitter; public class WordCountMapper extends Mapper<LongWritable, Text, Text, LongWritable> { @Override protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, LongWritable>.Context context) throws IOException, InterruptedException { String line = value.toString(); Iterable<String> words = Splitter.on(" ").split(line); for (String word : words) { context.write(new Text(word), new LongWritable(1)); } } }
WordReducer.java
package org.fool.hadoop.mapred; import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; public class WordCountReducer extends Reducer<Text, LongWritable, Text, LongWritable> { @Override protected void reduce(Text key, Iterable<LongWritable> values, Reducer<Text, LongWritable, Text, LongWritable>.Context context) throws IOException, InterruptedException { long count = 0; for (LongWritable value : values) { count += value.get(); } context.write(key, new LongWritable(count)); } }
WordCountJob.java
package org.fool.hadoop.mapred; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class WordCountJob { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf); job.setJarByClass(WordCountJob.class); job.setMapperClass(WordCountMapper.class); job.setReducerClass(WordCountReducer.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(LongWritable.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(LongWritable.class); FileInputFormat.setInputPaths(job, new Path("hdfs://hadoop-0000:9000/wc/input")); FileOutputFormat.setOutputPath(job, new Path("hdfs://hadoop-0000:9000/wc/output")); job.waitForCompletion(true); } }
写完之后,maven install打成一个JAR包,上传到Linux,接着创建两个目录,上传一个source
运行如下命令
hadoop jar hadoop-0.0.1-SNAPSHOT.jar
神奇的事情发生了
最后,查看输出结果
相关推荐
Hadoop单词计数(Word Count)的MapReduce实现 Hadoop是一个基于Java的开源大数据处理框架,它提供了一个分布式计算模型,称为MapReduce,用于处理大规模数据。MapReduce模型主要由两个阶段组成:Map阶段和Reduce...
2. **Word Count案例**:这是一个经典的MapReduce示例,用于统计文本中的单词数量。在Map阶段,程序会读取输入的文本文件,将每一行分割成单词,每个单词与1形成键值对。在Reduce阶段,相同的单词键会被归并,对应的...
例如,通过Hadoop进行词频统计(Word Count)是一个经典的入门示例,它展示了如何利用MapReduce处理文本数据,计算每个单词的出现次数。 Hadoop 的流行还催生了一系列相关的生态系统工具,如Hive(用于数据仓库和...
WordCount是Hadoop中最经典的入门级示例程序之一,它主要用于演示如何在Hadoop集群中进行简单的文本词频统计。WordCount程序通常包含以下几个核心部分:输入数据的准备、Mapper类的实现、Reducer类的实现以及程序的...
大数据实验报告 Hadoop 编程实现 wordcount 单词统计程序附源码 本实验报告旨在介绍使用 Hadoop 编程实现 wordcount 单词统计程序的步骤和代码实现。实验的目的在于熟悉 Hadoop 虚拟机的安装与环境的配置,初步理解...
本示例中的“大数据MapReduce实现基于白名单的Word Count”是一个具体的应用案例,旨在通过MapReduce算法统计指定白名单词汇在文本数据中的出现频率。以下是对这个主题的详细解释: 1. **MapReduce模型**: ...
例如,运行 word count 示例: ```sh $ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+' ``` 这将运行一个简单的文本匹配任务,将结果输出到 `output` 目录下。可以通过命令 `$ bin/hadoop...
- 创建一个简单的Spark应用程序,例如Word Count。 - 测试程序是否能在本地或集群环境中正常运行。 #### 使用Spark的功能 1. **Spark Core**: - RDD(弹性分布式数据集):是Spark中最基本的数据抽象,可以...
8. **wc流程.xls** - wc是Hadoop自带的Word Count示例,这个Excel文件可能分析了Word Count程序的执行流程,展示每个步骤的时间和资源消耗。 9. **day3** - 这可能是一个包含其他辅助文件或笔记的目录,补充了第三...
2. 将测试数据上传到Hadoop的HDFS(Hadoop Distributed File System)。 3. 使用Hadoop命令提交WordCount程序,指定输入和输出路径。 4. Hadoop集群执行任务,完成后在指定的输出路径下生成结果文件。 在实际应用中...
为确保IDE能正确运行Word Count示例,需要在项目构建路径中添加Hadoop的相关库,包括`hadoop-core.jar`、`hadoop-client.jar`等,并配置好Hadoop的运行环境,包括HADOOP_HOME、JAVA_HOME等环境变量。 在给定的...
Hadoop Streaming是一个非常有用的工具,它能够使得任何用编程语言实现的程序能够在Hadoop MapReduce框架中运行。Hadoop Streaming利用标准输入和标准输出来实现程序与MapReduce框架之间的通信。这个特性使得已经...
Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass...
接着,文章分步骤指导如何下载、安装及配置Hadoop和Spark,并通过示例展示了如何进行基本的操作和任务处理,如在Hadoop上上传和读取文件,在Spark上执行Word Count任务。此外,指南还提供了常见问题的解决方案,并...
在Hadoop 2.6.0中,运行一个简单的MapReduce示例——WordCount,至少需要以下三个JAR文件: - `$HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.0.jar` - `$HADOOP_HOME/share/hadoop/mapreduce/hadoop-...
在Hadoop生态系统中,`WordCount`程序是一个经典的示例,用于演示分布式计算的基本原理。在标题中的"WordCount2_hadoopwordcount_"可能指的是Hadoop WordCount的第二个版本,通常是在Hadoop 2.x环境下运行。这个程序...
压缩包内的"worldCount" 文件名可能代表了一个经典的Hadoop MapReduce示例,"Word Count"。在这个例子中,程序会统计输入文本中每个单词出现的次数。这通常被用作MapReduce的入门教学,因为它简单易懂,同时展示了...
通过Maven,开发者可以轻松地管理和构建Hadoop项目,因为它能自动下载所需的依赖库,并按照特定的生命周期来编译、测试和打包代码。 WordCount程序是Hadoop MapReduce的入门示例,它由两个阶段组成:Map阶段和...
本次实验的目标是在Mac虚拟机上使用Ubuntu系统安装配置Hadoop环境,并运行一个简单的WordCount示例程序,旨在熟悉Hadoop的安装配置流程及基本使用方法。 #### 实验环境 - **操作系统**: Ubuntu (推荐最新稳定版) -...