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读取不同,作为hadoop从属的每个worker都有hdfs文件复制)
1条答案
按热度按时间4ngedf3f1#
spark与hbase集成,数据局部性原则与hadoop map reduce作业相同:spark将尝试将输入分区(hbase区域)分配给同一物理机上的工作进程,因此数据将直接获取,而无需远程驱动程序。