[Hadoop错误]------使用completebulkload的时报错java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengtanyong4777/article/details/88551060

1.前言

由于最近需要将海量的历史数据从Mysql迁移到Hbase中,所以使用了较为高效的ImportTsv和bulkload。

2.问题

在使用ImportTsv将数据转成HFile文件后,使用bulkload的时候报如下错误

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter

3.解决

通过百度知道是因为HADOOP_CLASSPATH中没有导入HBASE_HOME/lib下的jar包导致。所以解决的方法有一下两种

(1)修改hadoop的hadoop-env文件,在HADOOP_CLASSPATH后面加上HBASE_HOME/lib下的所有jar包。但是由于我使用了Ambari搭建的集群,所以修改完配置文件后需要重启线上集群,感觉有点没必要。

(2)在运行bulkload之前,手动执行export HADOOP_CLASSPATH=/usr/hdp/2.6.5.0-292/hbase/lib/*,将HBASE_HOME/lib的jar包export到HADOOP_CLASSPATH上,然后再运行bulkload命令即可。

猜你喜欢

转载自blog.csdn.net/chengtanyong4777/article/details/88551060