spark与磁盘交互,spark读hdfs

本文介绍了Spark系统中与磁盘交互的关键环节:包括shuffle过程中map数据的磁盘存储,日志和应用程序日志目录,依赖的jar包和file的保存位置,以及如何从HDFS、HBase和Sequence File加载数据。
摘要由CSDN通过智能技术生成

spark系统有几处与磁盘交换的地方:

1,spark的shuffle依然要将map的数据存储在磁盘上,所以在spark的环境变量中可以设置"spark.local.dir"的值保存spark的shuffle数据存储的位置,如果没有设置,shuffle的数据默认将放在"java.io.tmpdir"中,这段代码在core当中为:

  def getLocalDir(conf: SparkConf): String = {
    /*if the spark.local.dir is not set, get the default value from java.io.temdir..casa*/
    conf.get("spark.local.dir",  System.getProperty("java.io.tmpdir")).split(',')(0)
  }
其中的get函数为:

  /** Get a parameter, falling back to a default if not set */
  def get(key: String, defaultValue: String): String = {
    settings.getOrElse(key, defaultValue)
  }

在spark-env.sh中定义的方式如下(在环境变量spark.io.dir中如果有多个目录用逗号隔开,这样如果用多块硬盘可以减少shuffle写磁盘的时间):

export SPARK_JAVA_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值