IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【大数据处理技术】实验5 -> 正文阅读

[大数据]【大数据处理技术】实验5

一、测试(可忽略)

这里使用IDEA创建java项目进行测试

1.创建Java项目

2.编写java代码(源代码在后面)

3.生成jar包

(1)修改项目结构(个人觉得可以忽略掉)

文件→项目结构→工件

添加来自具有依赖项的模块

选择主类

复制到输出目录并通过清单链接

(2)导出jar包

构建→构建工件→构建

IDEA项目将在out文件中生成对应jar包

4.运行jar包

注意:需要正确配置jdk环境变量,不然无法运行jar包

【以上对完成此次作业没有任何帮助(#^.^#)】

【以上对完成此次作业没有任何帮助(#^.^#)】

【以上对完成此次作业没有任何帮助(#^.^#)】

二、创建mywordfile文件【省略图片】

(1)在本地/usr/local/hadoop创建mywordfile.txt文件(略)

(2)在Hadoop上创建input,output目录

./bin/hdfs dfs -mkdir input

./bin/hdfs dfs -mkdir output

(3)启动Hadoop,上传文件mywordfile.txt到input目录中

./bin/hdfs dfs - put mywordfile.txt input

(4)创建myapp目录(将生成的jar包导入此目录)

sudo mkdir /usr/local/hadoop/myapp

三、使用Eclipse创建java文件,生成Test5.jar包

(1)使用Eclipse创建java项目

注意:使用Eclipse前一定要配置好jdk,创建和自己本地jdk版本一致的项目!

导入项目需要的jar包:

①/usr/local/hadoop/share/hadoop/common”目录下的hadoop-common-3.1.3.jar和haoop-nfs-3.1.3.jar;

②“/usr/local/hadoop/share/hadooplcommon/lib”目录下的所有JAR包;

③“/usrlocal/hadoop/share/hadoop/mapreduce”目录下的所有JAR包,但是,不包括jdiff、lib、lib-examples和sources目录

JRE System Library建议选用[JS2E-1.5]

(2)编写java代码

源代码:(WordCount)

import java.io.IOException;

import java.util.Iterator;

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;

import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

????public WordCount() {

????}

?????public static void main(String[] args) throws Exception {

????????Configuration conf = new Configuration();

????????String[] otherArgs = (new GenericOptionsParser(conf, args)).getRemainingArgs();

????????if(otherArgs.length < 2) {

????????????System.err.println("Usage: wordcount <in> [<in>...] <out>");

????????????System.exit(2);

????????}

????????Job job = Job.getInstance(conf, "word count");

????????job.setJarByClass(WordCount.class);

????????job.setMapperClass(WordCount.TokenizerMapper.class);

????????job.setCombinerClass(WordCount.IntSumReducer.class);

????????job.setReducerClass(WordCount.IntSumReducer.class);

????????job.setOutputKeyClass(Text.class);

????????job.setOutputValueClass(IntWritable.class);

????????for(int i = 0; i < otherArgs.length - 1; ++i) {

????????????FileInputFormat.addInputPath(job, new Path(otherArgs[i]));

????????}

????????FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length - 1]));

????????System.exit(job.waitForCompletion(true)?0:1);

????}

????public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {

????????private static final IntWritable one = new IntWritable(1);

????????private Text word = new Text();

????????public TokenizerMapper() {

????????}

????????public void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context) throws IOException, InterruptedException {

????????????StringTokenizer itr = new StringTokenizer(value.toString());

????????????while(itr.hasMoreTokens()) {

????????????????this.word.set(itr.nextToken());

????????????????context.write(this.word, one);

????????????}

????????}

????}

public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {

????????private IntWritable result = new IntWritable();

????????public IntSumReducer() {

????????}

????????public void reduce(Text key, Iterable<IntWritable> values, Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {

????????????int sum = 0;

????????????IntWritable val;

????????????for(Iterator i$ = values.iterator(); i$.hasNext(); sum += val.get()) {

????????????????val = (IntWritable)i$.next();

????????????}

????????????this.result.set(sum);

????????????context.write(key, this.result);

????????}

????}

}

(3)生成jar包:

右键项目→选择Export→选择Java/Runnable JAR file

Launch configuration:选择运行的主类(我的是WordCount -Study)

Export destination:选择导出位置:/usr/lcoal/hadoop/myapp

?

?

注意:权限问题:sudo chmod 777 -R /usr/local/hadoop

四、使用Test5.jar包

备注:本人的Eclipse导出jar包后报错找不到input,所以由使用idea导出jar包(原理和Eclipse一致,过程可以上网搜索),导出后的jar包名字为:test5.jar

?

【参考资料】

eclipse怎么配置jdk环境变量教程-系统部落

eclipse 导出jar包_xyzko1的博客-CSDN博客_eclipse导出jar包

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:59:31  更:2022-09-30 01:01:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 -2025/5/4 1:46:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码