Idea远程调用 Spark+Hadoop 资源计算

2 篇文章 0 订阅
1 篇文章 0 订阅

版本:Spark2.4.7  Scala2.11.12  Hadoop 2.7.3

学习过程中遇到的问题,作为记录保存在此;不多说,上源码!

package com.spark.scala.example

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

object WorldCount {
  def main(args: Array[String]): Unit = {
    // 设置提交任务的用户
    System.setProperty("HADOOP_USER_NAME","root")
    var ymaster = "spark://集群IP:7077" // 远程模式
    var lmaster = "local" // 本地模式
    var conf = new SparkConf().setAppName("WordCount")
      // 序列化设置
      .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
      .set("spark.kryo.registrationRequired", "true")
      // 远程方式运行
      .setMaster(ymaster)
      //本地方式运行
//      .setMaster(lmaster)
      // 设置executor的个数
      .set("spark.executor.instance","2")
      // 设置executor的内存大小
      .set("spark.executor.memory", "1024M")
      // 设置driver的ip地址(指定本机IP地址)
      .set("spark.driver.host","本机IP")
     // 设置jar路径,此jar为当前代码打包jar;本地模式请注释掉
      .setJars(List("E:\\code\\java\\spark\\com-spark-scala-worldcount\\target\\com-spark-scala-worldcount.jar")) // 远程提交运行时需要,本地运行不需要
    //Spark程序的编写都是从SparkContext开始的
    var sc = new SparkContext(conf)
    var data = sc.textFile("hdfs://集群IP:9000/input/LICENSE.txt")
    data.flatMap(_.split(" "))//下划线是占位符,flatMap是对行操作的方法,对读入的数据进行分割
      .map((_,1))//将每一项转换为key-value,数据是key,value是1
      .reduceByKey(_+_).collect()//将具有相同key的项相加合并成一个
      .foreach(println)// 循环输出
  }
}

输出结果:

 

远程模式 如有报以下错误:

我是通过重启spark集群后,运行通过的;不知具体的原因及如何解决,如有大神知道还请告知

本地模式没有问题

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值