Maven工程实现Spark api—wordcount和打印hdfs文件(非常详细的maven工程创建过程以及不显示日志打印)

1 篇文章 0 订阅

1、使用idea新建maven工程

在这里插入图片描述
GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。

GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。
  
  比如我创建一个项目,我一般会将GroupId设置为cn.bright,cn表示域为中国,bright是我英文名,ArtifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,在你创建Maven工程后,新建包的时候,包结构最好是cn.zr.testProj打头的,如果有个StudentDao[Dao层的],它的全路径就是cn.zr.testProj.dao.StudentDao
在这里插入图片描述

Maven在windows上配置环境变量

JAVA_HOME
C:\Program Files\Java\jdk1.8.0_241
CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
MAVEN_HOME
D:\soft\maven3.6.1\apache-maven-3.6.1
HADOOP_HOME
D:\soft\hadoop-2.6.0-cdh5.14.2\hadoop-2.6.0-cdh5.14.2

在这里插入图片描述
在这里插入图片描述

修改settings.xml

settings file 需要修改,我这个改成了阿里云的仓库
maven下载链接: https://pan.baidu.com/s/1rZqDw6BbAveATY9epURG6Q
提取码: rakh
打开后修改
在这里插入图片描述
在这里插入图片描述
能使用阿里云仓库是因为这段代码:
在这里插入图片描述
根据自己来修改maven项目保存的路径:
在这里插入图片描述
这里选择你的maven文件夹位置,并且如图找到settings.xml:
在这里插入图片描述
点击Finnish,之后选择new window
在这里插入图片描述
这时候开始下载依赖,点第一个手动确认下载,第二个是自动下载,我选择自动
在这里插入图片描述
改成 1.8 在这里插入图片描述
改成 4.12
在这里插入图片描述

2、添加依赖包

可以上官网找依赖包
在这里插入图片描述
回答问题进入 网站 ,搜索栏输入spark在这里插入图片描述
在这里插入图片描述
根据spark版本选择 我spark是2.4.5 点击2.11
在这里插入图片描述
复制即可
在这里插入图片描述
复制到···········中间
如图能看到进度条 开始下载了
在这里插入图片描述
搜索scala library选择 2.11.8版本的
在这里插入图片描述
搜索log4j选择 1.2.17版本的
在这里插入图片描述
搜索 slf4j 选择 1.7.21版本的
在这里插入图片描述
搜索 spark sql 选择 2.1.1版本的
在这里插入图片描述
为方便读者,直接提供

<dependencies>
     <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>2.1.1</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.11</artifactId>
      <version>2.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.21</version>
    </dependency>
  </dependencies>

3、创建 scala 文件

3.1新建文件夹名为 scala
在这里插入图片描述
在这里插入图片描述
scala 文件夹图标变蓝了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时可以新建Scala文件了
在这里插入图片描述
在这里插入图片描述

4、开始写wordcount功能以及打印hdfs上内容的程序

import org.apache.spark.{Partition, SparkConf, SparkContext}

object wordcount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[2]").setAppName("wordcount")  //[]中是可改核心数
    val sc = SparkContext.getOrCreate(conf)

    val rdd1 = sc.parallelize(List("hello world","hello java","hello scala"),5)

    sc.makeRDD(List("hello world","heh j","hefk kfef"),5)

    rdd1.flatMap(x=>x.split(" ")).map((_,1)).reduceByKey(_+_).collect.foreach(println)

    val partitions:Array[Partition]=rdd1.partitions  //可以看出分区数
    println("rdd分区数:"+partitions.length)

    println("-------------------------------------")
 
    //相对路径
    val lines = sc.textFile("in/word.txt")
    lines.collect.foreach(println)
    //打印出hdfs 上的内容
    val lineshdfs = sc.textFile("hdfs://hadoop001:9000/kb09workspace/")
    println("-------------hdfs-------------------")
    lineshdfs.collect.foreach(println)
  }
}

5、不显示运行日志打印

运行发现有日志,不便于学习查看
在这里插入图片描述
在这里插入图片描述
新建resource文件夹
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
向下翻找到 并且复制 粘贴到resource文件夹
在这里插入图片描述
在这里插入图片描述
文件重命名为
在这里插入图片描述
如图所示改成ERROR
在这里插入图片描述
再次运行,没有日志显示了
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于使用Java操作HDFS的问题。首先,你需要安装Hadoop并启动HDFS服务。然后,你可以使用Hadoop提供的Java API来操作HDFS。下面是一个简单的示例代码,它可以删除HDFS上的文件: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsDeleteExample { public static void main(String[] args) throws Exception { String hdfsUri = "hdfs://localhost:9000"; String filePath = "/path/to/file"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsUri); FileSystem fs = FileSystem.get(conf); Path path = new Path(filePath); boolean result = fs.delete(path, true); if(result) { System.out.println("File deleted successfully."); } else { System.out.println("File deletion failed."); } } } ``` 你只需要将 `hdfsUri` 和 `filePath` 替换成你实际使用的HDFS地址和文件路径即可。 如果你需要下载HDFS上的文件,可以使用以下代码: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsDownloadExample { public static void main(String[] args) throws Exception { String hdfsUri = "hdfs://localhost:9000"; String srcFilePath = "/path/to/src/file"; String destFilePath = "/path/to/dest/file"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsUri); FileSystem fs = FileSystem.get(conf); Path srcPath = new Path(srcFilePath); Path destPath = new Path(destFilePath); fs.copyToLocalFile(srcPath, destPath); System.out.println("File downloaded successfully."); } } ``` 同样,你只需要将 `hdfsUri`、`srcFilePath` 和 `destFilePath` 替换成你实际使用的HDFS地址和文件路径即可。 希望这些示例代码能够帮助你完成作业。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值