开发者社区 问答 正文

SparkSQL读写HiveOnHBase表

E-MapReduce集群中的SparkSQL如何读写HiveOnHBase表

展开
收起
开源大数据EMR 2018-09-04 15:55:10 3568 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • SparkSQL本身是支持StorageHandler,需要提供相关jar包。

    访问HiveOnHBase需要如下jar包:
    /usr/lib/hbase-current/lib/hbase-server-1.1.1.jar
    /usr/lib/hbase-current/lib/hbase-common-1.1.1.jar
    /usr/lib/hbase-current/lib/hbase-client-1.1.1.jar
    /usr/lib/hbase-current/lib/hbase-protocol-1.1.1.jar

    /usr/lib/hive-current/lib/hive-hbase-handler-2.3.3.jar

    需要将上述jar包添加到spark,有两种方式:
    a)通过--jars参数来添加
    如:spark-sql --jars /usr/lib/hbase-current/lib/hbase-server-1.1.1.jar,/usr/lib/hbase-current/lib/hbase-common-1.1.1.jar,/usr/lib/hbase-current/lib/hbase-client-1.1.1.jar,/usr/lib/hbase-current/lib/hbase-protocol-1.1.1.jar,/usr/lib/hive-current/lib/hive-hbase-handler-2.3.3.jar

    b)spark-defaults.conf里面配置
    spark.executor.extraClassPath /opt/apps/extra-jars/*:/usr/lib/hbase-current/lib/hbase-server-1.1.1.jar:/usr/lib/hive-current/lib/hive-hbase-handler-2.3.3.jar:/usr/lib/hbase-current/lib/hbase-common-1.1.1.jar:/usr/lib/hbase-current/lib/hbase-client-1.1.1.jar:/usr/lib/hbase-current/lib/hbase-protocol-1.1.1.jar

    spark.driver.extraClassPath /opt/apps/extra-jars/*:/usr/lib/hbase-current/lib/hbase-server-1.1.1.jar:/usr/lib/hive-current/lib/hive-hbase-handler-2.3.3.jar:/usr/lib/hbase-current/lib/hbase-common-1.1.1.jar:/usr/lib/hbase-current/lib/hbase-client-1.1.1.jar:/usr/lib/hbase-current/lib/hbase-protocol-1.1.1.jar

    备注:
    EMR-3.13.0以及以下版本,使用SparkSQL insert 数据到HiveOnHBase表的时候会出异常:
    java.lang.ClassCastException: org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat cannot be cast to org.apache.hadoop.hive.ql.io.HiveOutputFormat

    2019-07-17 23:03:34 举报
    赞同 1 1

    评论

    全部评论 (1)

    登录后可评论
    头像
    缺少的依赖,可以在项目的pom.xml中添加吗
    2019-08-11 10:52:04
    赞同回复举报