如何将HBase数据加载到Spark

时间:2019-06-05 17:36:11

标签: scala apache-spark hbase amazon-emr

我正在尝试运行代码以将我的HBase表数据提取到Spark RDD中。但是,当我运行最终命令[hBaseRDD.count()]时,shell CLI似乎停滞了。

我曾尝试创建较小的HBase表,以防万一这是一个数据大小的问题,还试图找到其他存在类似问题的表。我还联系了AWS支持人员,以查看是否存在集群配置问题。

import org.apache.hadoop.hbase.{ HBaseConfiguration, HColumnDescriptor, HTableDescriptor } 
import org.apache.hadoop.hbase.client.{ HBaseAdmin, Put } 
import org.apache.hadoop.hbase.io.ImmutableBytesWritable 
import org.apache.hadoop.hbase.mapred.TableOutputFormat 
import org.apache.hadoop.hbase.mapreduce.TableInputFormat 
import org.apache.hadoop.hbase.util.Bytes 
import org.apache.hadoop.mapred.JobConf 
import org.apache.hadoop.hbase.client.ConnectionFactory
import org.apache.hadoop.hbase.client.Result 
import org.apache.spark.SparkConf 
import org.apache.spark.SparkContext 
import org.apache.spark.rdd.{ PairRDDFunctions, RDD } 
import org.apache.spark.streaming._ 
import org.apache.spark.streaming.StreamingContext._ 
import org.apache.spark._
import org.apache.spark.rdd.NewHadoopRDD
import org.apache.hadoop.fs.Path
import org.apache.hadoop.hbase.client.{HBaseAdmin, Put, HTable, Result}

val sparkConf = new SparkConf().setAppName("HBaseGet") 
val sc = new SparkContext(sparkConf)
val conf = HBaseConfiguration.create()
final val tableName = "spark1" 

conf.set(TableInputFormat.INPUT_TABLE, tableName) 

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

hBaseRDD.count() 

在执行最后一条命令时,shell似乎停顿了,仅显示以下输出:

[阶段0:>(0 + 1)/ 1]

0 个答案:

没有答案