分享

尝试通过Sqoop2向Hbase中import数据过程报错

blackmoon 发表于 2015-5-13 09:38:29 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 17 103813
s060403072 发表于 2015-5-13 13:10:02
没有HADOOP_CLASSPATH,楼主试试自己添加上。

1、在集群环境变量 etc/profiles 里添加如下配置:
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hadoop/hbase-0.96.2-hadoop2/lib/hbase-protocol-0.96.2-hadoop2.jar
注意:hbase-protocol-*.jar 的路径根据自己配置目录而定。
2、执行source /etc/profile,是配置生效

回复

使用道具 举报

blackmoon 发表于 2015-5-13 13:26:48
s060403072 发表于 2015-5-13 13:10
没有HADOOP_CLASSPATH,楼主试试自己添加上。

1、在集群环境变量 etc/profiles 里添加如下配置:

设置了,报错微妙的有了变化= =,但是还是没过去....

原报错:
java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString

现报错:

java.lang.IllegalAccessError: com/google/protobuf/HBaseZeroCopyByteString

回复

使用道具 举报

s060403072 发表于 2015-5-13 13:58:14
blackmoon 发表于 2015-5-13 13:26
设置了,报错微妙的有了变化= =,但是还是没过去....

原报错:

有反应就好,贴出全部错误看看
回复

使用道具 举报

blackmoon 发表于 2015-5-13 14:16:22
本帖最后由 blackmoon 于 2015-5-13 16:02 编辑
s060403072 发表于 2015-5-13 13:58
有反应就好,贴出全部错误看看

报错唯一的变化就是我标出来的红色部分的变化,其他还都一样 = =
不过这个报错我解决了,虽然后面又出来了其他问题,不过也算前进一步。

感谢各位的协助,我现在把解决办法写出来:

由于上面lsof查看,jar包已经被进程使用了,我就开始怀疑不是加载的问题,于是先忘记前面查看http://my.oschina.net/zhangliMyOne/blog/97236时先入为主的思路,返回java报错本身来看。

java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString

那么com.google.protobuf.HBaseZeroCopyByteString这个class到底是在哪里呢?
于是写了个脚本来搜索,然后发现com.google.protobuf.HBaseZeroCopyByteString这个class就在hbase-protocol-0.98.6-cdh5.3.3.jar里面......
根本不是加载问题......没加载上连这个错误都不会有.......

那么com.google.protobuf.LiteralByteString这个类又在哪里呢?发现在hadoop的lib下面就有protobuf-java-2.5.0.jar

然后再返回完整报错,程序应该是执行到sqoop2尝试连接hbase获取meta data,那么应该是sqoop2调用com.google.protobuf.HBaseZeroCopyByteString时发生的问题,于是把protobuf-java-2.5.0.jar拷贝到sqoop2的lib下面一份,重启sqoop2,再次执行job,不再报这个错误了,现在想来加载不到superclass,自然也就cannot access.....不过貌似会报java.lang.IllegalAccessError的原因还有好几种,这次是这样,之后遇到问题还是不能一概而论。

新出现的报错内容如下,这已经是连接上hbase后,发现没有表所以才报错了,应该算前进了一大步吧~

Caused by: org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table undefined. tableName=MAIN.USERS







回复

使用道具 举报

blackmoon 发表于 2015-5-13 15:27:30
s060403072 发表于 2015-5-13 13:58
有反应就好,贴出全部错误看看

这个问题我解决了,虽然后面又有其他报错就是了.....

我之前回复了一次发了解决办法,但该回复现在还在审核中= =没显示出来,再等等吧。

话说回复审核的规则是什么?之前的回复也没审核啊.......
回复

使用道具 举报

tntzbzc 发表于 2015-5-14 00:26:33
blackmoon 发表于 2015-5-13 14:16
报错唯一的变化就是我标出来的红色部分的变化,其他还都一样 = =
不过这个报错我解决了,虽然后面又出来 ...



一看楼主也是个大牛,先帮楼主趟趟路。会不会是版本问题。
下面一个问题,跟楼主相似

1.jpg

https://issues.apache.org/jira/browse/PHOENIX-1762
回复

使用道具 举报

xrf416933696 发表于 2015-12-10 14:14:38
你好,我把phoenix的jar包放在/sqoop/server/lib目录下,建立连接时,为什么找不到driver
回复

使用道具 举报

xrf416933696 发表于 2015-12-10 17:04:08
不知道lz是否成功用sqoop把mysql中的数据导入到hbase中,我这里一直失败,如果可以想请教一下
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条