SparkSQL+Hive+Hbase+Hbase集成不起作用

2024-01-11

当我尝试连接配置单元表(正在使用)时出现错误 通过 Hbase 集成创建)在 Spark 中

我遵循的步骤:Hive表创建代码 :

CREATE TABLE test.sample(id string,name string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH     
SERDEPROPERTIES ("hbase.columns.mapping" = ":key,details:name")
TBLPROPERTIES ("hbase.table.name" = "sample");

描述测试;

 col_name data_type comment
 id string from deserializer
 name string from deserializer

使用以下命令启动 Spark shell:

spark-shell --master local[2] --driver-class-path /usr/local/hive/lib/hive-   
hbase-handler-1.2.1.jar:
/usr/local/hbase/lib/hbase-server-0.98.9-  
hadoop2.jar:/usr/local/hbase/lib/hbase-protocol-0.98.9-hadoo2.jar:
/usr/local/hbase/lib/hbase-hadoop2-compat-0.98.9-  
hadoop2.jar:/usr/local/hbase/lib/hbase-hadoop-compat-0.98.9-hadoop2.jar:
/usr/local/hbase/lib/hbase-client-0.98.9-   
hadoop2.jar:/usr/local/hbase/lib/hbase-common-0.98.9-hadoop2.jar:
/usr/local/hbase/lib/htrace-core-2.04.jar:/usr/local/hbase/lib/hbase-common-  
0.98.9-hadoop2-tests.jar:
/usr/local/hbase/lib/hbase-server-0.98.9-hadoop2-  
tests.jar:/usr/local/hive/lib/zookeeper-3.4.6.jar:/usr/local/hive/lib/guava-  
14.0.1.jar

在火花外壳中:

val sqlContext=new org.apache.spark.sql.hive.HiveContext(sc)

sqlContext.sql(“select count(*) from test.sample”).collect()

堆栈跟踪 :

堆栈 SQL 上下文可用作 sqlContext。

scala> sqlContext.sql("select count(*) from test.sample").collect()

16/09/02 04:49:28 INFO parse.ParseDriver: Parsing command: select count(*) from test.sample
16/09/02 04:49:35 INFO parse.ParseDriver: Parse Completed
16/09/02 04:49:40 INFO metastore.HiveMetaStore: 0: get_table : db=test tbl=sample
16/09/02 04:49:40 INFO HiveMetaStore.audit: ugi=hdfs    ip=unknown-ip-addr  cmd=get_table : db=test tbl=sample  
java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/util/Bytes
    at org.apache.hadoop.hive.hbase.HBaseSerDe.parseColumnsMapping(HBaseSerDe.java:184)
    at org.apache.hadoop.hive.hbase.HBaseSerDeParameters.<init>(HBaseSerDeParameters.java:73)
    at org.apache.hadoop.hive.hbase.HBaseSerDe.initialize(HBaseSerDe.java:117)
    at org.apache.hadoop.hive.serde2.AbstractSerDe.initialize(AbstractSerDe.java:53)
    at org.apache.hadoop.hive.serde2.SerDeUtils.initializeSerDe(SerDeUtils.java:521)
    at org.apache.hadoop.hive.metastore.MetaStoreUtils.getDeserializer(MetaStoreUtils.java:391)
    at org.apache.hadoop.hive.ql.metadata.Table.getDeserializerFromMetaStore(Table.java:276)
    at org.apache.hadoop.hive.ql.metadata.Table.getDeserializer(Table.java:258)
    at org.apache.hadoop.hive.ql.metadata.Table.getCols(Table.java:605)
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$getTableOption$1$$anonfun$3.apply(ClientWrapper.scala:331)
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$getTableOption$1$$anonfun$3.apply(ClientWrapper.scala:326)
    at scala.Option.map(Option.scala:145)
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$getTableOption$1.apply(ClientWrapper.scala:326)
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$getTableOption$1.apply(ClientWrapper.scala:321)
    at org.apache.spark.sql.hive.client.ClientWrapper$$anonfun$withHiveState$1.apply(ClientWrapper.scala:279)
    at org.apache.spark.sql.hive.client.ClientWrapper.liftedTree1$1(ClientWrapper.scala:226)
    at org.apache.spark.sql.hive.client.ClientWrapper.retryLocked(ClientWrapper.scala:225)
    at org.apache.spark.sql.hive.client.ClientWrapper.withHiveState(ClientWrapper.scala:268)
    at org.apache.spark.sql.hive.client.ClientWrapper.getTableOption(ClientWrapper.scala:321)
    at org.apache.spark.sql.hive.client.ClientInterface$class.getTable(ClientInterface.scala:122)
    at org.apache.spark.sql.hive.client.ClientWrapper.getTable(ClientWrapper.scala:60)
    at org.apache.spark.sql.hive.HiveMetastoreCatalog.lookupRelation(HiveMetastoreCatalog.scala:384)
    at org.apache.spark.sql.hive.HiveContext$$anon$2.org$apache$spark$sql$catalyst$analysis$OverrideCatalog$$super$lookupRelation(HiveContext.scala:457)
    at org.apache.spark.sql.catalyst.analysis.OverrideCatalog$class.lookupRelation(Catalog.scala:161)
    at org.apache.spark.sql.hive.HiveContext$$anon$2.lookupRelation(HiveContext.scala:457)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$.getTable(Analyzer.scala:303)

我使用的是hadoop 2.6.0,spark 1.6.0,hive 1.2.1,hbase 0.98.9

我在 hadoop-env.sh 中添加了此设置

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/*

有人可以提出任何解决方案吗


java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/util/Bytes

因为类路径中没有与hbase相关的jar

 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH: `hbase classpath`  

应该包含所有 hbase 相关的 jar 文件 或者看看我的answer https://stackoverflow.com/a/35550151/647053在这里使用--jars

Note :要验证类路径,您可以在驱动程序中添加以下代码以打印所有类路径资源

斯卡拉版本:

val cl = ClassLoader.getSystemClassLoader
    cl.asInstanceOf[java.net.URLClassLoader].getURLs.foreach(println)

java :

import java.net.URL;

import java.net.URLClassLoader;
...

   ClassLoader cl = ClassLoader.getSystemClassLoader();

        URL[] urls = ((URLClassLoader)cl).getURLs();

        for(URL url: urls) {
            System.out.println(url.getFile());
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SparkSQL+Hive+Hbase+Hbase集成不起作用 的相关文章

随机推荐

  • 使用下面的 uiimagePickerController Delegate 函数时获得不明确的引用:

    我试图覆盖 UIImagePickerControllerDelegate 中的 uiimagePickerController 函数 但是 我似乎收到错误 Ambiguous reference to member subscript 我
  • Android简单的警报对话框[重复]

    这个问题在这里已经有答案了 我需要向点击我的 Android 应用程序上的按钮的用户显示一条小短信 在 IOS 上我只需要创建一个 AlertView 它使用起来很简单 但在 Android 上我很困难 因为解决方案似乎困难十倍 我看到我需
  • IIS7:如何定义Windows身份验证已打开?

    IIS7 如何定义Windows身份验证已打开 我知道IIS7 集成模式不支持两阶段身份验证 https stackoverflow com questions 436169 iis7 setup integrated windows au
  • 从bind返回的结果和使用function()的结果有什么区别

    bind 的返回值与通过 function 创建等效值的结果有什么区别 有什么有效的区别吗 我不是在问上下文保留属性bind 是否有任何技术 性能原因导致您可能更喜欢一种方法 i e var myFunc foo bind undefine
  • 感应悬停在 JPanel 中 Path2D 圆的外边缘上[重复]

    这个问题在这里已经有答案了 因此 我有一个程序可以将 Path2D 圆绘制到 JPanel 上 我想要做的是当用户单击并拖动圆圈的右下角时调整圆圈的大小 所以 我想要的是检测它们何时在圆的右下角外边缘 而不是圆周围边界的右下角 基本上 我需
  • 使用 Zend Framework 的 Android RESTful Web 应用程序

    我编写了一个基于 Zend Framework 版本 1 11 11 的 Web 应用程序 我想使用相同的后端代码来编码该应用程序的移动版本 Android 为了实现这个目标 我想要获取 XML 和 JSON 格式的控制器中每个操作的响应
  • 使用集成 SQL 语言的带有 schemaRDD 的 SQL 函数

    我想使用基于 SQL 函数的语言集成 SQL 来过滤 schemaRDD 例如我想运行 SELECT name FROM people WHERE name LIKE AHSAN AND name regexp A Z 20 如何在 peo
  • 重复用“.”包围。 VIM 中的命令

    有没有人得到环绕 vim http www vim org scripts script php script id 1697跟 共事重复vim http www vim org scripts script php script id 2
  • 如何在 C# 中创建基于 DataTable.Rows.Count 的对象?

    下面的所有代码仅创建两个进程 虽然我需要创建 n 个进程来打开 Chrome 浏览器并运行OpenNRowsInData user pwd 基于dtUser Rows Count因为这是动态的 我不知道为什么OpenNRowsInData
  • FFmpeg输出查找结果到Android LruCache

    亲爱的 StackOverflower 同胞 在我的 Android 应用程序中 我尝试使用以下命令快速从视频中检索帧ffmpeg android java http writingminds github io ffmpeg androi
  • Nginx 未在已启用站点中拾取站点?

    经过 10 多个小时的研究 我还没弄清楚为什么这不起作用 我正在尝试将本地主机移动到启用站点的文件夹 该文件夹位于 etc nginx sites enabled default 中 它是来自站点可用文件夹的符号链接 使用以下配置时 使用
  • C++ 区分单击和双击

    我有一个应用程序 其中双击图像视图区域会更改图像视图的布局 另外 单击一下 图像上就会放置一个点 我的问题是 双击时这两个功能都可以工作 我当然知道 当双击发生时 控件首先转到 LButtonDown 我不希望点功能在双击时起作用 我已经为
  • Angular UI-Router 在一种状态下有更多可选参数

    如何在不使用查询字符串且仅使用一个路由名称的情况下向我的路由允许可选参数 我目前将每条路线指定五次 以允许任意部分组合 所有部分都必须是可选的 路线必须解决任何变化 state login url login templateUrl log
  • 如何验证PayPal Webhook签名?

    验证从 PayPal 收到的 Webhook 时遇到问题 可用的示例并不多 集成商也没有足够的加密知识来完成任务 遵循的指南是网络钩子通知 https developer paypal com docs integration direct
  • Python Tkinter 应用程序适合屏幕

    我在我的 17 上使用 Python 的 Tkinter 模块设计了一个应用程序 屏幕 有没有办法让这个应用程序适合较低分辨率的屏幕 我尝试在 14 英寸屏幕上运行它 但该应用程序不太适合 谢谢 您可以获取屏幕分辨率 然后将其输入到您的ro
  • Android:来自 xml 资源的整数

    我必须如何修改我的 XML 资源 或者我必须创建什么 XML 文件 才能以与访问字符串值相同的方式访问整数值R string some string resource 例如 在代码中我想说 ProgressDialog progressBa
  • Webdriver 未在远程 IE 中找到元素

    我在网络驱动程序方面遇到了一个奇怪的问题 我有一个本地环境和一个远程环境来执行我的测试 它们在 Firefox 的两种环境中都可以很好地工作 但对于 Internet Explorer 8 它们只能在本地工作 每当我对远程服务器运行测试时
  • 属性和函数或过程之间的区别

    我们可以说 type TPerson class private pName string public property Name string read pName write pName end 等于 type TPerson cla
  • 如何在 python 函数中传递对象实例作为参数?

    我刚刚开始学习Python 并且对如何传递对象的实例作为函数的参数感到困惑 下面是我为练习编写的一点代码 基本思想是有一个车库 这个车库不包含汽车 您可以将汽车添加到车库并查看其详细信息 class Garage cars def add
  • SparkSQL+Hive+Hbase+Hbase集成不起作用

    当我尝试连接配置单元表 正在使用 时出现错误 通过 Hbase 集成创建 在 Spark 中 我遵循的步骤 Hive表创建代码 CREATE TABLE test sample id string name string STORED BY