Spark 读取Hadoop集群文件


1. 原因:

  一般hadoop 集群是两个或多个NameNode ,  但是一个处于standby , 另一个active , 通过设置可以忽略不确定谁是active的情况

2.

import org.apache.spark.sql.SparkSession
object Spark_HDFS {
  def main(args: Array[String]): Unit = {

    import org.apache.log4j.Logger
    import org.apache.log4j.Level
    Logger.getLogger("org").setLevel(Level.OFF)
    System.setProperty("spark.ui.showConsoleProgress","false")
    System.setProperty("HADOOP_USER_NAME", "abby")
    val ss = SparkSession
      .builder()
      .appName(" spark 3.0")
      .master("local")
      .getOrCreate()

    val sc = ss.sparkContext  //获取socket
    sc.hadoopConfiguration.set("fs.defaultFS", "hdfs://cluster")
    sc.hadoopConfiguration.set("dfs.nameservices", "cluster")
    sc.hadoopConfiguration.set("dfs.ha.namenodes.cluster", "nn1,nn2")
    sc.hadoopConfiguration.set("dfs.namenode.rpc-address.cluster.nn1", "node1:8020")
    sc.hadoopConfiguration.set("dfs.namenode.rpc-address.cluster.nn2", "node2:8020")
    sc.hadoopConfiguration.set("dfs.client.failover.proxy.provider.cluster", "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider")


    val data = sc.textFile("hdfs://cluster/46062.txt",3)
   
  }

}

  文中红色部分就是设置两个NameNode所需要改的 .具体cluster , 可以自己去看hadoop的配置里面所写

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM