spark从hbase读取数据,例如// create 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上获取分区数据进行计算,它们必须从远程驱动程序中获取数据吗? (不像从hdfs读取,每个worker作为hadoop slave都有hdfs文件复制)
1 回答
Spark与HBase集成,数据位置原则与Hadoop map-reduce作业相同:spark将尝试将输入分区(hbase区域)分配给同一物理机器上的worker,因此无需远程驱动程序即可直接获取数据 .