当前位置:   article > 正文

Maven IDEA环境搭建(MapReducer、Spark)_idea mapreduce maven

idea mapreduce maven

目录

一、准备需要的安装包

1、安装jdk1.8

2、安装scala:

3、安装maven

4、安装idea

二、配置idea maven环境(MapReduce)

1、创建项目

2、MapReduce WordCount程序

三、配置Spark环境

1、下载scala

2、配置spark maven

3、运行第一个spark程序


一、准备需要的安装包

1、安装jdk1.8

https://www.oracle.com/java/technologies/downloads/

找到对应的版本下载安装后配置环境变量

在控制台输入 java -version

查看对应版本,出版本后及为安装成功

2、安装scala:

https://www.scala-lang.org/download/2.12.12.html

现在多数用使用spark3.0以上版本,spark3.0版本不支持scala2.12以下版本

在官网下载完成后解压tar包(配置环境变量)

在控制台输入scala 能进入scala及为安装成功

3、安装maven

https://maven.apache.org/download.cgi

进入maven官网后下载对应的.tar.gz包即可

下载完成后对maven进行解压(idea不需要配置maven环境变量)

但需要对maven进行必要的配置修改!!(maven默认的服务器在在国外,后续idea配置maven时,下载会非常慢,需要把服务改到国内的阿里云maven仓库)

https://developer.aliyun.com/mvn/guide

进入阿里云的maven仓库按照指示进行配置

4、安装idea

1、点击下一步

2、选择安装目录,点击下一步

3、可以全选

4、点击安装

安装完成打开idea

二、配置idea maven环境(MapReduce)

1、进入idea后先不要创建项目,如果创建项目后先退出项目(这样配置的就是全局设置)

3、进入maven的配置目录

4、修改maven目录(设置为自己的maven解压目录)

目录不存在自行创建目录

5、进入Runner进行配置

-DarchetypeCatalog=internal

1、创建项目

1、创建一个Java Maven项目

2、创建完成后进入pom.xml配置文件进行maven配置

3、输入mapreduce所需要的maven

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>RELEASE</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.apache.logging.log4j</groupId>
  9. <artifactId>log4j-core</artifactId>
  10. <version>2.8.2</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.apache.hadoop</groupId>
  14. <artifactId>hadoop-common</artifactId>
  15. <version>2.10.1</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.apache.hadoop</groupId>
  19. <artifactId>hadoop-client</artifactId>
  20. <version>2.10.1</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.apache.hadoop</groupId>
  24. <artifactId>hadoop-hdfs</artifactId>
  25. <version>2.10.1</version>
  26. </dependency>
  27. </dependencies>

4、刷新,下载程序所需要的maven jar包

5、jar包下载完成后进行程序测试(写一个简单的wordcount程序)

测试代码放在下面了

原始数据:

程序运行结束,查看结果

2、MapReduce WordCount程序

程序代码:

  1. package org.example;
  2. import org.apache.hadoop.conf.Configuration;
  3. import org.apache.hadoop.fs.Path;
  4. import org.apache.hadoop.io.IntWritable;
  5. import org.apache.hadoop.io.LongWritable;
  6. import org.apache.hadoop.io.Text;
  7. import org.apache.hadoop.mapreduce.Job;
  8. import org.apache.hadoop.mapreduce.Mapper;
  9. import org.apache.hadoop.mapreduce.Reducer;
  10. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  11. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  12. import java.io.IOException;
  13. public class WordCount {
  14. static public class TheMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
  15. @Override
  16. protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, IntWritable>.Context context) throws IOException, InterruptedException {
  17. String a = value.toString();
  18. String[] words = a.split(",");
  19. for (String word : words) {
  20. context.write(new Text(word), new IntWritable(1));
  21. }
  22. }
  23. }
  24. static public class TheReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
  25. @Override
  26. protected void reduce(Text key, Iterable<IntWritable> values, Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {
  27. int count = 0;
  28. for (IntWritable value : values) {
  29. count += value.get();
  30. }
  31. context.write(key, new IntWritable(count));
  32. }
  33. }
  34. public static void main(String[] args) throws Exception {
  35. //设置环境参数
  36. Configuration conf = new Configuration();
  37. Job job = Job.getInstance(conf);
  38. //设置主类
  39. job.setJarByClass(WordCount.class);
  40. //设置map和reducer
  41. job.setMapperClass(TheMapper.class);
  42. job.setReducerClass(TheReducer.class);
  43. // 设置输入和输出类型
  44. //输入类型
  45. job.setMapOutputKeyClass(Text.class);
  46. job.setMapOutputValueClass(IntWritable.class);
  47. //输出类型
  48. job.setOutputKeyClass(Text.class);
  49. job.setOutputValueClass(IntWritable.class);
  50. //设置输入和输出路径
  51. FileInputFormat.setInputPaths(job, new Path("D:\\data\\word.txt"));
  52. FileOutputFormat.setOutputPath(job, new Path("d:\\data\\tmp"));
  53. System.exit(job.waitForCompletion(true) ? 0 : 1);
  54. }
  55. }

三、配置Spark环境

1、配置spark maven

正常创建一个java的maven项目

在pom.xml配置文件中添加下面配置

  1. <properties>
  2. <maven.compiler.source>8</maven.compiler.source>
  3. <maven.compiler.target>8</maven.compiler.target>
  4. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  5. <!-- 声明scala的版本 -->
  6. <scala.version>2.12.11</scala.version>
  7. <!-- 声明linux集群搭建的spark版本,如果没有搭建则不用写 -->
  8. <spark.version>3.2.1</spark.version>
  9. <!-- 声明linux集群搭建的Hadoop版本 ,如果没有搭建则不用写-->
  10. <hadoop.version>3.2.1</hadoop.version>
  11. </properties>
  12. <dependencies>
  13. <!--scala-->
  14. <dependency>
  15. <groupId>org.scala-lang</groupId>
  16. <artifactId>scala-library</artifactId>
  17. <version>${scala.version}</version>
  18. </dependency>
  19. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
  20. <dependency>
  21. <groupId>org.apache.spark</groupId>
  22. <artifactId>spark-core_2.12</artifactId>
  23. <version>3.2.1</version>
  24. </dependency>
  25. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
  26. <dependency>
  27. <groupId>org.apache.spark</groupId>
  28. <artifactId>spark-sql_2.12</artifactId>
  29. <version>3.2.1</version>
  30. </dependency>
  31. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
  32. <dependency>
  33. <groupId>org.apache.spark</groupId>
  34. <artifactId>spark-streaming_2.12</artifactId>
  35. <version>3.2.1</version>
  36. <scope>provided</scope>
  37. </dependency>
  38. </dependencies>

下载后刷新页面(第一次下载可能会有点慢)

2、运行第一个spark程序

一、创建一个scala文件

1)、下载scala插件(进入插件市场输入scala搜索下载,等待下载完成即可)

          下载完成后重启idea

2)、加入scala程序文件

3)、创建第一个scala文件

4)、写一个简单的wordcount程序

完整代码写在下方  (原始文件同上)

处理结果:

完整代码:

  1. package org.example
  2. import org.apache.spark.rdd.RDD
  3. import org.apache.spark.{SparkConf, SparkContext}
  4. object Test {
  5. def main(args: Array[String]): Unit = {
  6. val conf = new SparkConf().setAppName("wordcount").setMaster("local[1]")
  7. val sc = new SparkContext(conf)
  8. val rdd = sc.textFile("D:\\data\\user_info.csv") // 读取文件
  9. .map(x => x.split(","))
  10. .map(x => (x, 1))
  11. .reduceByKey(_ + _)
  12. .map(x => s"(${x._1}:${x._2})")
  13. .saveAsTextFile("d:\\data\\tmp") // 保存到本地文件系统
  14. val rdd1 = sc.textFile("d:\\data\\tmp") // 读取保存的文件
  15. rdd1.collect().foreach(println) // 打印结果
  16. sc.stop() // 停止SparkContext
  17. }
  18. }
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号