spark 从 hbase 读取数据,worker 是不是需要从远程驱动程序中获取分区数据?
Posted
技术标签:
【中文标题】spark 从 hbase 读取数据,worker 是不是需要从远程驱动程序中获取分区数据?【英文标题】:spark read data from hbase, did workers need to get paritions data from remote driver program?spark 从 hbase 读取数据,worker 是否需要从远程驱动程序中获取分区数据? 【发布时间】:2017-07-28 02:51:57 【问题描述】: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文件复制)
【问题讨论】:
【参考方案1】:Spark 与 HBase 集成,数据局部性原则与 Hadoop map-reduce 作业相同:spark 将尝试将输入分区(hbase 区域)分配给同一物理机上的 worker,因此无需直接获取数据远程驱动程序。
【讨论】:
以上是关于spark 从 hbase 读取数据,worker 是不是需要从远程驱动程序中获取分区数据?的主要内容,如果未能解决你的问题,请参考以下文章