分享

spark+phoenix数据写入

chyeers 发表于 2015-9-2 20:42:56 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 35305
测试环境:hadoop-2.2,phoenix-4.4.0,hbase-0.98.12.1,spark-1.4.1
测试内容:运用phoenix的spark组件向hbase中写入RDDs
异常问题:java.sql.SQLException: java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString
尝试解决:hbase的一个BUG,如http://www.aboutyun.com/forum.php?mod=viewthread&tid=9464所述。尝试添加hbase-protocol-0.98.12.1-hadoop2.jar在spark-submit --jars 之后,无效;尝试
$ HADOOP_CLASSPATH=/path/to/hbase-protocol.jar:/path/to/hbase/conf hadoop jar MyJob.jar MyJobMainClass$ HADOOP_CLASSPATH=$(hbase mapredcp):/path/to/hbase/conf hadoop jar MyJob.jar MyJobMainClass$ HADOOP_CLASSPATH=$(hbase classpath) hadoop jar MyJob.jar MyJobMainClass

已有(5)人评论

跳转到指定楼层
langke93 发表于 2015-9-2 21:07:05
一个类不能访问另外一个类,而且是超级类。楼主看看是不是哪里配置错了
回复

使用道具 举报

chyeers 发表于 2015-9-2 21:10:58
langke93 发表于 2015-9-2 21:07
一个类不能访问另外一个类,而且是超级类。楼主看看是不是哪里配置错了

配置?不明白,这是我的执行语句,我的包是TreeCount.jar,类是Phoenix  :HADOOP_CLASSPATH=/usr/local/cluster/hbase-0.98.12.1-hadoop2/conf hadoop jar TreeCount.jar Phoenix
回复

使用道具 举报

langke93 发表于 2015-9-2 21:19:08


下面是cdh的解决方案,楼主参考找到对应包试试
提交作业方式
-conf 增加spark.driver.extraClassPath & spark.executor.extraClassPath

[mw_shl_code=bash,true]spark-submit --class com.umeng.dp.yuliang.play.HBaseToES --master yarn-cluster --conf "spark.driver.extraClassPath=/home/cluster/apps/hbase/lib/hbase-protocol-0.98.1-cdh5.1.0.jar" --conf "spark.executor.extraClassPath=/home/cluster/apps/hbase/lib/hbase-protocol-0.98.1-cdh5.1.0.jar"   --jars /home/cluster/apps/hbase/lib/hbase-protocol-0.98.1-cdh5.1.0.jar ScalaMR-0.0.1-jar-with-dependencies.jar [/mw_shl_code]


增加如下配置到$SPARK_HOME/conf/spark-defaults.conf文件

[mw_shl_code=bash,true]spark.driver.extraClassPath /home/cluster/apps/hbase/lib/hbase-protocol-0.98.1-cdh5.1.0.jar
spark.executor.extraClassPath /home/cluster/apps/hbase/lib/hbase-protocol-0.98.1-cdh5.1.0.jar[/mw_shl_code]


回复

使用道具 举报

chyeers 发表于 2015-9-6 09:23:19
langke93 发表于 2015-9-2 21:19
下面是cdh的解决方案,楼主参考找到对应包试试
提交作业方式
-conf 增加spark.driver.extraClassPat ...

成了,非常感谢@langke93
回复

使用道具 举报

chyeers 发表于 2015-9-6 11:16:47
langke93 发表于 2015-9-2 21:19
下面是cdh的解决方案,楼主参考找到对应包试试
提交作业方式
-conf 增加spark.driver.extraClassPat ...

再请教一个问题,使用 phoenix spark plugin 开发,将 RDDs存入 hbase[mw_shl_code=scala,true]sc
  .parallelize(dataSet)
  .saveToPhoenix(
    "OUTPUT_TEST_TABLE",
    Seq("ID","COL1","COL2"),
    zkUrl = Some("phoenix-server:2181")
  )
[/mw_shl_code]
设置主键后,插入相同记录如何覆盖掉。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条