spark 从 hbase 读取数据,工人是否需要从远程驱动程序获取分区数据?

spark read data from hbase, did workers need to get paritions data from remote driver program?

spark从hbase读取数据,比如 //创建rdd

val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], 
  classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
  classOf[org.apache.hadoop.hbase.client.Result])

例如,hBaseRDD有5个分区,现在worker上的executor获取分区数据进行计算,他们必须从远程驱动程序获取数据? (不像从 hdfs 读取,作为 hadoop slave 的每个 worker 都有 hdfs 文件复制)

Spark 与 HBase 集成,数据局部性原则与 Hadoop map-reduce 作业中的相同:spark 将尝试将输入分区(hbase 区域)分配给同一物理机器上的 worker,因此将获取数据直接不用远程驱动。