【问题标题】:SparkSQL on HBase TablesHBase 表上的 SparkSQL
【发布时间】:2017-01-24 15:36:32
【问题描述】:

任何人都直接在 HBase 表上使用 SparkSQL,例如在 Hive 表上使用 SparkSQL。 我是spark新手,请指导我如何连接hbase和spark。如何查询hbase表。

【问题讨论】:

  • 我的问题没有任何 cmets,它被降级为 -3。这是什么原因。不是票价。
  • 为什么要查询Hbase表??
  • 您可以在 Hive 中创建 Hbase 的外部表。由于 Hbase 不是建立在 Hadoop 文件系统之上的 sql 和分布式面向列的数据库,我很怀疑你是否能够在 Hbase 上进行查询。
  • @Avijit,感谢您的回复。我尝试了您建议的方法,但无法成功完成。请参考此链接stackoverflow.com/questions/39285262/…
  • 嗨@user6608138 请尝试stackoverflow.com/questions/25040709/…

标签: apache-spark hadoop apache-spark-sql hbase


【解决方案1】:

AFAIK 有两种方法可以连接到 hbase 表

- 直接连接 Hbase :

直接连接 hbase 并从 RDD 创建一个 DataFrame 并在此之上执行 SQL。 我不打算重新发明轮子,请参阅How to read from hbase using spark 正如上述链接中@iMKanchwala 的回答已经描述了它。唯一的事情是将其转换为数据框(使用toDF)并遵循sql方法。

- 使用 hbase 存储处理程序将表注册为 hive 外部表,您可以在 hivecontext 的 spark 上使用 hive。这也是一种简单的方法。

Ex : 
CREATE TABLE users(
userid int, name string, email string, notes string)
STORED BY 
'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ( 
"hbase.columns.mapping" = 
”small:name,small:email,large:notes”);

如何做到这一点,请查看example

我更喜欢方法 1。

希望对您有所帮助...

【讨论】:

  • 感谢您的回答。这对我有更多帮助。我尝试了第二种方法意味着 HBaseStorageHandler 表,我无法使用 HiveContext 进行连接。请告诉我如何为这种类型创建上下文对象表。它抛出 ClassNotFoundException。是否需要任何配置。
  • 希望你没用过**。如果您使用然后删除 .all * characters 。我也编辑了我的答案。注册hivecontext val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 就是这样。
  • CREATE TABLE test.sample(id string,name string) 由 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,详细信息:名称") TBLPROPERTIES ("hbase.table.name" = "sample");启动 Spark shell:spark-shell --master local[2]
  • 在 spark-shell 中:val sqlContext=new org.apache.spark.sql.hive.HiveContext(sc) sqlContext.sql(“select count(*) from test.sample”).collect( ) java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/util/Bytes
  • 我正在这样做。我在 hadoop-env.sh 中将此设置添加为 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/* 但我得到了 NoClassDefFoundException。我的错误是什么。请建议我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2015-07-27
  • 1970-01-01
相关资源
最近更新 更多