首先,我的代码是这样的
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object PvCount {
  def main(args: Array[String]): Unit = {

    //获取SparkConf
    val sparkConf = new SparkConf().setMaster("local[2]").setAppName("PV-Count")
    //创建SparkContext
    val sparkContext = new SparkContext(sparkConf)
    //读取文件
    val fileRDD: RDD[String] = sparkContext.textFile("file:////Users/zhaozhuang/Desktop/4、Spark/Spark第二天/第二天教案/资料/运营商日志/access.log")
    //统计数量
    val count = fileRDD.count()

    println("一共有"+count+"行数据")

    sparkContext.stop()
  }
}

我的Spark是装在虚拟机上的,然后运行就报错

java.net.BindException: Can’t assign requested address: Service ‘sparkDriver’ failed after 16 retries (on a random free port)! Consider explicitly setting the appropriate binding address for the service ‘sparkDriver’ (for example spark.driver.bindAddress for SparkDriver) to the correct binding address.
 
大概翻译一哈:
java.net.BindException:无法分配请求的地址:'sparkDriver’服务在16次重试后(在一个随机自由的端口上)失败了!考虑显式地适当的将’sparkDriver’服务(比如 SparkDriver的spark.driver.bindAddress)绑定到正确的绑定地址
 
虽然翻译了出来,但我还是没完全明白,就知道是地址错误之类的
Spark离线日志分析,连接Spark出现报错

然后查阅了各种方法,都没用,看到了一个和我的报错并不相同的解决办法,我还是决定试试

val sparkConf = new SparkConf().setMaster("local[2]").setAppName("PV-Count").set("spark.driver.host", "localhost")

在sparkConf中添加了一个设置,就奇迹般地成功了
Spark离线日志分析,连接Spark出现报错
但是我的Spark是安装在虚拟机的,为啥?
所以我又把localhost改成了node01(我虚拟机的主机名),结果又报同样的错
为什么?还是没搞懂原因,不过有解决办法了,所以先记录一下,找到原因再来解决吧

相关文章:

  • 2021-06-05
  • 2022-12-23
  • 2022-12-23
  • 2021-11-04
  • 2022-02-08
  • 2022-02-09
  • 2021-11-18
  • 2021-05-06
猜你喜欢
  • 2022-01-01
  • 2022-12-23
  • 2019-01-25
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
相关资源
相似解决方案